RKF45
Runge-Kutta-Fehlberg ODE Solver
RKF45 is a library of C++ routines, using single or double
precision, which implement the Watt and Shampine RKF45 ODE solver.
The RKF45 ODE solver is a Runge-Kutta-Fehlberg algorithm for
solving an ordinary differential equation, with automatic error
estimation using rules of order 4 and 5.
Related Data and Programs:
GSL
the Gnu Scientific Library, is a C++ library which
includes routines for solving differential equations.
NMS
is a FORTRAN90 library
which includes the DDRIV package of ODE solvers.
ODE
is a FORTRAN90 library
containing the Shampine and Allen ODE solver.
RKF45 is also available in
a FORTRAN77 version and
a FORTRAN90 version.
TEST_ODE
is a FORTRAN90 library which
contains routines which define some test problems for ODE solvers.
Reference:
-
Erwin Fehlberg,
Low-order Classical Runge-Kutta Formulas with Stepsize Control,
NASA Technical Report R-315, 1969.
-
Lawrence Shampine, Herman Watts, S Davenport,
Solving Non-stiff Ordinary Differential Equations -
The State of the Art,
SIAM Review,
Volume 18, pages 376-411, 1976.
-
The source code for Shampine and Watt's original FORTRAN77
routine is available at
http://www.netlib.org/ode/
the NETLIB ODE web site.
Source Code:
Examples and Tests:
RKF45_PRB includes a number of examples of how to use RKF45.
RKF45_PRB2 includes an example in which the ODE includes parameters
ALPHA, BETA, and GAMMA, which the user wants to set at run time. The example
shows one way in which these values can be shared with the derivative routine.
List of Routines:
-
R4_ABS returns the absolute value of an R4.
-
R4_EPSILON returns the round off unit for floating arithmetic.
-
R4_FEHL takes one Fehlberg fourth-fifth order step.
-
R4_MAX returns the maximum of two real values.
-
R4_MIN returns the minimum of two real values.
-
R4_RKF45 carries out the Runge-Kutta-Fehlberg method.
-
R4_SIGN returns the sign of a real number.
-
R8_ABS returns the absolute value of a double precision number.
-
R8_EPSILON returns the R8 round off unit.
-
R8_FEHL takes one Fehlberg fourth-fifth order step.
-
R8_MAX returns the maximum of two R8s.
-
R8_MIN returns the minimum of two R8s.
-
R8_RKF45 carries out the Runge-Kutta-Fehlberg method.
-
R8_SIGN returns the sign of a real number.
-
TIMESTAMP prints the current YMDHMS date as a time stamp.
You can go up one level to
the C++ source codes.
Last revised on 20 November 2007.