![]()
![]()
for
Runge-Kutta-Fehlberg
Method (RKF45)
One way to guarantee accuracy in the solution
of an I.V.P. is to solve the problem twice using step sizes
h
and
and compare answers at the mesh points corresponding to the larger
step size. But this requires a significant amount of
computation for the smaller step size and must be repeated if it is
determined that the agreement is not good enough. The
Runge-Kutta-Fehlberg method (denoted RKF45) is one way to try to
resolve this problem. It has a procedure to determine if
the proper step size h
is being used. At each step, two different
approximations for the solution are made and compared. If
the two answers are in close agreement, the approximation is
accepted. If the two answers do not agree to a specified accuracy,
the step size is reduced. If the answers agree to more
significant digits than required, the step size is
increased.
Each
Runge-Kutta-Fehlberg step requires the use of the following six
values:
Then an approximation to the solution
of the I.V.P. is made using a Runge-Kutta method of order 4:
![]()
And a better value for the solution is determined using a Runge-Kutta
method of order 5:
The optimal step size sh
can be determined by multiplying the scalar s
times the current step size h.
The scalar s
is
![]()
where
is the specified error control tolerance.
Proof Runge-Kutta-Fehlberg Method Runge-Kutta-Fehlberg Method
Computer Programs Runge-Kutta-Fehlberg Method Runge-Kutta-Fehlberg Method
Mathematica Subroutine
(Runge-Kutta-Fehlberg
Method RFK45) To
compute a numerical approximation for the solution of the initial
value problem
with
over
at a discrete set of points with an error
control
. Start
with the initial point
and
generate the sequence of approximations
. The
step size is automatically adjusted. Thus the number
is determined by the subroutine. At each step the final
answer is computed using the
formula . ![]()
![[Graphics:Images/RungeKuttaFehlbergMod_gr_15.gif]](rungekuttafehlberg/RungeKuttaFehlbergMod/Images/RungeKuttaFehlbergMod_gr_15.gif)
Remark. The formula for adjusting the step size is a popular choice for numerical analysis textbooks.
Remark. Some
textbooks are now promoting the use of the RK order five
formula
as
the accepted value instead of
from
the order four formula. The following subroutine includes
these adjustments.
Mathematica Subroutine
(Runge-Kutta-Fehlberg
Method RFK54) To
compute a numerical approximation for the solution of the initial
value problem
with
over
at a discrete set of points with an error
control
. Start
with the initial point
and
generate the sequence of approximations
. The
step size is automatically adjusted. Thus the number
is determined by the subroutine. At each step the final
answer is computed using the formula
.
![[Graphics:Images/RungeKuttaFehlbergMod_gr_26.gif]](rungekuttafehlberg/RungeKuttaFehlbergMod/Images/RungeKuttaFehlbergMod_gr_26.gif)
Remark. One might question the wisdom of using the RKF54 instead of the RKF45, it is still being debated. In some sense the "guarantee" of accuracy is diminished. The RKF54 is given for you to explore.
Example
1. Solve
with
over
. Use
the Runge Kutta methods.
Solution
1.
Example
2. Solve
with
over
. Use
Mathematica's NDSolve procedure.
Solution
2.
Example
3. Solve
with
over
. Use
Mathematica's DSolve procedure.
Solution
3.
Example
4. Determine the error for the RKF45 solution
that was found in Example 1.
Solution
4.
Example
5. Determine the error for the RKF54 solution
that was found in Example 1.
Solution
5.
Example
6. Solve
with
over
. Use
the Runge Kutta methods.
Solution
6.
Example
7. Given
with
over
. This
D.E. is known to be a Riccati
equation.
The analytic solution is known to be
; compare
it with the solutions that were found in Example 6.
Solution
7.
Example
8. Solve
with
. Use
Mathematica's DSolve procedure.
Solution
8.
Research Experience for Undergraduates
Runge-Kutta-Fehlberg Method Runge-Kutta-Fehlberg Method Internet hyperlinks to web sites and a bibliography of articles.
Download this Mathematica Notebook Runge-Kutta-Fehlberg Method
Return to Numerical Methods - Numerical Analysis
(c) John H. Mathews 2004