登录论坛

查看完整版本 : [原创]【SOS】用ode45求解y````=y```+1


kornberg
2008-08-26, 09:38
【SOS】用ode45求解y````=y```+1



建立函数
function u_prime=eqns2(x,u)
u_prime(1)=u(2);
u_prime(2)=u(3);
u_prime(3)=u(4);
u_prime(4)=u(4)+1;


命令窗口输入
y0=[1 0 0 0];
[x,num_y]=ode45('eqns2',0,20,y0);
plot(x,num_y(:,1))




出错提示:

Warning: Obsolete syntax. Use ode45(fun,tspan,y0,...) instead.
> In funfun\private\odearguments at 41
In ode45 at 173
??? Error using ==> funfun\private\odearguments
EQNS2 must return a column vector.

Error in ==> ode45 at 173
[neq, tspan, ntspan, next, t0, tfinal, tdir, y0, f0, odeArgs, odeFcn, ...




我用的是matlab7.1,上面的程序是照着一个范例做的,

各位大侠这是怎么回事啊?

应该怎么改正?

Thanks in advance.

pslpsl
2008-08-26, 10:16
function soleqns2
%EDIT BY PSL@CSU
%QQ:547423688
%Email:[email protected]
y0=[1 0 0 0];
[x,num_y]=ode45(@eqns2,[0,20],y0);
plot(x,num_y(:,1));

function du=eqns2(x,u)
du=zeros(4,1);
du(1)=u(2);
du(2)=u(3);
du(3)=u(4);
du(4)=u(4)+1;
%EDIT BY PSL@CSU
%QQ:547423688
%Email:[email protected]

kornberg
2008-08-26, 10:40
程序通过了

多谢楼上大侠指点

smiles860710
2009-03-17, 10:10
学习了,谢谢