Suppose one wants to solve the boundary-value problem y ″ ( t ) = f ( t , y ( t ) , y ′ ( t ) ) , y ( t 0 ) = y 0 , y ( t 1 ) = y 1 . {\displaystyle y''(t)=f(t,y(t),y'(t)),\quad y(t_{0})=y_{0},\quad y(t_{1})=y_{1}.} Let y ( t ; a ) {\displaystyle y(t;a)} solve the initial-value problem y ″ ( t ) = f ( t , y ( t ) , y ′ ( t ) ) , y ( t 0 ) = y 0 , y ′ ( t 0 ) = a . {\displaystyle y''(t)=f(t,y(t),y'(t)),\quad y(t_{0})=y_{0},\quad y'(t_{0})=a.} If y ( t 1 ; a ) = y 1 {\displaystyle y(t_{1};a)=y_{1}} , then y ( t ; a ) {\displaystyle y(t;a)} 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 a {\displaystyle a} until one finds the solution y ( t ; a ) {\displaystyle y(t;a)} that satisfies the desired boundary conditions. Typically, one does so numerically. The solution(s) correspond to root(s) of F ( a ) = y ( t 1 ; a ) − y 1 . {\displaystyle F(a)=y(t_{1};a)-y_{1}.} To systematically vary the shooting parameter a {\displaystyle a} and find the root, one can employ standard root-finding algorithms like the bisection method or Newton's method.
Roots of F {\displaystyle F} and solutions to the boundary value problem are equivalent. If a {\displaystyle a} is a root of F {\displaystyle F} , then y ( t ; a ) {\displaystyle y(t;a)} is a solution of the boundary value problem. Conversely, if the boundary value problem has a solution y ( t ) {\displaystyle y(t)} , it is also the unique solution y ( t ; a ) {\displaystyle y(t;a)} of the initial value problem where a = y ′ ( t 0 ) {\displaystyle a=y'(t_{0})} , so a {\displaystyle a} is a root of F {\displaystyle F} .
The term "shooting method" has its origin in artillery. An analogy for the shooting method is to
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".
The boundary value problem is linear if f has the form f ( t , y ( t ) , y ′ ( t ) ) = p ( t ) y ′ ( t ) + q ( t ) y ( t ) + r ( t ) . {\displaystyle f(t,y(t),y'(t))=p(t)y'(t)+q(t)y(t)+r(t).} In this case, the solution to the boundary value problem is usually given by: y ( t ) = y ( 1 ) ( t ) + y 1 − y ( 1 ) ( t 1 ) y ( 2 ) ( t 1 ) y ( 2 ) ( t ) {\displaystyle y(t)=y_{(1)}(t)+{\frac {y_{1}-y_{(1)}(t_{1})}{y_{(2)}(t_{1})}}y_{(2)}(t)} where y ( 1 ) ( t ) {\displaystyle y_{(1)}(t)} is the solution to the initial value problem: y ( 1 ) ″ ( t ) = p ( t ) y ( 1 ) ′ ( t ) + q ( t ) y ( 1 ) ( t ) + r ( t ) , y ( 1 ) ( t 0 ) = y 0 , y ( 1 ) ′ ( t 0 ) = 0 , {\displaystyle 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,} and y ( 2 ) ( t ) {\displaystyle y_{(2)}(t)} is the solution to the initial value problem: y ( 2 ) ″ ( t ) = p ( t ) y ( 2 ) ′ ( t ) + q ( t ) y ( 2 ) ( t ) , y ( 2 ) ( t 0 ) = 0 , y ( 2 ) ′ ( t 0 ) = 1. {\displaystyle 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.} See the proof for the precise condition under which this result holds.1
A boundary value problem is given as follows by Stoer and Bulirsch2 (Section 7.3.1).
w ″ ( t ) = 3 2 w 2 ( t ) , w ( 0 ) = 4 , w ( 1 ) = 1 {\displaystyle w''(t)={\frac {3}{2}}w^{2}(t),\quad w(0)=4,\quad w(1)=1}
The initial value problem w ″ ( t ) = 3 2 w 2 ( t ) , w ( 0 ) = 4 , w ′ ( 0 ) = s {\displaystyle w''(t)={\frac {3}{2}}w^{2}(t),\quad w(0)=4,\quad w'(0)=s} 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 Bulirsch3 state that there are two solutions, which can be found by algebraic methods.
These correspond to the initial conditions w′(0) = −8 and w′(0) = −35.9 (approximately).
The shooting method can also be used to solve eigenvalue problems. Consider the time-independent Schrödinger equation for the quantum harmonic oscillator − 1 2 ψ n ″ ( x ) + 1 2 x 2 ψ n ( x ) = E n ψ n ( x ) . {\displaystyle -{\frac {1}{2}}\psi _{n}''(x)+{\frac {1}{2}}x^{2}\psi _{n}(x)=E_{n}\psi _{n}(x).} In quantum mechanics, one seeks normalizable wavefunctions ψ n ( x ) {\displaystyle \psi _{n}(x)} and their corresponding energies subject to the boundary conditions ψ n ( x → + ∞ ) = ψ n ( x → − ∞ ) = 0. {\displaystyle \psi _{n}(x\rightarrow +\infty )=\psi _{n}(x\rightarrow -\infty )=0.} The problem can be solved analytically to find the energies E n = n + 1 / 2 {\displaystyle E_{n}=n+1/2} for n = 0 , 1 , 2 , … {\displaystyle n=0,1,2,\dots } , but also serves as an excellent illustration of the shooting method. To apply it, first note some general properties of the Schrödinger equation:
To find the n {\displaystyle n} -th excited state ψ n ( x ) {\displaystyle \psi _{n}(x)} and its energy E n {\displaystyle E_{n}} , the shooting method is then to:
The energy-guessing can be done with the bisection method, and the process can be terminated when the energy difference is sufficiently small. Then one can take any energy in the interval to be the correct energy.
Mathews, John H.; Fink, Kurtis K. (2004). "9.8 Boundary Value Problems". Numerical methods using MATLAB (PDF) (4th ed.). Upper Saddle River, N.J.: Pearson. ISBN 0-13-065248-2. Archived from the original (PDF) on 9 December 2006. 0-13-065248-2 ↩
Stoer, J. and Bulirsch, R. Introduction to Numerical Analysis. New York: Springer-Verlag, 1980. ↩