《数学建模》课程作业题-11第四章微分方程模型-导弹跟踪1.编程实现课本中的导弹跟踪的仿真方法。一、问题提出某军的一导弹基地发现正北方向120km处海面上有敌艇一艘以90km/h的速度向正东方向行驶。该基地立即发射导弹跟踪追击敌艇,导弹速度为450km/h,自动导航系统使导弹在任一时刻都能对准敌艇。试问导弹在何时何处击中敌艇?二、模型建立设坐标如图1所示,取导弹基地为圆点(0,0),x轴指向正东方,y轴指向正北方。b图1:导弹飞行示意图当t=0时,导弹位于O,敌艇位于点A(0,H),其中H=120km,设导弹在t时刻的位置为p(x(t),y(t)),由题意222ddddwxyvtt(1)其中wv=450km/h。另外在t时刻,敌艇位置应为(,)eMvtH,其中ev=90km/h。由于导弹轨迹的切线方向必须指向敌舰,即直线PM的方向就是导弹轨迹上点P的切线方向,故有ddeyHyxvtx(2)方程(1)(2),连同初值条件x(0)=0,y(0)=0构成了一个关于时间变量t的一阶微分方程组的初值问题。222ddddddddwexyvttyxHyxtvtx(3)消去t,最终得到轨迹方程,可得到一个二阶非线性微分方程,加上初值条件,最终的数学模型为:22200ddd1ddx0,0dyewyyvxHyvyxyx(4)三、模型求解令dxdyp,记ewvv,将初值问题(4)化为一阶微分方程组2dxdyd1d(0)0(0)0pppyHyxy(5)取自变量y的步长为h=H/n。仿真方法,就是模仿真实时间行为和过程的方法。设导弹和敌艇在初始时刻(t=0)分别位p0(0,0)和M0(0,H),此时导弹位于M0。在t时,导弹的位置为p1(x1,y1),其中110,wxyv敌艇的位置则为1(,)eMvH。这时导弹沿P1M1方向飞行,P1M1的斜角为:1arctanweHvv(8)在2t时,导弹的位置为p2(x2,y2),其中211211cossinwwxxvyyv,敌艇的位置则为2(2,)eMvH,这时导弹沿P2M2方向飞行。以此方式,一般的,设tk时,导弹的位置为pk(xk,yk),敌艇的位置则为(,)keMkvH,这时导弹沿PkMk方向飞行,PkMk的斜角为:arctankkekHykvx(9)从而(1)tk时,导弹位置为pk+1(xk+1,yk+1),其中,112222cossincos()()sin()()kkwkkkwkekkekkekkekkxxvyyvkvxkvxHykvykvxHy(10)敌艇的位置则为1((1),)keMkvH。计算至1,kkyHyH时,仿真停止;或事先给定误差界,这时,有1,keLLxTv。对于0.1,0.05,0.005,0.001,0.0001,用仿真迭代格式(10)进行计算,结果见表5(附录一)表5:不同步长分割下的仿真结果0.10.010.0050.0010.0001L22.67525.26525.66725.04925.006T0.25190.28070.28520.27830.。2778此时21.2781,0.2364LkmTh,精确解25,0.2778LkmTh,结果与改进算法几乎一致。2.如果当基地发射导弹的同时,敌舰立即由仪器发觉.假定敌舰为一高艘快艇,它即刻以135km/h的速度与导弹方向垂直的方向逃逸,问导弹何时何地击中敌舰?(1)试建立数学模型并求解;(2)对上一问题运用仿真方法进行计算;(3)如果敌舰以135km/h的速度与导弹方向成固定夹角的方向逃逸,问导弹何时何地击中敌舰?试建立数学模型,并选择若干特殊角度进行计算.(1)建立模型:敌舰和导弹方向所成角度为2,导弹运动的倾斜角为,敌舰运动的倾斜角为)2(0在t时,导弹的位置为),0(1wvp,敌舰的位置为)2sin,2cos(1eevvm在kt时,''arctankkkkkxxyy,2kk导弹的位置为),(11kkkyxp,其中kwkkvxxcos1,kwkkvyysin1敌舰的位置为),('1'1kkkyxm,其中kekkvxxcos''1,kekkvyysin''1(2)利用Matlab计算,得出当t=0.001时,为32.9120。(3)建立模型:假设敌舰和导弹方向所成角度为)0((当时运动轨迹夹角在),0(内的相同只是方向相反),导弹运动的倾斜角为在t时,导弹的位置为),0(1wvp,敌舰的位置为)sin,cos(1eevvm在kt时,''arctankkkkkxxyy,kk导弹的位置为),(11kkkyxp,其中kwkkvxxcos1,kwkkvyysin1敌舰的位置为),('1'1kkkyxm,其中kekkvxxcos''1,kekkvyysin''1模型求解:利用Matlab计算(附录二),得出当取夹角为60°时,导弹的倾斜角为39.7241;夹角为45°时,倾斜角为38.3982,夹角取30°时,倾斜角为31.5749。当取夹角为60°时:ans=39.7241当夹角为45°时:ans=38.3982当夹角为30°时:ans=31.57493(容器漏水问题)有一个高为10m的半球形容器,水从它的底部小孔流出,小孔横截面积为10cm2.开始时容器内盛满水,求水从小孔流出过程中容器里水面的高度h(水面与孔口中心的距离)随时间t变化的规律.模型建立:由流体力学公式可得,水从小孔流出的流量ghsdtdV262.0Q(其中0.62为流量系数),小孔横截面积01.0s因此ghdtdV20062.0在],[dttt内,水面高度由h降至dhh,因此dhrdV2,t时刻的水面半径22220)10(10hhhr因此dhhhdV)20(2即0)10()20(20062.02tdhhhdtgh解得)10151434052(20062.0252325hhgt模型求解:利用Matlab进行求解(附录三),得到的部分数据,并建立水面高度随时间变化的表。如下表:时间/h00.020.040.070.09水面高度/cm1000950900850800时间/h0.110.130.150.170.19水面高度/cm750700650600550时间/h0.210.230.260.280.3水面高度/cm500450400350300时间/h0.320.350.370.41水面高度/cm2502001501004(慢跑者与狗)一个慢跑者在平面上沿椭圆以恒定的速率v=10跑步,假设椭圆方程为:tytxsin150200,cos200100.突然有一只狗准备攻击他,这只狗从原点出发,以恒定速率w跑向慢跑者,并假定狗的运动方向始终指向慢跑者.试分别求出:(1)w=20,w=5时狗的运动轨迹;(2)计算并画出狗跑动的轨迹.(1)模型的建立及求解:设t时刻慢跑者的坐标为))(),((tYtX,狗的坐标为))(),((tytx,则tYtXsin150200cos200100由狗的运动方向始终指向慢跑者可得,xXyYdxdy,即)()(yYxXxtdxdtdy带入求出得,0)0(,0)0()sin150200()sin150200()cos200100()cos200100()sin150200()cos200100(2222yxytytxtwdtdyxtytxtwdtdx(2)通过MATLAB编程(附录四)就可以得到当w=20,w=5时,狗的运动轨迹图分别如下:w=5时狗的运动轨迹w=20时狗的运动轨迹附录一:%zs_11_1t=0.001;H=120;vw=450;ve=90;x(1)=0;y(1)=vw*t;k=1;whiley(k)Hs(k)=atan((H-y(k))/(k*ve*t-x(k)));x(k+1)=x(k)+vw*t*cos(s(k));y(k+1)=y(k)+vw*t*sin(s(k));k=k+1;endx(k)plot(x,y);附录二:%zs_11_2H=120;t=0.0001;n=input('敌舰逃离角度n=');m=n*pi/180;ve=135;vw=450;x(1)=0;y(1)=0;y1(1)=120;x1(1)=0;a=pi/2;i=1;whilesqrt((x1(i)-x(i))^2+(y1(i)-y(i))^2)0.1x1(i+1)=x1(i)+ve*t*cos(m-a);y1(i+1)=y1(i)-ve*t*sin(m-a);x(i+1)=x(i)+vw*t*cos(a);y(i+1)=y(i)+vw*t*sin(a);i=i+1;a=atan((y1(i)-y(i))/(x1(i)-x(i)));endplot(x,y,'-k',x1,y1,'-c');if(sqrt((x1(i)-x(i))^2+(y1(i)-y(i))^2)sqrt((x1(i-1)-x(i-1))^2+(y1(i-1)-y(i-1))^2))T=i*t;L=x(i);elseT=(i-1)*t;L=x(i-1);enda=[L',T']附录三:%zs_11_3k=-50;h=1000:-50:1;t(1)=0;fori=1:length(h)-1t(i+1)=t(i)+k*xiaokong(t(i),h(i));t(i)h(i)end%xiaokong.mfunctionf=xiaokong(t,h)f=-10*sqrt(2*10*h)/(pi*(2000*h-h.^2));end附录四:%zs_11_4%w=5M文件:functiondy=fd(t,y)w=5;dy=zeros(2,1);dy(1)=10*w*(100+200*cos(t)-y(1))/sqrt((100+200*cos(t)-y(1))^2+(200+150*sin(t)-y(2))^2);dy(2)=10*w*(200+150*sin(t)-y(2))/sqrt((100+200*cos(t)-y(1))^2+(200+150*sin(t)-y(2))^2);end主程序:t0=0;[t,y]=ode45('fd',[t0,30],[0,0]);T=0:0.01:2*pi;X=100+200*cos(T);Y=200+150*sin(T);plot(X,Y,'-b')holdonplot(y(:,1),y(:,2),'-r')xlabel('x');ylabel('y');legend('慢跑者','狗');%w=20M文件:functiondy=fd(t,y)w=20;dy=zeros(2,1);dy(1)=10*w*(100+200*cos(t)-y(1))/sqrt((100+200*cos(t)-y(1))^2+(200+150*sin(t)-y(2))^2);dy(2)=10*w*(200+150*sin(t)-y(2))/sqrt((100+200*cos(t)-y(1))^2+(200+150*sin(t)-y(2))^2);end主程序:t0=0;[t,y]=ode45('fd',[t0,3],[0,0]);T=0:0.1:2*pi;X=100+200*cos(T);Y=200+150*sin(T);plot(X,Y,'-b');holdon;plot(y(: