急求matlab高手!急!

有一道题想请matlab高手用matlab编写一段小程序解决一下,谢谢!1、某军一导弹基地发现正北方向120km处海面上有敌艇一艘以9km/h的速度向正东方向行驶。该基地... 有一道题想请matlab高手用matlab编写一段小程序解决一下,谢谢!
1、某军一导弹基地发现正北方向120km处海面上有敌艇一艘以9km/h的速度向正东方向行驶。该基地立即发射导弹跟踪追击敌艇,导弹的速度为450km/h,自动导航系统使导弹在任一时刻都能对准敌艇,试画出导弹追击轨迹。
2、如果当基地发射导弹的同时,敌艇立即由仪器发觉,假定敌艇为一高速快艇,它立刻以135km/h的速度与导弹垂直的方向逃逸,问试画出导弹追击轨迹。
展开
 我来答
化学工程
2007-06-22 · TA获得超过8902个赞
知道大有可为答主
回答量:2212
采纳率:80%
帮助的人:3574万
展开全部
【1】
当t =0 时,导弹位于原点O,敌艇位于(0,120)点;
当时刻t ,导弹位于L(x(t),y(t)),敌艇位于(9t,120)点。

导弹速度可由水平分速度与垂直分速度合成:
(dx/dt)^2+(dy/dt)^2=450^2______【1】

导弹方向指向敌艇,导弹轨迹的导数就是其切线,所以
dy/dx=(120-y)/(9t-x)__________【2】
而dy/dx=(dy/dt)/(dx/dt)

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

这里用差分方法。
dx=x(k+1)-x(k);dy=y(k+1)-y(k);dt=t(k+1)-t(k)=h

%Matlab程序:
clear;clc
h=0.1;%时间步长
k=1;
t(1)=0;x(1)=0;y(1)=0;%初始值
while y<=120
x(k+1)=x(k)+450*h/sqrt(1+((120-y(k))/(9*t(k)-x(k)))^2);
y(k+1)=y(k)+450*h/sqrt(1+((9*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.2668
x = 2.4017
y = 120.0029

【2】把9改成135即可。
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式