midpoint_adaptive

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.

Licensing:

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

Languages:

midpoint_adaptive is available in a MATLAB version and a Python version.

Related Data and codes:

backward_euler, a Python code which solves one or more ordinary differential equations (ODE) using the (implicit) backward Euler method, using fsolve() to solve the implicit equation, and using a fixed time step.

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, and using a fixed time step.

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

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), and using a fixed time step.

midpoint, 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 a fixed time step.

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, and using a fixed time step.

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, and using a fixed time step.

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

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, and using a fixed time step.

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, and using a fixed time step.

Reference:

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

Source Code:


Last revised on 26 May 2022.