用 Matlab求解微分方程(组)
来源:学生作业帮 编辑:神马作文网作业帮 分类:数学作业 时间:2024/11/18 02:02:25
用 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
保存并运行可得
再问: 用ode45函数怎么做
再答: 这不就是用ode45做的。
第二个方程应为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
保存并运行可得
再问: 用ode45函数怎么做
再答: 这不就是用ode45做的。