Boundary-value problems are more difficult to solve than initial-value
problems. Simply put, you don't have all the information you need to
start at one side of the range ( x = a ), then compute the
trajectory using a standard integrator (Midpoint or Runge-Kutta-4, for
example) until you reach the other side ( x = b ). Some of the
necessary initial conditions are unknown.
One popular and easily understood approach to this problem is known as shooting. In essence, you fire a series of trial ``shots'' (that is, you perform a series of initial-value calculations) across the range [ a, b ], guessing any initial conditions (at x = a ) that are not specified, and refining your guesses until the boundary conditions at x = b are satisfied.
The method is easiest to describe in the two-dimensional case N =
2, with the component specified at each end of the range.
For definiteness, let's imagine that we are really solving a
second-order system, so
is the derivative of
. The
procedure is as follows. For definiteness, we will denote the true
solution of the boundary-value problem by y, and will use Y to denote numerical solutions.
Solving the boundary-value problem then amounts to solving the equation g(z) = 0.