鱼雷击舰问题数模论文_第1页
鱼雷击舰问题数模论文_第2页
鱼雷击舰问题数模论文_第3页
鱼雷击舰问题数模论文_第4页
鱼雷击舰问题数模论文_第5页
已阅读5页,还剩12页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

姓名:班级:联系电话:姓名:班级:联系电话:姓名:班级:联系电话:姓名班级负责项目学习课程(注:关于数学、物理、经济、编程的课程)班级排名自动化创新班建模10电子信息工程1班论文10自动化1班程序鱼雷击舰问题数模论文谷小龙;陈磊;邓博文(机电学院自动化创新班,机电学院自动化班,机电学院电子班)摘要:论文讨论的是鱼雷追踪舰艇的运动轨迹。首先,我们应对鱼雷的追踪轨迹进行分析,判断属于哪种类别函数。其次,建立微分方程模型,是一个二阶方程,通过降阶法化为一阶方程,然后用分离变量法求解。得到所求的方程表达式,再结合鱼雷速率和舰艇速率,因而得到鱼雷追踪舰艇的轨迹方程。然后,在假定忽略万有引力与水的阻力的条件下,建立数学模型。利用matlab数学软件编程求解参数方程,得到敌舰的航行距离约为0.667海里,进一步求得时间约等于1.48min。针对本题我们建立的微分方程模型符合题目的要求,并且我们通过解析法和参数方程MATLAB求值的方法得到了基本相同的结果(结果的误差率不超过1%),并在内容中附上了相应的曲线图与原始数据。这同时也论证了我们的模型的正确性、合理性。针对本问题我们还对其进行了拓展,假设敌舰改变了速度与方向,与鱼雷方向成一夹角逃跑的情形,通过仿真的方法建立了合理的模型,使得该问题更贴近于现实的实际情况,有一定的应用意义。最后,我们对模型进行了评价与改进,并对模型中的参数进行了分析,最终得出了结论“鱼雷在1.48min之后将击中敌舰”。另外,在附录中附有matlab的源程序与改进的原始数据。关键词:微分方程,鱼雷速率,舰艇速率,matlab,参数方程数值法仿真拓展一、问题的重述鱼雷击舰问题(微分方程)如图所示,一敌舰在某海域内沿正北方向航行时,我方战舰恰位于敌舰正西方1海里处,我舰向敌舰发射制导鱼雷,敌舰速度为0.45海里/分钟,鱼雷速度为敌舰速度的2倍,鱼雷的运行方向始终指向敌舰,试问敌舰航行多远时将被击中?二、问题的分析根据题意,画出示意图如上。由题意可知,敌舰的速度方向与大小不变,恒为0.45海里每分钟,鱼雷的速度大小也恒定为敌舰的2倍,即0.9海里每分钟。由鱼雷的运行方向始终指向敌舰可知,鱼雷的运行方向随着敌舰的位置不同而发生着改变,这就是本题的难点所在。对于非线性曲线的问题,用常规的方法难以模拟出来,所以我们采用引入微积分,用微积分的表达式表示图示中变量的方程。微积分可以使模拟过程简化,而且易于表述出来。如上图中取曲线上任意一点P(x(t),y(t)),敌舰位于Q(l,vt)由于鱼雷头始终对准敌舰,故此时直线PQ就是鱼雷的轨迹曲线弧OP在点P处的切线,即有y=,即=(1—x)y+y又根据题意,弧OP的长度的2倍,即dx=2由以上两式消去t,整理得模型:(1—x)y=。这就是用微积分方程建立的模型,表述简单易于理解。但是最后的模型是一个二阶微分方程,求解起来有一定的难度,过程有点复杂。所以除了用解析法将方程直接求解出来,再将数据代入求解之外,我们还引用了MATLAB软件直接求解,过程简单、直接将结果表述出来,但结果会存在一定的误差。三、基本假设假设:鱼雷的质量忽略不记,在鱼雷及敌舰运动过程中忽略水流和气流向对它们运动轨迹的影响。四、定义符号说明定义说明:微积分:微积分(Calculus)是高等数学中研究函数的微分、积分以及有关概念和应用的数学分支。微积分学是微分学和积分学的总称。它是一种数学思想,‘无限细分’就是微分,‘无限求和’就是积分。速度,时间,距离公式:当时间一定距离与速度成正比。解析法:数学中用解析式表示函数的方法。参数方程:在给定的平面直角坐标系中,如果曲线上任意一点的坐标x,y都是某个变数t的函数x=f(t),y=φ(t)——(1);且对于t的每一个允许值,由方程组(1)所确定的点m(x,y)都在这条曲线上,那么方程组(1)称为这条曲线的参数方程,联系x、y之间关系的变数称为参变数,简称参数。类似地,也有曲线的极坐标参数方程ρ=f(t),θ=g(t)。数值法:数值法主要是指有限元法,有限元法大多是在解析法FGM模型的基础上,在不同尺度上进行有限元离散,离散单元尺度不同,进行有限元计算时要满足的连续性条件不同,预测结果的精确度就不同符号说明:t-------任意时刻P(x(t),y(t))------t时刻鱼雷位置Q(l,vt)--------t时刻敌舰位置PQ--------曲线上P点上的切线A(1,0)--------敌舰最初位置v----------敌舰的速度X----------t时刻鱼雷的横坐标y----------t时刻鱼雷的纵坐标y----------y的一阶求导y----------y的二阶求导五、模型的建立图示(建立坐标系)假设t时刻鱼雷的位置为P(x(t),y(t)),敌舰位于Q(l,vt).由于鱼雷头始终对准敌舰,故此时直线PQ就是鱼雷的轨迹曲线弧OP在点P处的切线,即有y=,即=(1—x)y+y······(1)又根据题意,弧OP的长度的2倍,即dx=2······(2)由(1)(2)消去t,整理得模型:(1—x)y=······(3)六、模型求解解法一:(解析法)特点:有较强的技巧性通过降阶法将二阶微分方程(3)化为一阶微分方程:设y=p,即dy=p,则y=dp(1—x)dp=由分离变量法有:dp=对等式左边积分有:dp=ln(p+)+C对等式右边积分有:=—+Cln(p+)=—+C由题意知y(0)=0,即p(0)=0C=0ln(p+)=—y+=(1—x)通过移项,对两边同时平方,可消去得:y==两边同时积分得:y=(1—x)—(1—x)+C再由y(0)=0解得鱼雷的运动轨迹方程为:y=(1—x)—(1—x)+当x=1时,y=,即当敌舰航行到点(1,)处时被鱼雷击中,被击中时间为:t==,若=1,则在t时被击中解法二:(建立参数方程求数值解)特点:求解简单方便设t时刻敌舰的坐标为(X(t),Y(t)),鱼雷的坐标为(x(t),y(t)).设鱼雷的速度恒为ω,则()+()=ω······(1)由于鱼雷头始终对准敌舰,故鱼雷的速度平行于敌舰与鱼雷头位置的差向量即:()=λ(),λ>0······(2)消去λ得······(3)因敌舰以速度v沿直线x=1运动,由题意v=0.45,则ω=0.9,X=1,Y=t,因此鱼雷的运动轨迹的参数方程为:用MATLAB实现运算得结果:y=000.00010.00000.00010.00000.00020.00000.00020.00000.00050.00000.00070.00000.00100.00000.00120.00000.00250.00000.00370.00000.00500.00000.00620.00000.01250.00000.01880.00010.02510.00020.03130.00020.06270.00100.09410.00230.12550.00410.15680.00650.22620.01390.29530.02440.36370.03820.43140.05550.51530.08290.59680.11690.67470.15820.74810.20710.79210.24230.83310.28080.87070.32270.90450.36770.92410.39810.94170.42970.95700.46240.97010.49610.97740.51740.98360.53900.98860.56090.99280.58290.99570.59780.99780.61260.99800.62710.99850.64160.99930.64650.99980.65120.99950.65580.99950.66041.00400.66481.00620.6675由以上的数据可知:当x=1时,yt=y/0.45=0.667/0.45图形如下:七、结果分析、检验:此模型将鱼雷击舰问题转化为二围平面问题,将问题简单化,利用几何关系---曲线的相切性质列出常微分方程,利用微分与积分学求解方程,简化了计算过程,快速方便的得出所需结果。模型中也存在不足之处,为了方便模型的建立与问题的求解,我们将鱼雷的质量忽略不记,故在实际问题中发射鱼雷需水平面以一定的夹角发射。在鱼雷及敌舰运动过程中我们也忽略了水流和气流向对它们运动轨迹的影响。因此所得数据与实际数据存在一定的误差。运用MATLAB数学软件避免了复杂的求解过程,通过程序直接得到了我们所需要的结果,并且结果与用解析法求出来的结果十分接近,再次验证了结果的正确性。此模型实用性较强,还可用于其他的追击问题,如导弹追踪问题等等。应用拓展:我们还可对该问题推广:如果发射鱼雷时,敌艇立即由仪器觉察,假定敌艇为一高速快艇,他即刻以V的速度与鱼雷方向成一夹角逃逸,假设鱼雷的速度为V,问导弹何时何地击中敌艇?仿真模型的建立:在这个问题上,就是一步步地模拟导弹追踪敌舰的实际过程。将该过程分为无数个细小的时间微元。将曲线转换为无数细小的折线段,再利用我们熟悉的一阶数学表达式将鱼雷与敌舰的坐标表示出来。再利用迭代的思想,依次列出下一时间单元的表达式,从而推导出其迭代方程,再利用C语言程序求解。设:逃逸方向与导弹速度方向夹角为θ,如下图建立坐标轴:模型的建立:考虑到舰艇的体积,我们认为当导弹坐标点与舰艇坐标点距离小于一米时击中舰艇。设:舰艇沿北偏东度航行,鱼雷经过t时间击中敌舰,此时不妨设鱼雷坐标为(xd,yd),敌舰坐标(xj,yj)则由题意:当1时,则算击中。t=时,xd=v,yd=0xj=vcos+1,yj=vsint=2时,=arctanxd=xd+vcos,yd=yd+vsinxj=xj+vcos(+),yj=yj+vsin(+)············由此可得迭代公式xd=v,yd=0xj=vcos+1,yj=vsina=arctanxd=xd+vcosyd=yd+vsinxj=xj+vcos(+)yj=yj+vsin(+)C语言源程序:#include<stdio.h>

#include<math.h>

voidmain()

{

doublex,xd1,xd2,yd1,yd2,v1=0.45,v2=0.9,t,a,q;

intcount=1;

printf("请输入t和q的值,中间用逗号隔开:");

scanf("%f","%f",&t,&q);

xd1=v1*t;

yd1=0;

xd2=v2*t*cos(q)+1;

yd2=v2*t*sin(q);

x=(yd1-yd2)/(xd1-xd2);

a=atan(x);

do

{

xd1=xd1+v1*t*cos(a);

yd1=yd1+v1*t*sin(a);

xd2=xd2+v2*t*cos(a+q);

yd2=yd2+v2*t*sin(a+q);

x=(yd1-yd2)/(xd1-xd2);

a=atan(x);

count++;

}

while(sqrt((xd1*xd1-xd2*xd2)+(yd1*yd1-yd2*yd2))<=1);

printf("%f",t*count);

}

八、模型的评价与改进:该模型真实地模拟了题目的意思,并且通过多种不同的方法求解出非常相近的结果,同时验证出了模型的正确性。但是模型本身是基于假设鱼雷的质量忽略不记,在鱼雷及敌舰运动过程中忽略水流和气流向对它们运动轨迹的影响。所以与实际是有一定的差距的。同时模型中引用了MATLAB软件来进行运算,大大简化了运算过程,但是其本身是存在误差的。改进:现在我们对其做一些改进,在附录的源程序中,按二分法逐步修改tf,即分别取tf=1,0.5,0.25,…,直到tf=0.21时,得图2数据见附录中:由图与数据可知改进后的模型收敛速度更快。结论:鱼雷需要1.41min才会击中敌舰九、参考文献《高等数学》第六版上册,同济大学数学系编,高等教育出版社;《MATLAB7.0实用教程》,张圣勤编著,机械工业出版社。十、附录参数方程解数值源程序:functiondy=eq2(t,y)dy=zeros(2,1);dy(1)=2*(1-y(1))/sqrt((1-y(1))^2+(t-y(2))^2);dy(2)=2*(t-y(2))/sqrt((1-y(1))^2+(t-y(2))^2);t0=0,tf=2;[t,y]=ode45('eq2',[t0tf],[00]);X=1;Y=0:0.01:2;plot(X,Y,'-')holdonplot(y(:,1),y(:,2),'*')改进模型的数据:000.00010.00000.00010.00000.00020.00000.00020.00000.00050.00000.00070.00000.00100.00000.00120.00000.00250.00000.00370.00000.00500.00000.00620.00000.01250.00000.01880.00010.02510.00020.03130.00020.06270.00100.09410.00230.12550.00410.15680.00650.19160.00980.22640.01390.26100.01880.29560.02440.33000.03090.36420

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论