rk2


rk2, a Python code which solves one or more ordinary differential equations (ODE) using a Runge-Kutta order 2 explicit method, also known as Heun's method, or the modified Euler method, or the explicit midpoint method.

Licensing:

The information on this web page is distributed under the MIT license.

Languages:

rk2 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 Python code which solves one or more ordinary differential equations (ODE) using the backward Euler method.

backward_euler_fixed, a Python code which solves one or more ordinary differential equations (ODE) using the implicit backward Euler method, using a fixed point iteration for the implicit equation.

bdf2, a Python code which solves one or more ordinary differential equations (ODE) using BDF2, the (implicit) backward difference formula of order 2, using fsolve() to solve the implicit equation.

cauchy_method, a Python code which solves one or more ordinary differential equations (ODE) using the Cauchy 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_adaptive, a Python code which solves one or more ordinary differential equations (ODE) using the (implicit) midpoint method, relying on fsolve() to solve the implicit equation, and using an adaptive timestep.

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.

rk12, a Python code which solves an ordinary differential equation (ODE) using a Runge-Kutta (RK) method of order 2, estimating the local error with a Runge-Kutta method of order 1.

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

rkf45, a Python code which implements the Runge-Kutta-Fehlberg (RKF) solver for the solution of a system of ordinary differential equations (ODE).

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

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

trapezoidal_explicit, a Python code which solves one or more ordinary differential equations (ODE) using the explicit 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.

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

Reference:

  1. Catalin Trenchea, John Burkardt,
    Refactorization of the midpoint rule,
    Applied Mathematics Letters,
    Volume 107, September 2020.

Source Code:


Last revised on 06 April 2021.