# rk4

rk4, a Python code which implements a fourth-order Runge-Kutta method to solve an ordinary differential equation (ODE).

### Languages:

rk4 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 and an R version.

### Related Data and Programs:

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

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

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

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

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

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

rkf45, a Python code which implements the Runge-Kutta-Fehlberg ODE solver.

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

trapezoidal_fixed, a Python code which solves one or more ordinary differential equations (ODE) using the (implicit) trapezoidal method, using a 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 22 April 2020.