如图,在x=1,y≈0.667左右相交。 接着,我们运用二分法修改tf的值
[t,y]=ode45('eq2',[0 0.667],[0 0]);
Y=0:0.01:2; plot(1,Y,'-')
hold on plot(y(:,1),y(:,2),'*')
即鱼雷与敌舰相遇地点为(1,0.667),所以相遇所耗时间 t≈88.9秒
模型二
YPOOBQCx
设鱼雷航行曲线为y?y(x).在时刻t,鱼雷的坐标为P(x,y),敌舰的坐标为Q(1,v0t).因鱼雷始终对准敌舰,所以有(1)
因弧长OP为2v0t,故?01?(xdyCQv0t?y?? dxPC1?xdy2)dx?2v0t (2) dxdy1xdy由(1)、(2)消去t得(1?x)??01?()2dx?y
dx2dx两边对x求导,得
dyd2y1dydy??(1?x)2?1?()2? dx2dxdxdxd2y1dy2?1?(),初始条件为y(0)?0,y?(0)?0.方程的通解为 22(1?x)dxdx21y?c1(2(1?x)2?(1?x)2)?c2代入初始条件得c1?1,c2?,所以鱼雷的
33c1212
航行曲线为y??(1?x)2?(1?x)2,当x=1时, y?海里,即当敌舰航
333
3131?2???行0.667海里时将被鱼雷击中。所用时间为t=?3?0.45≈1.48148分
钟=88.889秒。
y单位:海里 0.7 0.6 0.5 0.4 0.3 0.2 0.1 0 -0.1 0
0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1
x单位:海里
y与x的曲线关系图(横坐标x纵坐标y) (注:此模型用MATLAB的验证结果见附录)
模型三
微分方程的建立:
function dxy=zhuiji(t,xy) v0=0.45; v1=2*v0;
k=(v0*t-xy(2))/(1-xy(1));
dxy=[v1/sqrt(k^2+1); v1*k/sqrt(k^2+1)]; 用ode45求解模型: %微分方程模型 %ode求解追击模型 v0=0.45; v1=2*v0;
[t1,i1]=ode45(@zhuiji,[0;1.55],[0;0]); % plot(i1(:,1),i1(:,2)); m=size(t1); m=m(1); hold on for tt=2:m
axis([0,1,0,2/3])
plot(i1(tt-1:tt,1),i1(tt-1:tt,2)); plot(i1(tt,1),i1(tt,2),'o'); plot(1,v0*t1(tt),'+');
plot([i1(tt,1) 1],[i1(tt,2) v0*t1(tt)],'r--.') pause(.5); end hold off
运行结果如下两图:
等时间间隔的改进:
v0=0.45; v1=2*v0;
[t1,i1]=ode45(@zhuiji,[0;1.49],[0;0]); t2=0:0.05:1.5;