![]() |
![]() |
![]() |
(33) |
![]() |
![]() |
![]() |
(34) |
![]() |
(35) |
![]() |
Let us compare the above solution with that obtained numerically using
a fourth-order Runge-Kutta method. Figure 7 shows the integration error
associated with such a method (calculated by integrating the above system, with ,
from
to
, and then taking the difference between the numerical and analytic
solutions) with a fixed step-length of
, plotted against the independent variable,
.
It can be seen that, although the error starts off small, it rises rapidly as the
variation scale-length of the solution decreases (i.e., as
increases), and
quickly becomes unacceptably large. Of course, we could reduce the error by simply reducing
the step-length,
. However, this is a very inefficient solution. The step-length
only needs to be reduced at large
. There is no need to reduce it, at all, at small
.
Clearly, the ideal solution to this problem would be an integration method in which
the step-length is varied so as to maintain a relatively constant truncation error
per step. Such an adaptive integration method would take large steps when variation
scale-length of the solution was large, and vice versa.
Let us investigate how we could convert our fixed step-length, fourth-order Runge-Kutta
method into a corresponding adaptive method. First of all, we need an estimate of the
truncation error at each step. Suppose that the current step-length is . We can
estimate the truncation error,
, associated with
the current step by taking the difference between the solutions obtained by stepping
by
twice and by
once (starting from the same point,
in both cases). Let
be the desired truncation
error per step. How do we adjust
so as to ensure that the truncation error
associated with the next step is closer to this value? Observe, from Eq. (29),
that the truncation error per step in a fourth-order scheme scales like
. It
follows, therefore, that our step-length adjustment formula should take the form16
![]() |
(36) |
There are a number of caveats to the above discussion. In a system of coupled
o.d.e.s, the overall truncation error per step,
, should, of course, be some appropriately
weighted average of the errors associated with each equation. There is also a question
of whether
should be an absolute error or a relative error. The
relative error associated with the
th equation is simply the absolute error
divided by
, where
is the current value of the
th dependent variable.
An absolute error estimate is appropriate to a system of equations in which the amplitudes
of the various dependent variables remain bounded. A relative error estimate
is appropriate to a system in which the amplitudes of the dependent variables blow-up at some point, but
the variables always
remain the same sign. Finally, a mixed error estimate--usually the minimum of the
absolute and relative errors--is appropriate to a system in which the amplitudes of the dependent variables blow-up at some point, but
the signs of the variables oscillate. It is usually a good idea to place some
limits on the allowed variation of the step-length from step to step: e.g., by preventing
the step-length from increasing or decreasing by more than some factor
per step. This
prevents
from oscillating unduly about its optimum value. Obviously, if
becomes
absurdly small then the integration method has failed, and should abort with an
appropriate error message. Finally, a limit should be placed on how
large
can become--unfortunately, adaptive methods have a tendency to become a little
over optimistic when integration is easy.
![]() |
Figure 8 shows the integration errors
associated with a fixed step-length, fourth-order Runge-Kutta
method and a corresponding adaptive method--constructed
along the lines discussed above--as functions of
the independent variable, . The errors are
calculated by integrating the current system, with
,
from
to
, and then taking the difference between the numerical and analytic
solutions. The fixed step-length associated with the former method is
. The desired
truncation error per step associated with the latter is
. It
can be seen that the performance of the adaptive method is far
superior to that of the fixed step-length method, since the former method
maintains a relatively constant integration error as the variation scale-length
of the solution decreases (i.e., as
increases). Figure 9 illustrates how this is achieved.
This figure shows the step-length,
, associated with the adaptive method as a function of
.
It can be seen that the adaptive method maintains a relatively constant
truncation error per step by decreasing
as
increases.
![]() |