Matlab 版 (精华区)
发信人: hahn (有奇@选择遗忘的自由), 信区: Matlab
标 题: [合集] 请教-ode45能解二阶的微分方程组吗?
发信站: 哈工大紫丁香 (Sat Aug 5 19:14:47 2006), 站内
────────────────────────────────────────
migai (灯笼虫) 于 (Thu May 11 20:34:29 2006) 说道:
我想求解一个二自由度的振动系统,想着可以用ode45解,解微分方程没问题,解方程组就
出错。谁用过,请教一下。
具体问题如下:
振动方程:
ode文件:
function Yd=DYdt2(t,Y)%其中的Y=[x1;x2;dx1;dx2]的列向量
Yd(1)=Y(3);
Yd(2)=Y(4);
Yd(3)=0.4909*Y(2)-1.5708*Y(1)+1.3695*Y(4)-72.73*Y(3);%第一个质量点的振动方程
Yd(4)=-0.1964*Y(2)+0.4909*Y(1)-64.157*Y(4)+1.369*5Y(3);%第二个质量点的振动方程
参数和命令:
>> x1=0;x2=0;dx1=0;dx2=0;
>> Y0=[x1;x2;dx1;dx2];
>> [t,Y]=ode45('DYdt2',[0,10],Y0)
提示如下
??? Error: File: DYdt2.m Line: 5 Column: 51
Missing MATLAB operator.
Error in ==> funfun\private\odearguments at 80
if (nargin(ode) == 2)
Error in ==> ode45 at 173
[neq, tspan, ntspan, next, t0, tfinal, tdir, y0, f0, odeArgs, ...
────────────────────────────────────────
zjliu (秋天的萝卜) 于 (Thu May 11 20:37:15 2006) 说道:
问题如下,那里不是5Y吧
Yd(4)=-0.1964*Y(2)+0.4909*Y(1)-64.157*Y(4)+1.369*5Y(3);
~~~~~~~
【 在 migai (灯笼虫) 的大作中提到: 】
: 我想求解一个二自由度的振动系统,想着可以用ode45解,解微分方程没问题,解方程组就
: 出错。谁用过,请教一下。
: 具体问题如下:
: ...................
────────────────────────────────────────
migai (灯笼虫) 于 (Thu May 11 21:15:50 2006) 说道:
【 在 zjliu (秋天的萝卜) 的大作中提到: 】
: 问题如下,那里不是5Y吧
: Yd(4)=-0.1964*Y(2)+0.4909*Y(1)-64.157*Y(4)+1.369*5Y(3);
: ~~~~~~~
谢谢,不过改了以后还是不对,
提示如下:
>> [t,Y]=ode45('DYdt2',[0,10],Y0)
??? Error using ==> funfun\private\odearguments
DYDT2 must return a column vector.
Error in ==> ode45 at 173
[neq, tspan, ntspan, next, t0, tfinal, tdir, y0, f0, odeArgs, ...
────────────────────────────────────────
zjliu (秋天的萝卜) 于 (Thu May 11 21:17:28 2006) 说道:
在DYdt2.m文件最后面加上Yd=Yd';就行了
【 在 migai (灯笼虫) 的大作中提到: 】
: 谢谢,不过改了以后还是不对,
: 提示如下:
: ??? Error using ==> funfun\private\odearguments
: ...................
────────────────────────────────────────
feifeifool (努力学习) 于 (Thu May 11 21:32:18 2006) 说道:
建议多使用状态空间形式(采用矩阵),当自由度多时比较方便,自由度过多用ode45时会增长运算时间,这时候建议对动力学问题采用数值积分法:Newmark、Wilson-theta法等。
【 在 zjliu (秋天的萝卜) 的大作中提到: 】
: 在DYdt2.m文件最后面加上Yd=Yd';就行了
────────────────────────────────────────
migai (灯笼虫) 于 (Fri May 12 09:45:58 2006) 说道:
【 在 feifeifool (努力学习) 的大作中提到: 】
: 建议多使用状态空间形式(采用矩阵),当自由度多时比较方便,自由度过多用ode4..
谢谢各位大虾
────────────────────────────────────────
migai (灯笼虫) 于 (Fri May 12 14:07:53 2006) 说道:
【 在 migai (灯笼虫) 的大作中提到: 】
: 谢谢各位大虾
能在问一下,这个Yd=Yd'是什么意思吗?
────────────────────────────────────────
feifeifool (努力学习) 于 (Fri May 12 14:11:35 2006) 说道:
输出必须是列向量,所以要转置一下,把行变成列。
【 在 migai (灯笼虫) 的大作中提到: 】
: 能在问一下,这个Yd=Yd'是什么意思吗?
Powered by KBS BBS 2.0 (http://dev.kcn.cn)
页面执行时间:2.384毫秒