rk1_implicit


rk1_implicit, a C++ 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.

Each step requires the solution of an implicit nonlinear equation. A corresponding function has been devised, called fsolve_be(), which carries out the iterative solution process.

Licensing:

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

Languages:

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.

Related Data and codes:

rk1_implicit_test

backward_euler, a C++ code which solves one or more ordinary differential equations (ODE) using the (implicit) backward Euler method, using a version of fsolve() for the implicit equation.

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

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

fsolve, a C++ code which solves systems of nonlinear equations, inspired by the fsolve() function in minpack(), with special interfaces fsolve_bdf2(), fsolve_be() and fsolve_tr() for handling systems associated with implicit ODE solvers of type bdf2, backward Euler, midpoint, or trapezoidal.

midpoint, a C++ code which solves one or more ordinary differential equations (ODE) using the (implicit) midpoint method, with a version of fsolve() handling the associated nonlinear equations, and using a fixed time step.

rk1, a C++ 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.

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

trapezoidal, a C++ code which solves one or more ordinary differential equations (ODE) using the (implicit) trapezoidal method, and a version of fsolve() to handle the nonlinear equation.

Reference:

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

Source Code:


Last revised on 13 November 2024.