**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.

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

**rk12** is available in
a MATLAB version and
an Octave version and
a Python version.

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.

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_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 implicit equation.

rk4, a Python code which implements a fourth-order Runge-Kutta-Fehlberg solver for a system of ordinary differential equations (ODE).

rkf45, a Python code which implements the Runge-Kutta-Fehlberg solvers of orders 4 and 5 for the adaptive solution of a system of ordinary differential equations (ODE).

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 the fixed point method to handle the implicit system.

- rk12_test.py the source code.
- rk12_test.sh runs all the tests.
- rk12_test.txt the output file.

- predator_rk1_time.png a solution plot produced by predator_rk1().
- predator_rk1_phase.png a phase plot produced by predator_rk1().

- predator_rk2_time.png a solution plot produced by predator_rk2().
- predator_rk2_phase.png a phase plot produced by predator_rk2().

- error_rk12_time.png a time plot of error produced by predator_rk12().
- error_rk12_phase.png a phase plot of error produced by predator_rk12().