用matlab解微分方程组并作图

人浮浮水流流 1年前 已收到1个回答 举报

lxlzl 幼苗

共回答了19个问题采纳率:89.5% 举报

function dx=appollo(t,x)
mu=1/82.45;
mustar=1-mu;
r1=sqrt((x(1)+mu)^2+x(3)^2);
r2=sqrt((x(1)-mustar)^2+x(3)^2);
dx=[x(2)
2*x(4)+x(1)-mustar*(x(1)+mu)/r1^3-mu*(x(1)-mustar)/r2^3
x(4)
-2*x(2)+x(3)-mustar*x(3)/r1^3-mu*x(3)/r2^3];
--------------------------------------------------------------------------------------
x0=[1.2;0;0;-1.04935751];%x0(i)对应与xi的初值
options=odeset('reltol',1e-8);%该命令的另一种写法是options=odeset;options.reltol=1e-8;
tic
[t,y]=ode45(@appollo,[0,20],x0,options);%t是时间点,y的第i列对应xi的值,t和y的行数相同
toc
plot(y(:,1),y(:,3))%绘制x1和x3,也就是x和y的图形
title('Appollo卫星运动轨迹')
xlabel('X')
ylabel('Y')

1年前

10
可能相似的问题
Copyright © 2024 YULUCN.COM - 雨露学习互助 - 16 q. 0.035 s. - webmaster@yulucn.com