可否用常微分方法建模呢?怎么建模啊?
1个回答

当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