数学模型之微分方程及其MATLAB求解

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

数学模型之微分方程及其MATLAB求解

---卫星轨迹等经典例题求解分析1. 考虑初值问题画图

y ''' −3y '' −y 'y = 0 y(0) = 0 y '(0) =1 y ' '(0) = −1

2、

3、

【实验步骤与程序】

1.

M -文件建立m函数文件

function y=f(t,x)

y=[x(2);x(3);9*x(3)^2+x(1)*x(2)];

求解微分方程,命令如下:

x0=[0;1;-1];

[t,y]=ode45(@mm,[0,2.5],x0);

plot(y(:,1),y(:,2));

figure(2);

plot3(y(:,1),y(:,2),y(:,3))

2、M -文件建立m函数文件

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];

options=odeset('reltol',1e-8);

[t,y]=ode45(@appollo,[0,20],x0,options);

plot(y(:,1),y(:,3))

title('Appollo卫星运动轨迹')

xlabel('x')

ylabel('y')

3、M -文件建立m函数文件

function dy=odefun(t,x)

fun=@(dxy)[dxy(1)*sin(x(4))+dxy(2)^2+2*x(1)*x(3)-x(1)*dxy(1)*x(4) x(1)*dxy(1)*dxy(2)+cos(dxy(2))-3*x(3)*x(2)];

options=optimset('display','off');

y=fsolve(fun,x([1,3]),options);%使用fsolve求解出x''和y''

dy=[x(2);y(1);x(4);y(2)];%状态变量一阶微分值

求解微分方程,命令如下:

[t,y]=ode45(@odefun,[0 3],[1 0 0 1]'); plot(t,y)

legend('x','x''','y','y''')

相关文档
最新文档