MATLAB求解非线性高阶微分方程组方法?
发布网友
发布时间:2024-02-09 12:16
我来回答
共3个回答
热心网友
时间:2024-02-09 15:44
参考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的解。
热心网友
时间:2024-02-09 15:44
只会mathematica的路过……话说你的μ忘了给啊。
热心网友
时间:2024-02-09 15:44
回答的一样的问题,还有下面的程序
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的解。