用 Matlab求解微分方程(组)

来源:学生作业帮助网 编辑:作业帮 时间:2024/04/29 20:26:42

用 Matlab求解微分方程(组)
用 Matlab求解微分方程(组)

用 Matlab求解微分方程(组)
这是阿波罗卫星轨迹例子
第二个方程应为y' = -2*x' + y ...,以为符号
代码如下
function solveode
function fun = OdeFunc(t,y)
mu = 1/82.45;
mu_star = 1 - mu;
r2 = sqrt((y(1) - mu_star)^2+y(3)^2);
r1 = sqrt((y(1) + mu)^2+y(3)^2);
 
fun = [y(2);
       2*y(4)+y(1)-mu_star*(y(1)+mu)/r1^3-mu*(y(1)-mu_star)/r2^3;
       y(4);
       -2*y(2)+y(3)-mu_star*y(3)/r1^3-mu*y(3)/r2^3
       ];
end
tspan = [0,30];
x0=[1.2;0;0;-1.049355751];
options = odeset('RelTol',1e-6);
[tt,yy] = ode45(@OdeFunc,tspan,x0,options);
plot(yy(:,1),yy(:,3))
end
 
保存并运行可得