MRKISS 2025-09-10
A tiny library with zero dependencies that aims to make it easy to use & experiment with explicit Runge-Kutta methods.
Loading...
Searching...
No Matches
mrkiss_erk_kutta_4 Module Reference

Butcher tableau for the classic 4 stage Runge-Kutta method of O(4) More...

Variables

integer, parameter s = 4
 The order of the overall method.
integer, parameter m = 1
 Number of methods.
real(kind=rk), dimension(s, s), parameter a
 The \(\mathbf{a}\) matrix for the Butcher Tableau.
real(kind=rk), dimension(s, m), parameter b
 The \(\mathbf{b}\) matrix for the Butcher Tableau.
real(kind=rk), dimension(s), parameter c
 The \(\mathbf{c}\) matrix for the Butcher Tableau.
integer, dimension(m), parameter p = [4]
 The method orders.
integer, dimension(m), parameter se = [4]
 Number of stages for each method.

Detailed Description

Butcher tableau for the classic 4 stage Runge-Kutta method of O(4)

IMO
Useful for low accuracy applications; however, I find I rarely use it.
Known Aliases
'RK4' (OrdinaryDiffEq.jl), 'RK41' (Butcher), & 'The Runge-Kutta Method'.
Stability Image Links
References:
  • Kutta (1901); Beitrag Zur N"herungsweisen Integration Totaler Differentialgleichungen; Z. Math. Phys. 46; p435-53
  • Hairer, Norsett & Wanner (2009). Solving Ordinary Differential Equations. I: Nonstiff Problems. p138; zotero://select/items/0_VLZWN2CT
  • Butcher (2016); Numerical Methods for Ordinary Differential Equations. 3ed; p102; zotero://select/items/0_V7UTIRPT

Variable Documentation

◆ s

integer, parameter mrkiss_erk_kutta_4::s = 4

The order of the overall method.

Definition at line 64 of file mrkiss_erk_kutta_4.f90.

◆ m

integer, parameter mrkiss_erk_kutta_4::m = 1

Number of methods.

Definition at line 66 of file mrkiss_erk_kutta_4.f90.

◆ a

real(kind=rk), dimension(s,s), parameter mrkiss_erk_kutta_4::a

The \(\mathbf{a}\) matrix for the Butcher Tableau.

Definition at line 68 of file mrkiss_erk_kutta_4.f90.

68 real(kind=rk), parameter :: a(s,s) = reshape([ 0.0_rk, 0.0_rk, 0.0_rk, 0.0_rk, &
69 & 1.0_rk, 0.0_rk, 0.0_rk, 0.0_rk, &
70 & 0.0_rk, 1.0_rk, 0.0_rk, 0.0_rk, &
71 & 0.0_rk, 0.0_rk, 2.0_rk, 0.0_rk], [s, s]) / 2.0_rk

◆ b

real(kind=rk), dimension(s,m), parameter mrkiss_erk_kutta_4::b

The \(\mathbf{b}\) matrix for the Butcher Tableau.

Definition at line 73 of file mrkiss_erk_kutta_4.f90.

73 real(kind=rk), parameter :: b(s,m) = reshape([ 1.0_rk, 2.0_rk, 2.0_rk, 1.0_rk], [s, m]) / 6.0_rk

◆ c

real(kind=rk), dimension(s), parameter mrkiss_erk_kutta_4::c

The \(\mathbf{c}\) matrix for the Butcher Tableau.

Definition at line 75 of file mrkiss_erk_kutta_4.f90.

75 real(kind=rk), parameter :: c(s) = [ 0.0_rk, 1.0_rk, 1.0_rk, 2.0_rk] / 2.0_rk

◆ p

integer, dimension(m), parameter mrkiss_erk_kutta_4::p = [4]

The method orders.

Definition at line 77 of file mrkiss_erk_kutta_4.f90.

◆ se

integer, dimension(m), parameter mrkiss_erk_kutta_4::se = [4]

Number of stages for each method.

Definition at line 79 of file mrkiss_erk_kutta_4.f90.