rkf45


rkf45, a MATLAB code which implements an RKF45 ODE solver, by Watt and Shampine.

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.

Licensing:

The computer code and data files described and made available on this web page are distributed under the MIT license

Languages:

rkf45 is available in a C version and a C++ version and a FORTRAN90 version and a MATLAB version and an Octave version and a Python version.

Related Data and Programs:

backward_euler, a MATLAB code which solves one or more ordinary differential equations (ODE) using the backward Euler method.

cauchy_method, a MATLAB code which solves one or more ordinary differential equations (ODE) using the Cauchy method.

euler, a MATLAB code which solves one or more ordinary differential equations (ODE) using the forward Euler method.

leapfrog, a MATLAB code which uses the leapfrog method to solve a second order ordinary differential equation (ODE) of the form y''=f(t,y).

midpoint, a MATLAB code which solves one or more ordinary differential equations (ODE) using the (implicit) midpoint method.

midpoint_explicit, a MATLAB code which solves one or more ordinary differential equations (ODE) using the (explicit) midpoint method, also called the modified Euler method.

midpoint_fixed, a MATLAB code which solves one or more ordinary differential equations (ODE) using the (implicit) midpoint method, using a simple fixed-point iteration to solve the implicit equation.

rk12, a MATLAB code which implements Runge-Kutta solvers of orders 1 and 2 for a system of ordinary differential equations (ODE).

rk23, a MATLAB code which implements Runge-Kutta ODE solvers of orders 2 and 3.

rk34, a MATLAB code which implements Runge-Kutta ODE solvers of orders 3 and 4.

rk4, a MATLAB code which applies the fourth order Runge-Kutta (RK) algorithm to estimate the solution of an ordinary differential equation (ODE).

rk45, a MATLAB code which implements Runge-Kutta ODE solvers of orders 4 and 5.

rkf45_test

trapezoidal, a MATLAB code which solves one or more ordinary differential equations (ODE) using the (implicit) trapezoidal method.

trapezoidal_explicit, a MATLAB code which solves one or more ordinary differential equations (ODE) using the (explicit) trapezoidal method.

trapezoidal_fixed, a MATLAB code which solves one or more ordinary differential equations (ODE) using the (implicit) trapezoidal method, using the fixed point method to handle the implicit system.

Reference:

  1. Erwin Fehlberg,
    Low-order Classical Runge-Kutta Formulas with Stepsize Control,
    NASA Technical Report R-315, 1969.
  2. 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.

Source Code:


Last revised on 12 October 2020.