matlab 关于数值方法已知阿波罗飞船的运动轨迹(x,y)满足一下方程:d^2x/dt^2 = 2*dy/dt + x - a(x+b)/r1^3 - b(x-a)/r2^3.(1);d^2y/dt^2 = -2*dx/dt +y -ay/r1^3 - by/r2^3;.(2);其中,b = 1/82.45,a = 1 - b,r1 = sqrt((x+b)^2+y^2),r
来源:学生作业帮助网 编辑:作业帮 时间:2024/07/15 06:23:57
![matlab 关于数值方法已知阿波罗飞船的运动轨迹(x,y)满足一下方程:d^2x/dt^2 = 2*dy/dt + x - a(x+b)/r1^3 - b(x-a)/r2^3.(1);d^2y/dt^2 = -2*dx/dt +y -ay/r1^3 - by/r2^3;.(2);其中,b = 1/82.45,a = 1 - b,r1 = sqrt((x+b)^2+y^2),r](/uploads/image/z/13702799-47-9.jpg?t=matlab+%E5%85%B3%E4%BA%8E%E6%95%B0%E5%80%BC%E6%96%B9%E6%B3%95%E5%B7%B2%E7%9F%A5%E9%98%BF%E6%B3%A2%E7%BD%97%E9%A3%9E%E8%88%B9%E7%9A%84%E8%BF%90%E5%8A%A8%E8%BD%A8%E8%BF%B9%EF%BC%88x%2Cy%EF%BC%89%E6%BB%A1%E8%B6%B3%E4%B8%80%E4%B8%8B%E6%96%B9%E7%A8%8B%EF%BC%9Ad%5E2x%2Fdt%5E2+%3D+2%2Ady%2Fdt+%2B+x+-+a%28x%2Bb%29%2Fr1%5E3+-+b%28x-a%29%2Fr2%5E3.%281%29%3Bd%5E2y%2Fdt%5E2+%3D+-2%2Adx%2Fdt+%2By+-ay%2Fr1%5E3+-+by%2Fr2%5E3%EF%BC%9B.%282%29%3B%E5%85%B6%E4%B8%AD%2Cb+%3D+1%2F82.45%2Ca+%3D+1+-+b%2Cr1+%3D+sqrt%28%28x%2Bb%29%5E2%2By%5E2%29%2Cr)
matlab 关于数值方法已知阿波罗飞船的运动轨迹(x,y)满足一下方程:d^2x/dt^2 = 2*dy/dt + x - a(x+b)/r1^3 - b(x-a)/r2^3.(1);d^2y/dt^2 = -2*dx/dt +y -ay/r1^3 - by/r2^3;.(2);其中,b = 1/82.45,a = 1 - b,r1 = sqrt((x+b)^2+y^2),r
matlab 关于数值方法
已知阿波罗飞船的运动轨迹(x,y)满足一下方程:
d^2x/dt^2 = 2*dy/dt + x - a(x+b)/r1^3 - b(x-a)/r2^3.(1);
d^2y/dt^2 = -2*dx/dt +y -ay/r1^3 - by/r2^3;.(2);
其中,b = 1/82.45,a = 1 - b,r1 = sqrt((x+b)^2+y^2),r2 = sqrt((x+a)^2+y^2) ,在初值x(0) = 1.2 ;x'(0) = 0 ; y(0) = 0;y'(0) = -1.04935371;求解.
我自己写的函数以及解法(解出来有问题,给点指导):(b为mui,a为lamda)
function dy = weifen4(t,y)
mui = 1/82.45;lamda = 1- mui;
dy = zeros(4,1); r = zeros(2,1);
r(1) = sqrt((y(1) + mui)^2 + y(3));
r(2) = sqrt((y(1)+ lamda)^2 + y(3));
dy(1) = y(2);
dy(2) = 2*dy(3) + y(1) - lamda*(y(1)+ mui)/(r(1)^3) - mui*(y(1)-lamda)/(r(2))^3;
dy(3) = y(4);
dy(4) = -2*dy(1) + y(3) - lamda*y(3)/(r(1)^3) - mui*y(3)/(r(2)^3);%函数结束%
[T,Y] = ode15s('weifen4',[0 3600],[1.2 0 0 -1.04935371]);
结果MATLAB给出如下解答:
Warning:Failure at t=1.268927e+000.Unable to meet integration tolerances without reducing the step
size below the smallest value allowed (3.552714e-015) at time t.
> In ode15s at 819
答的好的,再给你50分.
matlab 关于数值方法已知阿波罗飞船的运动轨迹(x,y)满足一下方程:d^2x/dt^2 = 2*dy/dt + x - a(x+b)/r1^3 - b(x-a)/r2^3.(1);d^2y/dt^2 = -2*dx/dt +y -ay/r1^3 - by/r2^3;.(2);其中,b = 1/82.45,a = 1 - b,r1 = sqrt((x+b)^2+y^2),r
1、问题
[TOUT,YOUT] = ODE15S(ODEFUN,TSPAN,Y0)其中TSPAN表示积分区间.而你使用的[T,Y] = ode15s('weifen4',[0 3600],[1.2 0 0 -1.04935371]);中【0 3600】是否是你所需的区间?
从matlab反应的问题是 integration tolerances误差问题.可能问题是存在歧义点的原因.
只需要改动积分区间如下:(去掉歧义点)
>> [T,Y] = ode15s('weifen4',[0 1.26],[1.2 0 0 -1.04935371])
即可
2、进一步改进
改用函数
[T,Y] = ode45('weifen4',[0 1.26],[1.2 0 0 -1.04935371])