用matlab对微分方程求解实验报告Word格式.docx
《用matlab对微分方程求解实验报告Word格式.docx》由会员分享,可在线阅读,更多相关《用matlab对微分方程求解实验报告Word格式.docx(12页珍藏版)》请在冰豆网上搜索。
![用matlab对微分方程求解实验报告Word格式.docx](https://file1.bdocx.com/fileroot1/2022-11/27/c02f50a4-2489-45c0-bb2e-b423b84763bd/c02f50a4-2489-45c0-bb2e-b423b84763bd1.gif)
班级
学号
教学班
指导教师
日期
一、上机目的
1、学会用Matlab求简单微分方程的解析解。
2、学会用Matlab求微分方程的数值解。
二、上机容
1、求简单微分方程的解析解.
2、求微分方程的数值解.
3、数学建模实例.
4、上机作业.
三、上机作业
1.求微分方程:
在初值条件下的特解,并画出解函数的图形.
命令>
>
y=dsolve('
x*Dy+y-exp(x)=0'
'
y
(1)=2*exp
(1)'
x'
)
运行结果:
y=1/x*exp(x)+1/x*exp
(1)
函数图象:
2.求微分方程的特解.
D2y+4*Dy-5*y=0'
y(0)=0,Dy
(1)=10'
y=10/(exp
(1)+5*exp(-5))*exp(x)-10/(exp
(1)+5*exp(-5))*exp(-5*x)
3.鱼雷追击问题
一敌舰在某海域沿着正北方向航行时,我方战舰恰好位于敌舰的正西方向1公里处.我舰向敌舰发射制导鱼雷,敌舰速度为0.42公里/分,鱼雷速度为敌舰速度的2倍。
试问敌舰航行多远时将被击中?
M文件
x0=0;
xf=0.99;
[x,y]=ode15s('
eq1'
[x0xf],[00]);
plot(x,y(:
1),'
b.'
)
holdon;
y=0:
0.1:
1;
plot(1,y,'
*'
运行结果图像:
结论:
大概在y=0.67处击中敌方舰艇!
(选做)一个慢跑者在平面上沿椭圆以恒定的速率v=1跑步,设椭圆方程为:
x=10+20cost,y=20+5sint.突然有一只狗攻击他.这只狗从原点出发,以恒定速率w跑向慢跑者,狗的运动方向始终指向慢跑者.分别求出w=20,w=5时狗的运动轨迹.
W=20
M文件代码
functiondy=eq3(t,y)
dy=zeros(2,1);
dy
(1)=20*(10+20*cos(t)-y
(1))/sqrt((10+20*cos(t)-y
(1))^2+(20+15*sin(t)-y
(2))^2);
dy
(2)=20*(20+15*sin(t)-y
(2))/sqrt((10+20*cos(t)-y
(1))^2+(20+15*sin(t)-y
(2))^2);
运行命令
t0=0;
tf=10;
[t,y]=ode45('
eq3'
[t0tf],[00]);
T=0:
2*pi;
X=10+20*cos(T);
Y=20+15*sin(T);
plot(X,Y,'
-'
holdon
plot(y(:
1),y(:
2),'
r*'
利用二分法更改tf
tf=5时
tf=2.5时
tf=3.15时:
所以在t=3.15时刻恰好追上!
W=5
functiondy=eq4(t,y)
dy
(1)=5*(10+20*cos(t)-y
(1))/sqrt((10+20*cos(t)-y
(1))^2+(20+15*sin(t)-y
(2))^2);
dy
(2)=5*(20+15*sin(t)-y
(2))/sqrt((10+20*cos(t)-y
(1))^2+(20+15*sin(t)-y
(2))^2);
命令:
eq4'
运行结果
更改tf=20
Tf=40
所以永远追不上!
四、上机心得体会
高等数学是工科学生的主干科目,它应用于生产生活的方方面面,通过建模,计算可以求出实际问题的最优化问题!
因此我们需要掌握建模和利用专业软件处理实际问题的能力!