资源描述:
《关于追击问题的数学建模实验报告》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、实验报告装备02崔江2011/4/4一、实验问题在一边长为1的正方形跑道的四个顶点上各站有1人,他们同时开始以等速顺时针沿跑道追逐下一人,在追击过程中,每个人时刻对准目标,试模拟追击路线,并讨论:1)四个人能否追到一起?2)若能追到一起,则每个人跑过多少路程?3)追到一起所需要的时间(设速率为1)?4)如果四个人追逐的速度不一样,情况又如何呢?二、问题的分析这是一个追击问题,模拟其追击过程就是将整个追击过程离散化,即以dt为时间间隔,四个人分别一步一步的追击前边的人,持续直到任意两个人的距离足够小为止。这时就可以根据条件和追击规律,实时计算出每个人经过的路程和相遇所用的时间
2、:每个人的位置坐标可以根据向量的表示方法表示,而每个人运动的方向则可以通过被追击的人的位置向量r1与追击人的位置向量r2的差r2-r1的方向来表示。三、实验中用到的符号V(人的速度)dt(时间微元)A、B、C、D(四个人的位置向量)time(最终相遇所用的时间)s(A从开始到相遇经过的路程)四、程序设计clear;clc;clf;%建立坐标系和网格holdonaxis([01000100]);1grid%初始化四个人的位置A=[0,0];B=[0,100];C=[100,100];D=[100,0];%初始化四个人的距离d1=norm(A-B);d2=norm(B-C);d
3、3=norm(C-D);d4=norm(D-A);%初始化循环变量和行走路程,速度,设置时间微元k=0;s=0;v=1;dt=0.2;%开始执行追击的循环体whilek>-1k=k+1;plot(A(1),A(2),'r.','markersize',10);plot(B(1),B(2),'b.','markersize',10);plot(C(1),C(2),'g.','markersize',10);plot(D(1),D(2),'black.','markersize',10);e1=B-A;d1=norm(e1);e2=C-B;d2=norm(e2);e3=D-C;
4、d3=norm(e3);e4=A-D;d4=norm(e4);%设置追击结束的条件ifd1<=0.3breakende1=e1/d1;2e2=e2/d2;e3=e3/d3;e4=e4/d4;A=A+v*dt*e1;s=s+norm(v*dt*e1);B=B+v*dt*e2;C=C+v*dt*e3;D=D+v*dt*e4;pause(0.00005)end%输出追击结束所用的时间和路程time=k*dts%程序到此结束%五、问题求解结果与讨论运行程序后可以得到如下图表:3从上表容易看出当四个人的速度相同时,他们所经过的路线呈对称分布,并且最终会相遇在正方形的中点处,这显然是符
5、合我们的常识的。而在matlab的命令栏中显示如下结果:time=100.6000s=100.4000可以认为当dt足够小的时候,时间和路程应该都趋近于100,即lim(????)=100dt→0lim(?)=100??→0所以,问题1的答案是“能追到一起”;问题2的答案是“每个人泡过的路程均为100”;问题3的答案是“追到一起所用时间为100”而对于问题4,通过修改matlab程序中的人的速度v,即可得到对应于修改过的速度v’的答案。为了举例说明,将A的速度改为v’=2v,运算后得到如下结果:明显的4而在matlab命令栏中的结果则为:time=56.2000S=56.
6、0000从上述结果可以总结出:当四个人的速度不同时,四个人必定有两个人先相遇,也就是说四个人最终不能相遇在一块,而当两个人先相遇的时候,每个人的路程都有不同。六、实验的总结与体会对于方向不断改变的追击问题来说,如果研究对象比较少或者只有两个,则容易求出精确的解析解。而对于研究对象比较多而他们之间的相对关系又较复杂的情况下,求解析解将会变得十分困难。此时通过建立方向向量的方法把连续的过程转化成离散的并且交给计算机进行模拟,则可以根据设置求解精度得到十分精确的数值解。这也就是此次试验的意义所在。而对于实际问题比如导弹追击飞机,就可以通过matlab的编程把实际问题转化成数学模型
7、,只要把干扰要素修正得当,就可以迅速的模拟出很精确的解决方案,这也体现了建立模型的优势。5