In numerical analysis, the shooting method is a method for solving a boundary value problem by reducing it to an initial value problem. It involves finding solutions to the initial value problem for different initial conditions until one finds the solution that also satisfies the boundary conditions of the boundary value problem. In layman's terms, one "shoots" out trajectories in different directions from one boundary until one finds the trajectory that "hits" the other boundary condition.
Mathematical description
Suppose one wants to solve the boundary-value problem<math display="block"> y(t) = f(t, y(t), y'(t)), \quad y(t_0) = y_0, \quad y(t_1) = y_1. </math>Let <math> y(t; a) </math> solve the initial-value problem<math display="block"> y(t) = f(t, y(t), y'(t)), \quad y(t_0) = y_0, \quad y'(t_0) = a. </math>If <math> y(t_1; a) = y_1 </math>, then <math> y(t; a) </math> is also a solution of the boundary-value problem.
The shooting method is the process of solving the initial value problem for many different values of <math> a </math> until one finds the solution <math> y(t; a) </math> that satisfies the desired boundary conditions. Typically, one does so numerically. The solution(s) correspond to root(s) of <math display="block"> F(a) = y(t_1; a) - y_1.</math>To systematically vary the shooting parameter <math> a </math> and find the root, one can employ standard root-finding algorithms like the bisection method or Newton's method.
Roots of <math> F </math> and solutions to the boundary value problem are equivalent. If <math> a </math> is a root of <math> F </math>, then <math> y(t; a) </math> is a solution of the boundary value problem. Conversely, if the boundary value problem has a solution <math> y(t) </math>, it is also the unique solution <math> y(t; a) </math> of the initial value problem where <math> a = y'(t_0) </math>, so <math> a </math> is a root of <math> F </math>.
Etymology and intuition
The term "shooting method" has its origin in artillery. An analogy for the shooting method is to
- place a cannon at the position <math>y(t_0) = y_0</math>, then
- vary the angle <math>a = y'(t_0)</math> of the cannon, then
- fire the cannon until it hits the boundary value <math>y(t_1) = y_1</math>.
Between each shot, the direction of the cannon is adjusted based on the previous shot, so every shot hits closer than the previous one. The trajectory that "hits" the desired boundary value is the solution to the boundary value problem — hence the name "shooting method".
Linear shooting method
The boundary value problem is linear if f has the form
<math display="block"> f(t, y(t), y'(t)) = p(t) y'(t) + q(t)y(t) + r(t). </math>
In this case, the solution to the boundary value problem is usually given by:
<math display="block">y(t) = y_{(1)}(t) + \frac{y_{1}-y_{(1)}(t_1)}{y_{(2)}(t_1)} y_{(2)}(t)</math>
where <math>y_{(1)}(t)</math> is the solution to the initial value problem:
<math display="block">y_{(1)}(t) = p(t) y_{(1)}'(t) + q(t) y_{(1)}(t) + r(t),\quad y_{(1)}(t_0) = y_0, \quad y_{(1)}'(t_0) = 0, </math>
and <math>y_{(2)}(t)</math> is the solution to the initial value problem:
<math display="block">y_{(2)}(t) = p(t) y_{(2)}'(t) + q(t) y_{(2)}(t),\quad y_{(2)}(t_0) = 0, \quad y_{(2)}'(t_0) = 1. </math>
See the proof for the precise condition under which this result holds.
Examples
Standard boundary value problem
thumb|400px|Figure 1. Trajectories w(t;s) for s = w<nowiki>'</nowiki>(0) equal to −7, −8, −10, −36, and −40. The point (1,1) is marked with a circle.thumb|400px|Figure 2. The function F(s) = w(1;s) − 1.A boundary value problem is given as follows by Stoer and Bulirsch (Section 7.3.1).
<math display="block"> w(t) = \frac{3}{2} w^2(t), \quad w(0) = 4, \quad w(1) = 1 </math>
The initial value problem
<math display="block"> w(t) = \frac{3}{2} w^2(t), \quad w(0) = 4, \quad w'(0) = s</math>
was solved for s = −1, −2, −3, ..., −100, and F(s) = w(1;s) − 1 plotted in the Figure 2.
Inspecting the plot of F, we see that there are roots near −8 and −36.
Some trajectories of w(t;s) are shown in the Figure 1.
Stoer and Bulirsch
