rk1_implicit, a Python code which solves one or more ordinary differential equations (ODE) using the Runge-Kutta order 1 implicit method, using fsolve() to solve the implicit equation, and using a fixed time step. rk1_implicit() is commonly called the backward Euler method.
Unless the right hand side of the ODE is linear in the dependent variable, each step requires the solution of an implicit nonlinear equation. Such equations can be approximately solved using methods such as fixed point iteration, or an implicit equation solver like fsolve().
The information on this web page is distributed under the MIT license.
rk1_implicit 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.
backward_euler, a Python code which solves one or more ordinary differential equations (ODE) using the implicit backward Euler method.
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_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.
rk1, a Python code which solves one or more ordinary differential equations (ODE) using an explicit Runge-Kutta method of order 1, usually known as Euler's explicit method.
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).