新手问关于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) ;
能否给指点一下?谢谢 有错不管是什么原因,最起码应该贴出错误提示
谢谢ls,我新手 不懂 以下是错误原因
??? Input argument 'y' is undefined.Error in ==> D:\MATLAB6p5\work\rigid.m
On line 5==> dy(1)=-a*y(1) ; 原帖由 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 发表 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 编辑 ] ls的,我按你说的加了tspan,但是还是不行,错误依然是
??? Input argument 'y' is undefined.
Error in ==> D:\MATLAB6p5\work\f.m
On line 5==> dy(1)=-(beta1+alfa1)*y(1) ; 是不是这样,matlab只能解常微分方程,对于系数是未知常数的根本解不了 原帖由 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) ;
你是怎么用的,具体点 原帖由 alicezhang 于 2008-6-16 08:31 发表 http://www.chinavib.com/forum/images/common/back.gif
是不是这样,matlab只能解常微分方程,对于系数是未知常数的根本解不了
m函数里的参数,必须要给定 原帖由 alicezhang 于 2008-6-16 08:31 发表 http://www.chinavib.com/forum/images/common/back.gif
是不是这样,matlab只能解常微分方程,对于系数是未知常数的根本解不了
LZ遇到问题时可以试着自己想办法解决一下,这样对自己会有很大帮助的 其中的一点问题:global定义的全局变量在命令文件中的第一行也要写出来
为避免错误最好不要用global来定义全局变量
页:
[1]