导弹追踪问题 数学

kuaidi.ping-jia.net  作者:佚名   更新日期:2024-08-04
分类: 教育/科学 >> 学习帮助
问题描述:

某军一导弹基地发现正北方向120km处海面上有敌艇一艘以90km/h的速度向正东方向行驶,该基地立即发射导弹追击敌艇,导弹速度为630km/h,自动导航系统使导弹在任一时刻都能对准敌艇,试问导弹在何时何处击中敌艇?

解析:

当t =0 时,导弹位于原点O,敌艇位于(0,120)点;

当时刻t ,导弹位于L(x(t),y(t)),敌艇位于(90t,120)点。

导弹速度可由水平分速度与垂直分速度合成:

(dx/dt)^2+(dy/dt)^2=630^2______【1】

导弹方向指向敌艇,导弹轨迹的导数就是其切线,所以

dy/dx=(120-y)/(90t-x)__________【2】

而dy/dx=(dy/dt)/(dx/dt)

解以上微分方程组,初始条件为:x(0)=0,y(0)=0

【1】Matlab符号解法:

>> dsolve('(Dx)^2+(Dy)^2=630^2','Dy=Dx*(120-y)/(90*t-x)','x(0)=0,y(0)=0')

解不出来,需要数值解法。

【2】数值解法,可以用差分方程法,也可以用龙格库塔法,还可以消去t,化为二阶微分方程。这里用差分方法。

dx=x(k+1)-x(k);dy=y(k+1)-y(k);dt=t(k+1)-t(k)=h

%Matlab程序:

clear;clc

h=0.0001;%时间步长

k=1;

t(1)=0;x(1)=0;y(1)=0;%初始值

while y<=120

x(k+1)=x(k)+630*h/sqrt(1+((120-y(k))/(90*t(k)-x(k)))^2);

y(k+1)=y(k)+630*h/sqrt(1+((90*t(k)-x(k))/(120-y(k)))^2);

t(k+1)=h*k;

k=k+1;

end

plot(x,y,x(1):0.05:x(end),120)

t=t(end),x=x(end),y=y(end)

运行结果:

t = 0.1945

x = 17.5281

y = 120.0140

图形见:hiphotos.baidu/chemical%5Fengineering/pic/item/07c311df70b7801262279828