5.2 Higher-order Methods for ODEs 215
0 0 0 0 0
1/2 1/2 0 0 0
1/2 0 1/2 0 0
1 0 0 1 0
1/6 1/3 1/3 1/6
This 4-stage method is often called ‘the Runge-Kutta method’ but, as we
have seen there are many other Runge-Kutta methods. In fact, there are
several popular explicit fourth-order Runge-Kutta methods.
The development of explicit Runge-Kutta methods of order p ≥ 5 is very
complex. One of the difficulties is that the number of order conditions that
must be solved becomes very large. For example, a method of order p = 5
has 17 order conditions, a method of order p = 6 has 37 order conditions,
and a method of order p = 7 has 85 order conditions. Moreover, to realize a
method of order p = 5 requires at least 6 stages, a method of order p = 6
requires at least 7 stages, and a method of order 7 requires at least 9 stages.
The interested reader should consult Butcher (1987), and Hairer, Norsett and
Wanner (1993) for additional details.
Error estimation and step size adaptation
An important consideration for the efficient integration of differential equa-
tions is the ability of adjust the step size so that the local error satisfies a
desired tolerance at each step. To see how such schemes are possible consider
the numerical integration of the scalar ODE ˙y = f (y(t), t), with initial condi-
tion y(t
i
) = y
i
. Here we will use two Runge-Kutta methods, the first method
has order p, and the second method has order p−1. From the analysis in
the previous sections we know that at the k-th step the p-th order method
produces a local error
y(t
(k+1)
) − y
(k+1)
= Ch
p+1
+ O(h
p+2
), (a)
where y
(k+1)
is the result of the Runge-Kutta formula, y(t
(k+1)
) is the exact
solution to the ODE, and C is a constant that depends on the Runge-Kutta
formula and the function f(y(t), t). On the other hand, the method of order
p−1 produces a local error
y(t
(k+1)
) − ˆy
(k+1)
=
ˆ
Ch
p
+ O(h
p+1
), (b)
where ˆy
(k+1)
is the result of the (p−1)-th order Runge-Kutta formula, and
ˆ
C is a constant that depends on the Runge-Kutta formula and the function
f(y(t), t). We assume that both methods have the same initial condition for
the k-th step, i.e., y
(k)
= ˆy
(k)
= y(t
(k)
).
From (a) we see that y(t
(k+1)
) = y
(k+1)
+ Ch
p+1
+ O(h
p+2
). Using this
result in (b) we obtain a computable estimate of the local error, i.e.,