MATLAB爱好者论坛-LabFans.com

MATLAB爱好者论坛-LabFans.com (https://www.labfans.com/bbs/index.php)
-   MATLAB论坛 (https://www.labfans.com/bbs/forumdisplay.php?f=6)
-   -   [原创]【SOS】用ode45求解y````=y```+1 (https://www.labfans.com/bbs/showthread.php?t=4220)

kornberg 2008-08-26 09:38

[原创]【SOS】用ode45求解y````=y```+1
 
【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))




[B]出错提示:[/B]

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

回复: [原创]【SOS】用ode45求解y````=y```+1
 
[CODE]
function soleqns2
%EDIT BY [EMAIL="PSL@CSU"]PSL@CSU[/EMAIL]
%QQ:547423688
%Email:[EMAIL="[email protected]"][email protected][/EMAIL]
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 [EMAIL="PSL@CSU"]PSL@CSU[/EMAIL]
%QQ:547423688
%Email:[EMAIL="[email protected]"][email protected][/EMAIL]
[/CODE]

kornberg 2008-08-26 10:40

回复: [原创]【SOS】用ode45求解y````=y```+1
 
程序通过了

多谢楼上大侠指点

smiles860710 2009-03-17 10:10

回复: [原创]【SOS】用ode45求解y````=y```+1
 
学习了,谢谢


所有时间均为北京时间。现在的时间是 11:15

Powered by vBulletin
版权所有 ©2000 - 2025,Jelsoft Enterprises Ltd.