Initializations

<<"Graphics`"
$TextStyle={FontFamily->"Times",FontSize->16};
Off[General::"spell1"]
Off[InverseFunction::"ifun"]
Off[Solve::"ifun"]

Nonlinear Differential Equation Example: Heat Seeking Missile

Nonlinear differential equations have no general method of solution. They lead to the concept of chaos (sensitivity to initial conditions) and the study of dynamical systems.

Here's an example that leads to a nonlinear system of differential equations. Consider an airplane that flies at constant velocity v at a fixed altitude h. A heat seeking missle is launched when the airplane is directly overhead. The missle has constant speed u, and the missile follows a trajectory such that it is always pointing at the airplane. We want to determine the equation of the trajectory the missile follows.

A diagram of the situation can be found at http://cda.morris.umn.edu/~mcquarrb/DE/Math/missile.jpg

We therefore arrive at the following equations which describe the trajectory of the missile.

(((d x/d t))/((d y/d t)))=((v t-x)/(h-y)),

(((((d x)/(d t))))^2)+ (((((d y)/(d t))))^2)=(u^2),

 x(0)=y(0)=0.

We can see that these are fairly complicated--the quantity we want is y(x) (an explicit solution), but we will settle for any representation of the curve in the x y-plane. We also have time appearing in our system of equations, and so it is natural to think that maybe a parametric solution x(t) and y(t) would be a good alternative to the explicit solution. We shall see that it is a bit more complicated then that, but with no general method of solution to guide we just have to manipulate the equations until we can arrive at a solution.

Let's get a numerical solution first, since that is fairly straighforward.

Numerical Solution

We can get an approximation to the trajectory using an approximation to the derivatives. We will parameterize with the parameter t, the time.

(((d x/d t))/((d y/d t)))=((v t-x)/(h-y)),

(((((d x)/(d t))))^2)+ (((((d y)/(d t))))^2)=(u^2),

 x(0)=y(0)=0.

Let's use a simple expression for the derivative, although we could use better approximations if we wanted to. First, solve for the derivitives explicitly

((d x)/(d t))=((v t-x)/(h-y))(u/(Sqrt[(((((v t-x)/(h-y))))^2)+1]))=(Subscript[f, 1])(t,x,y),

((d y)/(d t))=(u/(Sqrt[(((((v t-x)/(h-y))))^2)+1]))=(Subscript[f, 2])(t,x,y),

 x(0)=y(0)=0.

Here is the Runge-Kutta approximation recursively coded into Mathematica:

Clear[t,y,f]
(Subscript[f, 1])[t_,x_,y_]=(((v t-x) u)/((height-y) (Sqrt[(((((v t-x)/(height-y))))^2)+1])));
(Subscript[f, 2])[t_,x_,y_]=(u/(Sqrt[(((((v t-x)/(height-y))))^2)+1]));

height=1;
u=1;
v=0.9;

h = 0.015;
num=140;

t=0.0;
(Subscript[w, 1])=0.0;
(Subscript[w, 2])=0.0;

data={{t,(Subscript[w, 1]),(Subscript[w, 2])}};
Do[
(Subscript[k1, 1])=h*(Subscript[f, 1])[t,(Subscript[w, 1]),(Subscript[w, 2])];
(Subscript[k1, 2])=h*(Subscript[f, 2])[t,(Subscript[w, 1]),(Subscript[w, 2])];
(Subscript[k2, 1])=h*(Subscript[f, 1])[t+h/2,(Subscript[w, 1])+(Subscript[k1, 1])/2,(Subscript[w, 2])+(Subscript[k1, 2])/2];
(Subscript[k2, 2])=h*(Subscript[f, 2])[t+h/2,(Subscript[w, 1])+(Subscript[k1, 1])/2,(Subscript[w, 2])+(Subscript[k1, 2])/2];
(Subscript[k3, 1])=h*(Subscript[f, 1])[t+h/2,(Subscript[w, 1])+(Subscript[k2, 1])/2,(Subscript[w, 2])+(Subscript[k2, 2])/2];
(Subscript[k3, 2])=h*(Subscript[f, 2])[t+h/2,(Subscript[w, 1])+(Subscript[k2, 1])/2,(Subscript[w, 2])+(Subscript[k2, 2])/2];
(Subscript[k4, 1])=h*(Subscript[f, 1])[t+h,(Subscript[w, 1])+(Subscript[k3, 1]),(Subscript[w, 2])+(Subscript[k3, 2])];
(Subscript[k4, 2])=h*(Subscript[f, 2])[t+h,(Subscript[w, 1])+(Subscript[k3, 1]),(Subscript[w, 2])+(Subscript[k3, 2])];
(Subscript[w, 1])=(Subscript[w, 1])+((Subscript[k1, 1])+2(Subscript[k2, 1])+2(Subscript[k3, 1])+(Subscript[k4, 1]))/6.0;
(Subscript[w, 2])=(Subscript[w, 2])+((Subscript[k1, 2])+2(Subscript[k2, 2])+2(Subscript[k3, 2])+(Subscript[k4, 2]))/6.0;
t=t+h;
data=Append[data,{t,(Subscript[w, 1]),(Subscript[w, 2])}],
{i,1,num}]

TableForm[data,TableHeadings->{None,{"(Subscript[t, i])","((Subscript[x, 1]))_i","((Subscript[x, 2]))_i"}}];

phase=Table[{data[[i,2]],data[[i,3]]},{i,1,Length[data]}];

rk4plot = ListPlot[phase,Frame->True,FrameLabel->{"x=(Subscript[x, 1])","y=(Subscript[x, 2])"},PlotStyle->{Blue,PointSize[0.02]},ImageSize->{500,Automatic}]

If we ever get to y=1, then the missle will have hit the plane.

Animation

planeimage=Import["http://www.pilotshirts.com/images/5_Pics-Links/5_PlaneParts.gif"];
planeimage=Rasterize[planeimage,ImageSize->30];

missileimage=Import["http://www.deakin.edu.au/emergency/images/bomb.gif"];
missileimage=Rasterize[missileimage,ImageSize->30];

Clear[t,y,f,datam,datap,sketch,sketch2]
(Subscript[f, 1])[t_,x_,y_]=(((v t-x) u)/((height-y) (Sqrt[(((((v t-x)/(height-y))))^2)+1])));
(Subscript[f, 2])[t_,x_,y_]=(u/(Sqrt[(((((v t-x)/(height-y))))^2)+1]));

height=1;
u=1;
v=0.9;

plane[t_]={v*t,height};

h = 0.015;
num=300;

t=0.0;
(Subscript[w, 1])=0.0;
(Subscript[w, 2])=0.0;

datam={{(Subscript[w, 1]),(Subscript[w, 2])}};
datap={plane[t]};

Do[
(Subscript[k1, 1])=h*(Subscript[f, 1])[t,(Subscript[w, 1]),(Subscript[w, 2])];
(Subscript[k1, 2])=h*(Subscript[f, 2])[t,(Subscript[w, 1]),(Subscript[w, 2])];
(Subscript[k2, 1])=h*(Subscript[f, 1])[t+h/2,(Subscript[w, 1])+(Subscript[k1, 1])/2,(Subscript[w, 2])+(Subscript[k1, 2])/2];
(Subscript[k2, 2])=h*(Subscript[f, 2])[t+h/2,(Subscript[w, 1])+(Subscript[k1, 1])/2,(Subscript[w, 2])+(Subscript[k1, 2])/2];
(Subscript[k3, 1])=h*(Subscript[f, 1])[t+h/2,(Subscript[w, 1])+(Subscript[k2, 1])/2,(Subscript[w, 2])+(Subscript[k2, 2])/2];
(Subscript[k3, 2])=h*(Subscript[f, 2])[t+h/2,(Subscript[w, 1])+(Subscript[k2, 1])/2,(Subscript[w, 2])+(Subscript[k2, 2])/2];
(Subscript[k4, 1])=h*(Subscript[f, 1])[t+h,(Subscript[w, 1])+(Subscript[k3, 1]),(Subscript[w, 2])+(Subscript[k3, 2])];
(Subscript[k4, 2])=h*(Subscript[f, 2])[t+h,(Subscript[w, 1])+(Subscript[k3, 1]),(Subscript[w, 2])+(Subscript[k3, 2])];
(Subscript[w, 1])=(Subscript[w, 1])+((Subscript[k1, 1])+2(Subscript[k2, 1])+2(Subscript[k3, 1])+(Subscript[k4, 1]))/6.0;
(Subscript[w, 2])=(Subscript[w, 2])+((Subscript[k1, 2])+2(Subscript[k2, 2])+2(Subscript[k3, 2])+(Subscript[k4, 2]))/6.0;
t=t+h;
datam=Append[datam,{(Subscript[w, 1]),(Subscript[w, 2])}];
datap=Append[datap,plane[t]],
{i,1,num}]

sketch[i_]:=Graphics[{{Blue,Disk[datam[[i]],0.05]},{Red,Disk[datap[[i]],0.05]}}]

sketch[i_]:=Graphics[{{Inset[planeimage,datap[[i]]]},{Inset[missileimage,datam[[i]]]}}]
sketch2= ListPlot[{datam,datap},Frame->True,Joined->True,FrameLabel->{"x=(Subscript[x, 1])","y=(Subscript[x, 2])"},PlotStyle->{{Blue,Thick},{Red,Thick}},PlotRange->All];

Manipulate[Show[{sketch[i],sketch2},PlotRange->{{-0.1,4.5},{-0.1,1.2}},AspectRatio->1/2,Axes->True],{i,1,num,1}]

Analytic Solution

Clear[f1,f2,t,x,y,x1,x2,h,Δt,w,u,v]

First, note that

(((d x/d t))/((d y/d t)))=((d x)/(d y))=((v t-x)/(h-y)).

We would like to separate and integrate here, but the explicit t dependence makes that impossible. Let's try to hide the t dependence by making a substitution, and see what happens from there (we still won't be able to integrate directly, but maybe we can combine things in a creative way). From Eqn. (5),

((d x)/(d y))=(w/(h-y))=z,

where

w=v t -x, ((d x)/(d t))=v-((d w)/(d t)),  z=(w/(h-y))=((v t-x)/(h-y)).

Now, we can rewrite Eqn. (1) as

v-((d w)/(d t))=z((d y)/(d t)),

(((v-((d w)/(d t))))^2)+ (((((d y)/(d t))))^2)=(u^2).

If we solve Eqn. (8) for dw/dy we find

(((z((d y)/(d t))))^2)+ (((((d y)/(d t))))^2)=(u^2).

((d y)/(d t))=(u/(Sqrt[1+(z^2)]))

((d w)/(d t))=v - ((z u)/(Sqrt[1+(z^2)]))

((d w)/(d y))=((v - ((z u)/(Sqrt[1+(z^2)])))/(((u/(Sqrt[1+(z^2)])))))=(v/u)(Sqrt[1+(z^2)])-z

We see that dw/dy has no explicit t dependence! This means we might be able to find w(y), and then we could use Eqn. (6) to (hopefully) find x(y). Here's how we can do that. From Eqn. (7), w=(h-y)z, and using Eqn. (12) we get

((d w)/(d y))=-z+(h-y)((d z)/(d y))=(v/u)(Sqrt[1+(z^2)])-z

which we can separate, and include the initial conditions in the limits of integration (note w(0)=z((0)=0),

(∫_0^z)(1/(Sqrt[1+(z^2)]))dz=(v/u)(∫_0^y)(1/(h-y))dy

(∫_0^z)(1/(Sqrt[1+(z^2)]))\[DifferentialD]z==(v/u)(∫_0^y)(1/(h-y))\[DifferentialD]y

So we have some conditions arising from the integration. Since h>y>0, they are satisfied.

ArcSinh[z]==(1/u)(v y ((Log[h]-Log[h-y])/y))

Solve[%,z]

This can be simplified if you like using the definition of sinh(x) in terms of exponentials

TrigToExp[Sinh[x]]

(1/2)(((((h/(h-y))))^(v/u))-((((h/(h-y))))^(-v/u)))

From Eqn. (6), we have

(∫_0^x)dx=(∫_0^y)zdy

Integrate[1,{x,0,x}]==Integrate[(1/2) (-((((h/(h-y))))^(-(v/u)))+((((h/(h-y))))^(v/u))),{y,0,y},Assumptions->{h>y,h>0,y>0}]

trajectory=%

This is now an explicit solution x(y), but since it is not y(x) we will treat is as an implict function to get a plot of the trajectory of the missile. We need to set some parameters to get the plot.

solution=ContourPlot[trajectory/.{h->1,u->1,v->0.9},{x,0,2},{y,0,0.99999},PlotPoints->400,AxesLabel->{"x","y"},AspectRatio->(1/2),ImageSize->{500,Automatic}]

If we compare to our numerical solution, we can see that we got it right.

Show[taylor2plot,solution,ImageSize->{500,Automatic}]

Other Plane Maneuvers

What if the plane followed different trajectories? We can certainly solve some modified systems using the numerical solution. Let's explore.

(((d x/d t))/((d y/d t)))=(((Subscript[x, p])(t)-x)/((Subscript[y, p])(t)-y)),

(((((d x)/(d t))))^2)+ (((((d y)/(d t))))^2)=(u^2),

 x(0)=y(0)=0.

The modification here is the plane follows a trajectory given by the parametric equation ((Subscript[x, p])(t),(Subscript[y, p])(t)). If the plane is moving at a constant velocity v, then v=(Sqrt[ (((((d (Subscript[x, p]))/(d t))))^2)+ (((((d (Subscript[y, p]))/(d t))))^2)])

Numerical Solution

(((d x/d t))/((d y/d t)))=(((Subscript[x, p])(t)-x)/((Subscript[y, p])(t)-y)),

(((((d x)/(d t))))^2)+ (((((d y)/(d t))))^2)=(u^2),

 x(0)=y(0)=0.

Let's use a simple expression for the derivative, although we could use better approximations if we wanted to. First, solve for the derivitives explicitly

((d x)/(d t))=(((Subscript[x, p])(t)-x)/((Subscript[y, p])(t)-y))(u/(Sqrt[((((((Subscript[x, p])(t)-x)/((Subscript[y, p])(t)-y))))^2)+1]))=(Subscript[f, 1])(t,x,y),

((d y)/(d t))=(u/(Sqrt[((((((Subscript[x, p])(t)-x)/((Subscript[y, p])(t)-y))))^2)+1]))=(Subscript[f, 2])(t,x,y),

 x(0)=y(0)=0.

Here is the Runge-Kutta approximation recursively coded into Mathematica:

Clear[t,y,f,xp,yp]

height=10.0;
xp[t_]=v*t;
yp[t_]=height+Sin[t];

(Subscript[f, 1])[t_,x_,y_]:=Abs[(((xp[t]-x) u)/((yp[t]-y) (Sqrt[(((((xp[t]-x)/(yp[t]-y))))^2)+1])))];
(Subscript[f, 2])[t_,x_,y_]:=Piecewise[{{(u/(Sqrt[(((((xp[t]-x)/(yp[t]-y))))^2)+1])),y<yp[t]},{(u/(-(Sqrt[(((((xp[t]-x)/(yp[t]-y))))^2)+1]))),y≥yp[t]}}];

u=1;
v=0.9;

h = 0.01;
num=3000;

t=0.0;
(Subscript[w, 1])=0.0;
(Subscript[w, 2])=0.0;

data={{t,(Subscript[w, 1]),(Subscript[w, 2])}};
Do[
(Subscript[k1, 1])=h*(Subscript[f, 1])[t,(Subscript[w, 1]),(Subscript[w, 2])];
(Subscript[k1, 2])=h*(Subscript[f, 2])[t,(Subscript[w, 1]),(Subscript[w, 2])];
(Subscript[k2, 1])=h*(Subscript[f, 1])[t+h/2,(Subscript[w, 1])+(Subscript[k1, 1])/2,(Subscript[w, 2])+(Subscript[k1, 2])/2];
(Subscript[k2, 2])=h*(Subscript[f, 2])[t+h/2,(Subscript[w, 1])+(Subscript[k1, 1])/2,(Subscript[w, 2])+(Subscript[k1, 2])/2];
(Subscript[k3, 1])=h*(Subscript[f, 1])[t+h/2,(Subscript[w, 1])+(Subscript[k2, 1])/2,(Subscript[w, 2])+(Subscript[k2, 2])/2];
(Subscript[k3, 2])=h*(Subscript[f, 2])[t+h/2,(Subscript[w, 1])+(Subscript[k2, 1])/2,(Subscript[w, 2])+(Subscript[k2, 2])/2];
(Subscript[k4, 1])=h*(Subscript[f, 1])[t+h,(Subscript[w, 1])+(Subscript[k3, 1]),(Subscript[w, 2])+(Subscript[k3, 2])];
(Subscript[k4, 2])=h*(Subscript[f, 2])[t+h,(Subscript[w, 1])+(Subscript[k3, 1]),(Subscript[w, 2])+(Subscript[k3, 2])];
(Subscript[w, 1])=(Subscript[w, 1])+((Subscript[k1, 1])+2(Subscript[k2, 1])+2(Subscript[k3, 1])+(Subscript[k4, 1]))/6.0;
(Subscript[w, 2])=(Subscript[w, 2])+((Subscript[k1, 2])+2(Subscript[k2, 2])+2(Subscript[k3, 2])+(Subscript[k4, 2]))/6.0;
t=t+h;
data=Append[data,{t,(Subscript[w, 1]),(Subscript[w, 2])}],
{i,1,num}]

TableForm[data,TableHeadings->{None,{"(Subscript[t, i])","((Subscript[x, 1]))_i","((Subscript[x, 2]))_i"}}];

phase=Table[{data[[i,2]],data[[i,3]]},{i,1,Length[data]}];

rk4plot = ListPlot[phase,Frame->True,Joined->True,FrameLabel->{"x=(Subscript[x, 1])","y=(Subscript[x, 2])"},PlotStyle->{Blue,Thick},ImageSize->{500,Automatic}]

Animation

Clear[t,y,f,datam,datap,plane,xp,yp,sketch,sketch2]

height=10.0;
u=1;
v=0.9;

xp[t_]:=v*t;
yp[t_]:=height+Sin[t];

(Subscript[f, 1])[t_,x_,y_]:=Abs[(((xp[t]-x) u)/((yp[t]-y) (Sqrt[(((((xp[t]-x)/(yp[t]-y))))^2)+1])))];
(Subscript[f, 2])[t_,x_,y_]:=Piecewise[{{(u/(Sqrt[(((((xp[t]-x)/(yp[t]-y))))^2)+1])),y<yp[t]},{(u/(-(Sqrt[(((((xp[t]-x)/(yp[t]-y))))^2)+1]))),y≥yp[t]}}];
h = 0.01;
num=2500;

plane[t_]:={xp[t],yp[t]};

t=0.0;
(Subscript[w, 1])=0.0;
(Subscript[w, 2])=0.0;

datam={{(Subscript[w, 1]),(Subscript[w, 2])}};
datap={plane[t]};

Do[
(Subscript[k1, 1])=h*(Subscript[f, 1])[t,(Subscript[w, 1]),(Subscript[w, 2])];
(Subscript[k1, 2])=h*(Subscript[f, 2])[t,(Subscript[w, 1]),(Subscript[w, 2])];
(Subscript[k2, 1])=h*(Subscript[f, 1])[t+h/2,(Subscript[w, 1])+(Subscript[k1, 1])/2,(Subscript[w, 2])+(Subscript[k1, 2])/2];
(Subscript[k2, 2])=h*(Subscript[f, 2])[t+h/2,(Subscript[w, 1])+(Subscript[k1, 1])/2,(Subscript[w, 2])+(Subscript[k1, 2])/2];
(Subscript[k3, 1])=h*(Subscript[f, 1])[t+h/2,(Subscript[w, 1])+(Subscript[k2, 1])/2,(Subscript[w, 2])+(Subscript[k2, 2])/2];
(Subscript[k3, 2])=h*(Subscript[f, 2])[t+h/2,(Subscript[w, 1])+(Subscript[k2, 1])/2,(Subscript[w, 2])+(Subscript[k2, 2])/2];
(Subscript[k4, 1])=h*(Subscript[f, 1])[t+h,(Subscript[w, 1])+(Subscript[k3, 1]),(Subscript[w, 2])+(Subscript[k3, 2])];
(Subscript[k4, 2])=h*(Subscript[f, 2])[t+h,(Subscript[w, 1])+(Subscript[k3, 1]),(Subscript[w, 2])+(Subscript[k3, 2])];
(Subscript[w, 1])=(Subscript[w, 1])+((Subscript[k1, 1])+2(Subscript[k2, 1])+2(Subscript[k3, 1])+(Subscript[k4, 1]))/6.0;
(Subscript[w, 2])=(Subscript[w, 2])+((Subscript[k1, 2])+2(Subscript[k2, 2])+2(Subscript[k3, 2])+(Subscript[k4, 2]))/6.0;
t=t+h;
datam=Append[datam,{(Subscript[w, 1]),(Subscript[w, 2])}];
datap=Append[datap,plane[t]],
{i,1,num}]

sketch[i_]:=Graphics[{{Blue,Disk[datam[[i]],0.05]},{Red,Disk[datap[[i]],0.05]}}]

sketch[i_]:=Graphics[{{Inset[planeimage,datap[[i]]]},{Inset[missileimage,datam[[i]]]}}]
sketch2= ListPlot[{datam,datap},Frame->True,Joined->True,FrameLabel->{"x=(Subscript[x, 1])","y=(Subscript[x, 2])"},PlotStyle->{{Blue,Thick},{Red,Thick}},PlotRange->All];

Manipulate[Show[{{sketch[i],sketch2}},PlotRange->{{-0.1,25},{-0.1,12}},AspectRatio->1/2,Axes->True],{i,1,num,1}]

Other Plane Maneuvers

Animation: Landing

Clear[t,y,f,datam,datap,plane,xp,yp,sketch,sketch2]

height=10.0;
u=1;
v=0.9;

xp[t_]:=v*t
yp[t_]:=(height+Sin[2t])*Exp[-t/10]

(Subscript[f, 1])[t_,x_,y_]:=Abs[(((xp[t]-x) u)/((yp[t]-y) (Sqrt[(((((xp[t]-x)/(yp[t]-y))))^2)+1])))];
(Subscript[f, 2])[t_,x_,y_]:=Piecewise[{{(u/(Sqrt[(((((xp[t]-x)/(yp[t]-y))))^2)+1])),y<yp[t]},{(u/(-(Sqrt[(((((xp[t]-x)/(yp[t]-y))))^2)+1]))),y≥yp[t]}}];
h = 0.01;
num=2500;

plane[t_]:={xp[t],yp[t]};

t=0.0;
(Subscript[w, 1])=0.0;
(Subscript[w, 2])=0.0;

datam={{(Subscript[w, 1]),(Subscript[w, 2])}};
datap={plane[t]};

Do[
(Subscript[k1, 1])=h*(Subscript[f, 1])[t,(Subscript[w, 1]),(Subscript[w, 2])];
(Subscript[k1, 2])=h*(Subscript[f, 2])[t,(Subscript[w, 1]),(Subscript[w, 2])];
(Subscript[k2, 1])=h*(Subscript[f, 1])[t+h/2,(Subscript[w, 1])+(Subscript[k1, 1])/2,(Subscript[w, 2])+(Subscript[k1, 2])/2];
(Subscript[k2, 2])=h*(Subscript[f, 2])[t+h/2,(Subscript[w, 1])+(Subscript[k1, 1])/2,(Subscript[w, 2])+(Subscript[k1, 2])/2];
(Subscript[k3, 1])=h*(Subscript[f, 1])[t+h/2,(Subscript[w, 1])+(Subscript[k2, 1])/2,(Subscript[w, 2])+(Subscript[k2, 2])/2];
(Subscript[k3, 2])=h*(Subscript[f, 2])[t+h/2,(Subscript[w, 1])+(Subscript[k2, 1])/2,(Subscript[w, 2])+(Subscript[k2, 2])/2];
(Subscript[k4, 1])=h*(Subscript[f, 1])[t+h,(Subscript[w, 1])+(Subscript[k3, 1]),(Subscript[w, 2])+(Subscript[k3, 2])];
(Subscript[k4, 2])=h*(Subscript[f, 2])[t+h,(Subscript[w, 1])+(Subscript[k3, 1]),(Subscript[w, 2])+(Subscript[k3, 2])];
(Subscript[w, 1])=(Subscript[w, 1])+((Subscript[k1, 1])+2(Subscript[k2, 1])+2(Subscript[k3, 1])+(Subscript[k4, 1]))/6.0;
(Subscript[w, 2])=(Subscript[w, 2])+((Subscript[k1, 2])+2(Subscript[k2, 2])+2(Subscript[k3, 2])+(Subscript[k4, 2]))/6.0;
t=t+h;
datam=Append[datam,{(Subscript[w, 1]),(Subscript[w, 2])}];
datap=Append[datap,plane[t]],
{i,1,num}]

sketch[i_]:=Graphics[{{Blue,Disk[datam[[i]],0.05]},{Red,Disk[datap[[i]],0.05]}}]

sketch[i_]:=Graphics[{{Inset[planeimage,datap[[i]]]},{Inset[missileimage,datam[[i]]]}}]
sketch2= ListPlot[{datam,datap},Frame->True,Joined->True,FrameLabel->{"x=(Subscript[x, 1])","y=(Subscript[x, 2])"},PlotStyle->{{Blue,Thick},{Red,Thick}},PlotRange->All];

Manipulate[Show[{{sketch[i],sketch2}},PlotRange->{{-0.1,25},{-0.1,12}},AspectRatio->1/2,Axes->True],{i,1,num,1}]

Coupled Plane Missile Maneuvers

Check New Code on old System

Clear[t,x,y,z,τ,f]

height=10.0;
u=1;
v=0.9;

(Subscript[f, 1]):=Piecewise[{{Abs[((((Subscript[x, 3])-(Subscript[x, 1])) u)/(((Subscript[x, 4])-(Subscript[x, 2])) (Sqrt[((((((Subscript[x, 3])-(Subscript[x, 1]))/((Subscript[x, 4])-(Subscript[x, 2])))))^2)+1])))],((Subscript[x, 1])≤(Subscript[x, 3])&&(Subscript[x, 2])≤ (Subscript[x, 4]))||((Subscript[x, 1])≤(Subscript[x, 3])&&(Subscript[x, 2])≥(Subscript[x, 4]))},{-Abs[((((Subscript[x, 3])-(Subscript[x, 1])) u)/(((Subscript[x, 4])-(Subscript[x, 2])) (Sqrt[((((((Subscript[x, 3])-(Subscript[x, 1]))/((Subscript[x, 4])-(Subscript[x, 2])))))^2)+1])))],((Subscript[x, 1])≥(Subscript[x, 3])&&(Subscript[x, 2])≤ (Subscript[x, 4]))||((Subscript[x, 1])≥(Subscript[x, 3])&&(Subscript[x, 2])≥(Subscript[x, 4]))}}]; (*missile x=(Subscript[x, 1])*)
(Subscript[f, 2]):=Piecewise[{{Abs[(u/(Sqrt[((((((Subscript[x, 3])-(Subscript[x, 1]))/((Subscript[x, 4])-(Subscript[x, 2])))))^2)+1]))],((Subscript[x, 1])≤(Subscript[x, 3])&&(Subscript[x, 2])≤ (Subscript[x, 4]))||((Subscript[x, 1])≥(Subscript[x, 3])&&(Subscript[x, 2])≤(Subscript[x, 4]))},{-Abs[(u/(Sqrt[((((((Subscript[x, 3])-(Subscript[x, 1]))/((Subscript[x, 4])-(Subscript[x, 2])))))^2)+1]))],((Subscript[x, 1])≤(Subscript[x, 3])&&(Subscript[x, 2])≥(Subscript[x, 4]))||((Subscript[x, 1])≥(Subscript[x, 3])&&(Subscript[x, 2])≥(Subscript[x, 4]))}}]; (*missile y=(Subscript[x, 2])*)
(Subscript[f, 3])=v;(*plane x=(Subscript[x, 3])*)
(Subscript[f, 4])=Cos[t];(*plane y=(Subscript[x, 4])*)
h=0.01;
num=3500;
neq=4;
τ=0.;
(Subscript[w, 1])=0.;
(Subscript[w, 2])=0.;
(Subscript[w, 3])=0.;
(Subscript[w, 4])=height;
data={};
datapoint={τ};
Do[datapoint=Append[datapoint,(Subscript[w, i])],{i,1,neq}];
data=Append[data,datapoint];
Do[subs={t->τ};
Do[subs=Append[subs,(Subscript[x, i])->(Subscript[w, i])],{i,1,neq}];Do[(Subscript[k1, i])=h (Subscript[f, i])/.subs,{i,1,neq}];
subs={t->τ+(h/2)};
Do[subs=Append[subs,(Subscript[x, i])->(Subscript[w, i])+((Subscript[k1, i])/2)],{i,1,neq}];Do[(Subscript[k2, i])=h (Subscript[f, i])/.subs,{i,1,neq}];
subs={t->τ+(h/2)};
Do[subs=Append[subs,(Subscript[x, i])->(Subscript[w, i])+((Subscript[k2, i])/2)],{i,1,neq}];Do[(Subscript[k3, i])=h (Subscript[f, i])/.subs,{i,1,neq}];
subs={t->τ+h};
Do[subs=Append[subs,(Subscript[x, i])->(Subscript[w, i])+(Subscript[k3, i])],{i,1,neq}];Do[(Subscript[k4, i])=h (Subscript[f, i])/.subs,{i,1,neq}];Do[(Subscript[w, i])=(Subscript[w, i])+(((Subscript[k1, i])+2 (Subscript[k2, i])+2 (Subscript[k3, i])+(Subscript[k4, i]))/6.),{i,1,neq}];
τ=τ+h;
datapoint={τ};
Do[datapoint=Append[datapoint,(Subscript[w, i])],{i,1,neq}];data=Append[data,datapoint];
,{i,1,num}]

missile=Table[{data[[i,2]],data[[i,3]]},{i,1,Length[data]}];
plane=Table[{data[[i,4]],data[[i,5]]},{i,1,Length[data]}];

sketch[i_]:=Graphics[{{Blue,Disk[datam[[i]],0.05]},{Red,Disk[datap[[i]],0.05]}}]

sketch[i_]:=Graphics[{{Inset[planeimage,plane[[i]]]},{Inset[missileimage,missile[[i]]]}}]
sketch2= ListPlot[{missile,plane},Frame->True,Joined->True,FrameLabel->{"x=(Subscript[x, 1])","y=(Subscript[x, 2])"},PlotStyle->{{Blue,Thick},{Red,Thick}},PlotRange->All];

Manipulate[Show[{{sketch[i],sketch2}},PlotRange->{{-10,h*num},{-0.1,12}},AspectRatio->1/2,Axes->True],{i,1,num,1}]

Coupled System: Evasive maneouvers when missile gets close

Clear[t,x,y,z,τ,f]

height=10.0;
u=1;
v=0.7;

SeedRandom[2];
(Subscript[f, 1]):=Piecewise[{{Abs[((((Subscript[x, 3])-(Subscript[x, 1])) u)/(((Subscript[x, 4])-(Subscript[x, 2])) (Sqrt[((((((Subscript[x, 3])-(Subscript[x, 1]))/((Subscript[x, 4])-(Subscript[x, 2])))))^2)+1])))],((Subscript[x, 1])≤(Subscript[x, 3])&&(Subscript[x, 2])≤ (Subscript[x, 4]))||((Subscript[x, 1])≤(Subscript[x, 3])&&(Subscript[x, 2])≥(Subscript[x, 4]))},{-Abs[((((Subscript[x, 3])-(Subscript[x, 1])) u)/(((Subscript[x, 4])-(Subscript[x, 2])) (Sqrt[((((((Subscript[x, 3])-(Subscript[x, 1]))/((Subscript[x, 4])-(Subscript[x, 2])))))^2)+1])))],((Subscript[x, 1])≥(Subscript[x, 3])&&(Subscript[x, 2])≤ (Subscript[x, 4]))||((Subscript[x, 1])≥(Subscript[x, 3])&&(Subscript[x, 2])≥(Subscript[x, 4]))}}]; (*missile x=(Subscript[x, 1])*)
(Subscript[f, 2]):=Piecewise[{{Abs[(u/(Sqrt[((((((Subscript[x, 3])-(Subscript[x, 1]))/((Subscript[x, 4])-(Subscript[x, 2])))))^2)+1]))],((Subscript[x, 1])≤(Subscript[x, 3])&&(Subscript[x, 2])≤ (Subscript[x, 4]))||((Subscript[x, 1])≥(Subscript[x, 3])&&(Subscript[x, 2])≤(Subscript[x, 4]))},{-Abs[(u/(Sqrt[((((((Subscript[x, 3])-(Subscript[x, 1]))/((Subscript[x, 4])-(Subscript[x, 2])))))^2)+1]))],((Subscript[x, 1])≤(Subscript[x, 3])&&(Subscript[x, 2])≥(Subscript[x, 4]))||((Subscript[x, 1])≥(Subscript[x, 3])&&(Subscript[x, 2])≥(Subscript[x, 4]))}}]; (*missile y=(Subscript[x, 2])*)
close=3;
(Subscript[f, 3]):=Piecewise[{{v,(Sqrt[((((Subscript[x, 1])-(Subscript[x, 3])))^2)+((((Subscript[x, 2])-(Subscript[x, 4])))^2)])>close},{v+0.2,(Sqrt[((((Subscript[x, 1])-(Subscript[x, 3])))^2)+((((Subscript[x, 2])-(Subscript[x, 4])))^2)])≤close}}] ;(*plane x=(Subscript[x, 3])*)
(Subscript[f, 4]):=Piecewise[{{0,(Sqrt[((((Subscript[x, 1])-(Subscript[x, 3])))^2)+((((Subscript[x, 2])-(Subscript[x, 4])))^2)])>close},{2t*BesselJ[0,t],(Sqrt[((((Subscript[x, 1])-(Subscript[x, 3])))^2)+((((Subscript[x, 2])-(Subscript[x, 4])))^2)])≤close}}] ;(*plane y=(Subscript[x, 4])*)
h=0.01;
num=3500;
neq=4;
τ=0.;
(Subscript[w, 1])=0.;
(Subscript[w, 2])=0.;
(Subscript[w, 3])=-5.;
(Subscript[w, 4])=height;
data={};
datapoint={τ};
Do[datapoint=Append[datapoint,(Subscript[w, i])],{i,1,neq}];
data=Append[data,datapoint];
Do[subs={t->τ};
Do[subs=Append[subs,(Subscript[x, i])->(Subscript[w, i])],{i,1,neq}];Do[(Subscript[k1, i])=h (Subscript[f, i])/.subs,{i,1,neq}];
subs={t->τ+(h/2)};
Do[subs=Append[subs,(Subscript[x, i])->(Subscript[w, i])+((Subscript[k1, i])/2)],{i,1,neq}];Do[(Subscript[k2, i])=h (Subscript[f, i])/.subs,{i,1,neq}];
subs={t->τ+(h/2)};
Do[subs=Append[subs,(Subscript[x, i])->(Subscript[w, i])+((Subscript[k2, i])/2)],{i,1,neq}];Do[(Subscript[k3, i])=h (Subscript[f, i])/.subs,{i,1,neq}];
subs={t->τ+h};
Do[subs=Append[subs,(Subscript[x, i])->(Subscript[w, i])+(Subscript[k3, i])],{i,1,neq}];Do[(Subscript[k4, i])=h (Subscript[f, i])/.subs,{i,1,neq}];Do[(Subscript[w, i])=(Subscript[w, i])+(((Subscript[k1, i])+2 (Subscript[k2, i])+2 (Subscript[k3, i])+(Subscript[k4, i]))/6.),{i,1,neq}];
τ=τ+h;
datapoint={τ};
Do[datapoint=Append[datapoint,(Subscript[w, i])],{i,1,neq}];data=Append[data,datapoint];
,{i,1,num}]

missile=Table[{data[[i,2]],data[[i,3]]},{i,1,Length[data]}];
plane=Table[{data[[i,4]],data[[i,5]]},{i,1,Length[data]}];

sketch[i_]:=Graphics[{{Blue,Disk[datam[[i]],0.05]},{Red,Disk[datap[[i]],0.05]}}]

sketch[i_]:=Graphics[{{Inset[planeimage,plane[[i]]]},{Inset[missileimage,missile[[i]]]}}]
sketch2= ListPlot[{missile,plane},Frame->True,Joined->True,FrameLabel->{"x=(Subscript[x, 1])","y=(Subscript[x, 2])"},PlotStyle->{{Blue,Thick},{Red,Thick}},PlotRange->All];

a=Min[Table[{data[[i,2]],data[[i,4]]},{i,1,Length[data]}]];
b=Max[Table[{data[[i,2]],data[[i,4]]},{i,1,Length[data]}]];
c=Min[Table[{data[[i,3]],data[[i,5]]},{i,1,Length[data]}]];
d=Max[Table[{data[[i,3]],data[[i,5]]},{i,1,Length[data]}]];Manipulate[Show[{{sketch[i],sketch2}},PlotRange->{{a,b},{c,d}},AspectRatio->1/2,Axes->True],{i,1,num,1}]

Coupled System: Evasive maneouvers when missile gets close

Clear[t,x,y,z,τ,f]

height=10.0;
u=1;
v=0.7;

SeedRandom[2];
(Subscript[f, 1]):=Piecewise[{{Abs[((((Subscript[x, 3])-(Subscript[x, 1])) u)/(((Subscript[x, 4])-(Subscript[x, 2])) (Sqrt[((((((Subscript[x, 3])-(Subscript[x, 1]))/((Subscript[x, 4])-(Subscript[x, 2])))))^2)+1])))],((Subscript[x, 1])≤(Subscript[x, 3])&&(Subscript[x, 2])≤ (Subscript[x, 4]))||((Subscript[x, 1])≤(Subscript[x, 3])&&(Subscript[x, 2])≥(Subscript[x, 4]))},{-Abs[((((Subscript[x, 3])-(Subscript[x, 1])) u)/(((Subscript[x, 4])-(Subscript[x, 2])) (Sqrt[((((((Subscript[x, 3])-(Subscript[x, 1]))/((Subscript[x, 4])-(Subscript[x, 2])))))^2)+1])))],((Subscript[x, 1])≥(Subscript[x, 3])&&(Subscript[x, 2])≤ (Subscript[x, 4]))||((Subscript[x, 1])≥(Subscript[x, 3])&&(Subscript[x, 2])≥(Subscript[x, 4]))}}]; (*missile x=(Subscript[x, 1])*)
(Subscript[f, 2]):=Piecewise[{{Abs[(u/(Sqrt[((((((Subscript[x, 3])-(Subscript[x, 1]))/((Subscript[x, 4])-(Subscript[x, 2])))))^2)+1]))],((Subscript[x, 1])≤(Subscript[x, 3])&&(Subscript[x, 2])≤ (Subscript[x, 4]))||((Subscript[x, 1])≥(Subscript[x, 3])&&(Subscript[x, 2])≤(Subscript[x, 4]))},{-Abs[(u/(Sqrt[((((((Subscript[x, 3])-(Subscript[x, 1]))/((Subscript[x, 4])-(Subscript[x, 2])))))^2)+1]))],((Subscript[x, 1])≤(Subscript[x, 3])&&(Subscript[x, 2])≥(Subscript[x, 4]))||((Subscript[x, 1])≥(Subscript[x, 3])&&(Subscript[x, 2])≥(Subscript[x, 4]))}}]; (*missile y=(Subscript[x, 2])*)
close=5;
(Subscript[f, 3]):=Piecewise[{{-height*Sin[t],(Sqrt[((((Subscript[x, 1])-(Subscript[x, 3])))^2)+((((Subscript[x, 2])-(Subscript[x, 4])))^2)])>close},{v+0.2,(Sqrt[((((Subscript[x, 1])-(Subscript[x, 3])))^2)+((((Subscript[x, 2])-(Subscript[x, 4])))^2)])≤close}}] ;(*plane x=(Subscript[x, 3])*)
(Subscript[f, 4]):=Piecewise[{{height*Cos[t],(Sqrt[((((Subscript[x, 1])-(Subscript[x, 3])))^2)+((((Subscript[x, 2])-(Subscript[x, 4])))^2)])>close},{2t*BesselJ[0,t],(Sqrt[((((Subscript[x, 1])-(Subscript[x, 3])))^2)+((((Subscript[x, 2])-(Subscript[x, 4])))^2)])≤close}}] ;(*plane y=(Subscript[x, 4])*)
h=0.01;
num=5500;
neq=4;
τ=0.;
(Subscript[w, 1])=0.;
(Subscript[w, 2])=0.;
(Subscript[w, 3])=0.;
(Subscript[w, 4])=height;
data={};
datapoint={τ};
Do[datapoint=Append[datapoint,(Subscript[w, i])],{i,1,neq}];
data=Append[data,datapoint];
Do[subs={t->τ};
Do[subs=Append[subs,(Subscript[x, i])->(Subscript[w, i])],{i,1,neq}];Do[(Subscript[k1, i])=h (Subscript[f, i])/.subs,{i,1,neq}];
subs={t->τ+(h/2)};
Do[subs=Append[subs,(Subscript[x, i])->(Subscript[w, i])+((Subscript[k1, i])/2)],{i,1,neq}];Do[(Subscript[k2, i])=h (Subscript[f, i])/.subs,{i,1,neq}];
subs={t->τ+(h/2)};
Do[subs=Append[subs,(Subscript[x, i])->(Subscript[w, i])+((Subscript[k2, i])/2)],{i,1,neq}];Do[(Subscript[k3, i])=h (Subscript[f, i])/.subs,{i,1,neq}];
subs={t->τ+h};
Do[subs=Append[subs,(Subscript[x, i])->(Subscript[w, i])+(Subscript[k3, i])],{i,1,neq}];Do[(Subscript[k4, i])=h (Subscript[f, i])/.subs,{i,1,neq}];Do[(Subscript[w, i])=(Subscript[w, i])+(((Subscript[k1, i])+2 (Subscript[k2, i])+2 (Subscript[k3, i])+(Subscript[k4, i]))/6.),{i,1,neq}];
τ=τ+h;
datapoint={τ};
Do[datapoint=Append[datapoint,(Subscript[w, i])],{i,1,neq}];data=Append[data,datapoint];
,{i,1,num}]

missile=Table[{data[[i,2]],data[[i,3]]},{i,1,Length[data]}];
plane=Table[{data[[i,4]],data[[i,5]]},{i,1,Length[data]}];

sketch[i_]:=Graphics[{{Blue,Disk[datam[[i]],0.05]},{Red,Disk[datap[[i]],0.05]}}]

sketch[i_]:=Graphics[{{Inset[planeimage,plane[[i]]]},{Inset[missileimage,missile[[i]]]}}]
sketch2= ListPlot[{missile,plane},Frame->True,Joined->True,FrameLabel->{"x=(Subscript[x, 1])","y=(Subscript[x, 2])"},PlotStyle->{{Blue,Thick},{Red,Thick}},PlotRange->All];

a=Min[Table[{data[[i,2]],data[[i,4]]},{i,1,Length[data]}]];
b=Max[Table[{data[[i,2]],data[[i,4]]},{i,1,Length[data]}]];
c=Min[Table[{data[[i,3]],data[[i,5]]},{i,1,Length[data]}]];
d=Max[Table[{data[[i,3]],data[[i,5]]},{i,1,Length[data]}]];Manipulate[Show[{{sketch[i],sketch2}},PlotRange->{{a,b},{c,d}},AspectRatio->1/2,Axes->True],{i,1,num,1}]

Stochastic Evasion: Random Events and missile runs out of fuel

Animation

Clear[t,x,y,z,τ,f]

height=10.0;
u=1;
v=0.7;

SeedRandom[2];
fuelto=20;
(Subscript[f, 1]):=Piecewise[{{Piecewise[{{Abs[((((Subscript[x, 3])-(Subscript[x, 1])) u)/(((Subscript[x, 4])-(Subscript[x, 2])) (Sqrt[((((((Subscript[x, 3])-(Subscript[x, 1]))/((Subscript[x, 4])-(Subscript[x, 2])))))^2)+1])))],((Subscript[x, 1])≤(Subscript[x, 3])&&(Subscript[x, 2])≤ (Subscript[x, 4]))||((Subscript[x, 1])≤(Subscript[x, 3])&&(Subscript[x, 2])≥(Subscript[x, 4]))},{-Abs[((((Subscript[x, 3])-(Subscript[x, 1])) u)/(((Subscript[x, 4])-(Subscript[x, 2])) (Sqrt[((((((Subscript[x, 3])-(Subscript[x, 1]))/((Subscript[x, 4])-(Subscript[x, 2])))))^2)+1])))],((Subscript[x, 1])≥(Subscript[x, 3])&&(Subscript[x, 2])≤ (Subscript[x, 4]))||((Subscript[x, 1])≥(Subscript[x, 3])&&(Subscript[x, 2])≥(Subscript[x, 4]))}}],t<fuelto},{0,t≥fuelto}}]; (*missile x=(Subscript[x, 1])*)
(Subscript[f, 2]):=Piecewise[{{Piecewise[{{Abs[(u/(Sqrt[((((((Subscript[x, 3])-(Subscript[x, 1]))/((Subscript[x, 4])-(Subscript[x, 2])))))^2)+1]))],((Subscript[x, 1])≤(Subscript[x, 3])&&(Subscript[x, 2])≤ (Subscript[x, 4]))||((Subscript[x, 1])≥(Subscript[x, 3])&&(Subscript[x, 2])≤(Subscript[x, 4]))},{-Abs[(u/(Sqrt[((((((Subscript[x, 3])-(Subscript[x, 1]))/((Subscript[x, 4])-(Subscript[x, 2])))))^2)+1]))],((Subscript[x, 1])≤(Subscript[x, 3])&&(Subscript[x, 2])≥(Subscript[x, 4]))||((Subscript[x, 1])≥(Subscript[x, 3])&&(Subscript[x, 2])≥(Subscript[x, 4]))}}],t<fuelto},{0,t≥fuelto}}];  (*missile y=(Subscript[x, 2])*)
SeedRandom[2];
walk:={RandomInteger[{1,4}] ,RandomInteger[{-4,4}] }
planemove:={hold=walk,If[Norm[hold]==0,{0,0},6hold/Norm[hold]]}  
close=3;
(Subscript[f, 3]):=Piecewise[{{v,(Sqrt[((((Subscript[x, 1])-(Subscript[x, 3])))^2)+((((Subscript[x, 2])-(Subscript[x, 4])))^2)])>close},{(v)*planemove[[2,1]] ,(Sqrt[((((Subscript[x, 1])-(Subscript[x, 3])))^2)+((((Subscript[x, 2])-(Subscript[x, 4])))^2)])≤close}}] ;(*plane x=(Subscript[x, 3])*)
(Subscript[f, 4]):=Piecewise[{{0,(Sqrt[((((Subscript[x, 1])-(Subscript[x, 3])))^2)+((((Subscript[x, 2])-(Subscript[x, 4])))^2)])>close},{2t*BesselJ[0,t]*planemove[[2,2]],(Sqrt[((((Subscript[x, 1])-(Subscript[x, 3])))^2)+((((Subscript[x, 2])-(Subscript[x, 4])))^2)])≤close}}] ;(*plane y=(Subscript[x, 4])*)
h=0.01;
num=3500;
neq=4;
τ=0.;
(Subscript[w, 1])=0.;
(Subscript[w, 2])=0.;
(Subscript[w, 3])=-8.;
(Subscript[w, 4])=height;
data={};
datapoint={τ};
Do[datapoint=Append[datapoint,(Subscript[w, i])],{i,1,neq}];
data=Append[data,datapoint];
Do[subs={t->τ};
Do[subs=Append[subs,(Subscript[x, i])->(Subscript[w, i])],{i,1,neq}];Do[(Subscript[k1, i])=h (Subscript[f, i])/.subs,{i,1,neq}];
subs={t->τ+(h/2)};
Do[subs=Append[subs,(Subscript[x, i])->(Subscript[w, i])+((Subscript[k1, i])/2)],{i,1,neq}];Do[(Subscript[k2, i])=h (Subscript[f, i])/.subs,{i,1,neq}];
subs={t->τ+(h/2)};
Do[subs=Append[subs,(Subscript[x, i])->(Subscript[w, i])+((Subscript[k2, i])/2)],{i,1,neq}];Do[(Subscript[k3, i])=h (Subscript[f, i])/.subs,{i,1,neq}];
subs={t->τ+h};
Do[subs=Append[subs,(Subscript[x, i])->(Subscript[w, i])+(Subscript[k3, i])],{i,1,neq}];Do[(Subscript[k4, i])=h (Subscript[f, i])/.subs,{i,1,neq}];Do[(Subscript[w, i])=(Subscript[w, i])+(((Subscript[k1, i])+2 (Subscript[k2, i])+2 (Subscript[k3, i])+(Subscript[k4, i]))/6.),{i,1,neq}];
τ=τ+h;
datapoint={τ};
Do[datapoint=Append[datapoint,(Subscript[w, i])],{i,1,neq}];data=Append[data,datapoint];
,{i,1,num}]

missile=Table[{data[[i,2]],data[[i,3]]},{i,1,Length[data]}];
plane=Table[{data[[i,4]],data[[i,5]]},{i,1,Length[data]}];

sketch[i_]:=Graphics[{{Blue,Disk[datam[[i]],0.05]},{Red,Disk[datap[[i]],0.05]}}]

sketch[i_]:=Graphics[{{Inset[planeimage,plane[[i]]]},{Inset[missileimage,missile[[i]]]}}]
sketch2= ListPlot[{missile,plane},Frame->True,Joined->True,FrameLabel->{"x=(Subscript[x, 1])","y=(Subscript[x, 2])"},PlotStyle->{{Blue,Thick},{Red,Thick}},PlotRange->All];

a=Min[Table[{data[[i,2]],data[[i,4]]},{i,1,Length[data]}]];
b=Max[Table[{data[[i,2]],data[[i,4]]},{i,1,Length[data]}]];
c=Min[Table[{data[[i,3]],data[[i,5]]},{i,1,Length[data]}]];
d=Max[Table[{data[[i,3]],data[[i,5]]},{i,1,Length[data]}]];Manipulate[Show[{{sketch[i],sketch2}},PlotRange->{{a,b},{c,d}},AspectRatio->1/2,Axes->True],{i,1,num,1}]