alicezhang 发表于 2008-6-11 11:11

新手问关于matlab解常微分方程

请问这样一个方程组
dy(1)=-a*y(1) ;
dy(2)=-b*y(2),
其中a是常数,要用matlab来解,a 应该怎么定义(global?syms?int?)?还有,这是也用ode45行吗?
function dy=rigid(z,y)
global a b
global n0
dy=zeros(2,1);    % a column vector
dy(1)=-a*y(1) ;
dy(2)=-b*y(2);
options = odeset('AbsTol',);
= ode45(@rigid,,options);
运行发现错误在On line 5==> dy(1)=-a*y(1) ;
能否给指点一下?谢谢

花如月 发表于 2008-6-11 11:15

有错不管是什么原因,最起码应该贴出错误提示

alicezhang 发表于 2008-6-11 11:23

谢谢ls,我新手 不懂 以下是错误原因

??? Input argument 'y' is undefined.

Error in ==> D:\MATLAB6p5\work\rigid.m
On line 5==> dy(1)=-a*y(1) ;

ch_j1985 发表于 2008-6-11 11:37

原帖由 alicezhang 于 2008-6-11 11:23 发表 http://www.chinavib.com/forum/images/common/back.gif
??? Input argument 'y' is undefined.

Error in ==> D:\MATLAB6p5\work\rigid.m
On line 5==> dy(1)=-a*y(1) ;
缺少参数
doc ode45

alicezhang 发表于 2008-6-11 13:59

楼上什么意思啊,能不能具体一点?

ch_j1985 发表于 2008-6-11 14:09

原帖由 alicezhang 于 2008-6-11 13:59 发表 http://www.chinavib.com/forum/images/common/back.gif
楼上什么意思啊,能不能具体一点?
= ode45(odefun,tspan,y0,options)
= ode45(@rigid,,options);
对比一下可知,相当于y0,tspan呢?

[ 本帖最后由 ch_j1985 于 2008-6-11 14:11 编辑 ]

alicezhang 发表于 2008-6-16 08:29

ls的,我按你说的加了tspan,但是还是不行,错误依然是
??? Input argument 'y' is undefined.

Error in ==> D:\MATLAB6p5\work\f.m
On line 5==> dy(1)=-(beta1+alfa1)*y(1) ;

alicezhang 发表于 2008-6-16 08:31

是不是这样,matlab只能解常微分方程,对于系数是未知常数的根本解不了

sigma665 发表于 2008-6-16 09:14

原帖由 alicezhang 于 2008-6-16 08:29 发表 http://www.chinavib.com/forum/images/common/back.gif
ls的,我按你说的加了tspan,但是还是不行,错误依然是
??? Input argument 'y' is undefined.

Error in ==> D:\MATLAB6p5\work\f.m
On line 5==> dy(1)=-(beta1+alfa1)*y(1) ;

你是怎么用的,具体点

sigma665 发表于 2008-6-16 09:23

原帖由 alicezhang 于 2008-6-16 08:31 发表 http://www.chinavib.com/forum/images/common/back.gif
是不是这样,matlab只能解常微分方程,对于系数是未知常数的根本解不了

m函数里的参数,必须要给定

ch_j1985 发表于 2008-6-16 09:29

原帖由 alicezhang 于 2008-6-16 08:31 发表 http://www.chinavib.com/forum/images/common/back.gif
是不是这样,matlab只能解常微分方程,对于系数是未知常数的根本解不了
LZ遇到问题时可以试着自己想办法解决一下,这样对自己会有很大帮助的

chicll 发表于 2008-6-18 10:49

其中的一点问题:global定义的全局变量在命令文件中的第一行也要写出来
为避免错误最好不要用global来定义全局变量
页: [1]
查看完整版本: 新手问关于matlab解常微分方程