《用matlab对微分方程求解实验报告》由会员分享,可在线阅读,更多相关《用matlab对微分方程求解实验报告(12页珍藏版)》请在金锄头文库上搜索。
1、1 o 高等数学上机作业(三)课 程 高 等 数学上 机内 容微分方程求解成 绩姓 名专 业班 级学 号教学班指 导教 师上 机日 期一、上机目的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)0xxyye12( )ye2 函数图象:2.
2、求微分方程的特解 . 22450(0)0,(1)10dydyydxdx yy命令 y=dsolve(D2y+4*Dy-5*y=0,y(0)=0,Dy(1)=10,x) 运行结果:y=10/(exp(1)+5*exp(-5)*exp(x)-10/(exp(1)+5*exp(-5)*exp(-5*x) 3. 鱼雷追击问题一敌舰在某海域内沿着正北方向航行时,我方战舰恰好位于3 敌舰的正西方向1 公里处我舰向敌舰发射制导鱼雷,敌舰速度为0.42 公里/ 分,鱼雷速度为敌舰速度的2 倍。试问敌舰航行多远时将被击中?M文件x0=0; xf=0.9999999999999; x,y=ode15s(eq1,x
3、0 xf,0 0); plot(x,y(:,1),b.) hold on; y=0:0.1:1; plot(1,y, *) 运行结果图像:4 结论:大概在 y=0.67 处击中敌方舰艇!(选做) 一个慢跑者在平面上沿椭圆以恒定的速率v=1 跑步,设椭圆方程为: x=10+20cost, y=20+5sint. 突然有一只狗攻击他 . 这5 只狗从原点出发 , 以恒定速率w 跑向慢跑者 ,狗的运动方向始终指向慢跑者 . 分别求出 w=20,w=5时狗的运动轨迹 . W=20 M文件代码function dy=eq3(t,y) dy=zeros(2,1); dy(1)=20*(10+20*cos(
4、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,t0 tf,0 0); T=0:0.1:2*pi; X=10+20*cos(T); Y=20+15*sin(T); plot(X,Y,-) hold on plot(y(:,1),y(:,2),r*) 运行结果:6 利用二分法更改 tf tf=5 时7 tf=2.5时8 tf=3.1
5、5时:9 所以在 t=3.15 时刻恰好追上!W=5 M文件代码function dy=eq4(t,y) dy=zeros(2,1); 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); 命令: t0=0;tf=10; 10 t,y=ode45(eq4,t0 tf,0 0); T=0:0.1:2*pi; X=10+20*cos(T); Y=20+15*sin(T); plot(X,Y,-) hold on plot(y(:,1),y(:,2),*) 运行结果更改 tf=20 运行结果11 Tf=40 12 所以永远追不上!四、上机心得体会高等数学是工科学生的主干科目,它应用于生产生活的方方面面,通过建模, 计算可以求出实际问题的最优化问题!因此我们需要掌握建模和利用专业软件 处理实际问题的能力!