作业帮 > 综合 > 作业

matlab程序ode45

来源:学生作业帮 编辑:作业帮 分类:综合作业 时间:2024/05/26 13:26:06
matlab程序ode45
用ode45求解微分方程组dx=20/7*x-yz,dy=-10y+xz,dz=-4z+xy,如何编写,还要画图.初值(3,-4,2).对初值很敏感,t=0.001:0.001:20.
function dx=myfun(t,x)
dx(1)=20/7*x(1)-x(2)*x(3);
dx(2)=-10*x(2)+x(1)*x(3);
dx(3)=-4*x(3)+x(1)*x(2);
dx=dx(:);
x0=[3,-4,2];
t0=0.001:0.001:20;
[t,x]=ode45('myfun',[0.001,20],x0); %ode45会自动调整步长
plot(t,x)
legend('x','y','z')
程序中 运行出来
Input argument "x" is undefined.
Error in ==> myfun at 2
dx(1)=20/7*x(1)-x(2)*x(3);
报错.请问是怎么回事?
function dx=myfun(t,x)
dx(1)=20/7*x(1)-x(2)*x(3);
dx(2)=-10*x(2)+x(1)*x(3);
dx(3)=-4*x(3)+x(1)*x(2);
dx=dx(:);这部分保存为m函数文件
命令行运行>> x0=[3,-4,2];t0=0.001:0.001:20;[t,x]=ode45('myfun',[0.001,20],x0);  %ode45会自动调整步长plot(t,x) legend('x','y','z')>> 结果