MATLAB求解非线性高阶微分方程组方法?
来源:学生作业帮 编辑:神马作文网作业帮 分类:数学作业 时间:2024/11/16 05:03:33
MATLAB求解非线性高阶微分方程组方法?
初始条件:x(0)=909,y(0)=z(0)=173,x(0)'=-156,y(0)'=z(0)'=445;
求x(50)、y(50)、z(50)分别等于多少?x、y、z是t的函数,怎样利用Matlab求解?
初始条件:x(0)=909,y(0)=z(0)=173,x(0)'=-156,y(0)'=z(0)'=445;
求x(50)、y(50)、z(50)分别等于多少?x、y、z是t的函数,怎样利用Matlab求解?
参考http://zhidao.baidu.com/question/479644084.html?oldq=1
回答的一样的问题,还有下面的程序
function dy=odefun(t,y)
%y(1) x
%y(2) x'
%y(3) y
%y(4) y'
%y(5) z
%y(6) z'
u=9.8*1;
dy=zeros(6,1);
dy(1)=y(2);
dy(2)=-u*y(1)/sqrt(y(1)^2+y(3)^2+y(5)^2)^3;
dy(3)=y(4);
dy(4)=-u*y(3)/sqrt(y(1)^2+y(3)^2+y(5)^2)^3;
dy(5)=y(6);
dy(6)=-u*y(5)/sqrt(y(1)^2+y(3)^2+y(5)^2)^3;
end
命令行中
tspan=[0,50];
y0=[909;-156;173;445;173;445];
[t,y]=ode45(@odefun,[0,10],y0);
注意:u=GM需要自己修改
tspan为你的时间区间
y(end,:),就为你50s的解.
回答的一样的问题,还有下面的程序
function dy=odefun(t,y)
%y(1) x
%y(2) x'
%y(3) y
%y(4) y'
%y(5) z
%y(6) z'
u=9.8*1;
dy=zeros(6,1);
dy(1)=y(2);
dy(2)=-u*y(1)/sqrt(y(1)^2+y(3)^2+y(5)^2)^3;
dy(3)=y(4);
dy(4)=-u*y(3)/sqrt(y(1)^2+y(3)^2+y(5)^2)^3;
dy(5)=y(6);
dy(6)=-u*y(5)/sqrt(y(1)^2+y(3)^2+y(5)^2)^3;
end
命令行中
tspan=[0,50];
y0=[909;-156;173;445;173;445];
[t,y]=ode45(@odefun,[0,10],y0);
注意:u=GM需要自己修改
tspan为你的时间区间
y(end,:),就为你50s的解.