midpoint_fixed


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

Unless the right hand side of the ODE is linear in the dependent variable, each midpoint 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().

Licensing:

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

Languages:

midpoint_fixed is available in a MATLAB version and an Octave version and a Python version.

Related Data and codes:

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

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

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

midpoint_fixed_test

rk12, an Octave code which implements Runge-Kutta ODE solvers of orders 1 and 2.

rk23, an Octave code which implements Runge-Kutta ODE solvers of orders 2 and 3.

rk34, an Octave code which implements Runge-Kutta ODE solvers of orders 3 and 4.

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

rk45, an Octave code which implements Runge-Kutta ODE solvers of orders 4 and 5.

rkf45, an Octave code which implements the Runge-Kutta-Fehlberg ODE solver.

trapezoid, an Octave code which solves one or more ordinary differential equations (ODE) using the (implicit) trapezoid method.

Reference:

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

Source Code:


Last revised on 07 April 2021.