早教吧作业答案频道 -->其他-->
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分.
已知阿波罗飞船的运动轨迹(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分.
▼优质解答
答案和解析
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])
[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])
看了 matlab 关于数值方法已...的网友还看了以下:
下列集合A到集合B的对应关系中,不能确定y是x的函数的是1)A={X|X∈Z}B={y|y∈Z},对 2020-03-30 …
matlab求三次符号方程的解t=a+b-bx-3ax^2+2ax^3;求解x,应该怎么办?小弟不 2020-05-16 …
x^3+a*x+b=0(modp)其中p为任意素数,a,b为任意整数.求在modp意义下的正整数x 2020-07-22 …
已知函数f(x)=(3-a)x-3,x≤7ax-6,x>7,若数列{an}满足an=f(n)(n∈ 2020-07-23 …
若分式方程3/x-2=a/x=4/x(x-2)有增根,则增根可能为?我知道答案是3/(x-2)=a 2020-07-30 …
来、分式方程、+20分.4--15题要检验.1.分式方程2/x-2-3/x=0的解是2.如果分式2 2020-08-02 …
2:若关于a、b的多项式-a^2b^3+3ab^3+a^(x+2)b^(x+3)-2ab-5和多项 2020-08-03 …
1.在公式a=v-v^0/t中,V^0=()2.方程1/2x-1-1=0的解是()()3.若分式x/ 2020-11-03 …
文科函数,急1函数f(x)=x^3-a^x-1,若f(x)在实数集R上单调递增,求实数a的取值范围? 2020-11-21 …
假如有一个集合A={1,2,3},那么用描述法可以表示成如下形式吗?A={x|x=1,2,3}A={ 2021-01-13 …