Skip to article frontmatterSkip to article content
Site not loading correctly?

This may be due to an incorrect BASE_URL configuration. See the MyST Documentation for reference.

 Open In Colab

We are now in a position to generalize the Runge-Kutta family to implicit schemes. Recall the ss-stage Runge-Kutta update:

yi+1=yi+h∑n=1sankny_{i+1} = y_i + h \sum_{n=1}^{s} a_n k_n

where each stage slope knk_n can now depend on all stage slopes k1,…,ksk_1, \dots, k_s:

kn=f ⁣(ti+pnh,  yi+h∑m=1sqnmkm)k_n = f\!\left(t_i + p_n h,\; y_i + h \sum_{m=1}^{s} q_{nm} k_m\right)

The general Butcher tableau is therefore a full s×ss \times s matrix:

p1q11q12…q1sp2q21q22…q2s⋮⋮⋮⋱⋮psqs1qs2…qssa1a2…as\begin{array}{c|cccc} p_1 & q_{11} & q_{12} & \dots & q_{1s} \\ p_2 & q_{21} & q_{22} & \dots & q_{2s} \\ \vdots & \vdots & \vdots & \ddots & \vdots \\ p_s & q_{s1} & q_{s2} & \dots & q_{ss} \\ \hline & a_1 & a_2 & \dots & a_s \end{array}

In explicit RK methods (qnm=0q_{nm} = 0 for m≥nm \ge n), the stages knk_n are evaluated sequentially. In implicit RK methods, the coupled system of ss nonlinear equations for k1,…,ksk_1, \dots, k_s must be solved simultaneously at every time step, trading higher computational cost for exceptional stability and accuracy.

Implicit Euler Method

The Implicit Euler (Backward Euler) method is the 1-stage, first-order implicit Runge-Kutta scheme:

yi+1=yi+hf(ti+1,yi+1)y_{i+1} = y_i + h f(t_{i+1}, y_{i+1})

Its Butcher tableau has a single non-zero diagonal entry q11=1q_{11} = 1:

111\begin{array}{c|c} 1 & 1 \\ \hline & 1 \end{array}

Second-Order Implicit Runge-Kutta Methods

Implicit Midpoint Method

The 1-stage Implicit Midpoint method achieves second-order accuracy (O(h2)\mathcal{O}(h^2)) by evaluating the slope at the implicit midpoint:

yi+1=yi+hk1,k1=f ⁣(ti+12h,  yi+12hk1)y_{i+1} = y_i + h k_1, \qquad k_1 = f\!\left(t_i + \frac{1}{2}h,\; y_i + \frac{1}{2}h k_1\right)

Equivalently, yi+1/2=yi+h2f(ti+12h,yi+1/2)y_{i+1/2} = y_i + \frac{h}{2} f(t_i + \frac{1}{2}h, y_{i+1/2}), with Butcher tableau:

12121\begin{array}{c|c} \frac{1}{2} & \frac{1}{2} \\ \hline & 1 \end{array}

Implicit Trapezoid (Crank-Nicolson) Method

The Implicit Trapezoid method (widely known as the Crank-Nicolson scheme in PDE time-stepping) averages the explicit slope at tit_i and the implicit slope at ti+1t_{i+1}:

yi+1=yi+h2(f(ti,yi)+f(ti+1,yi+1))y_{i+1} = y_i + \frac{h}{2} \left( f(t_i, y_i) + f(t_{i+1}, y_{i+1}) \right)
000112121212\begin{array}{c|cc} 0 & 0 & 0 \\ 1 & \frac{1}{2} & \frac{1}{2} \\ \hline & \frac{1}{2} & \frac{1}{2} \end{array}

Gauss-Legendre Order 4 (2 Stages)

By placing stage nodes at the roots of shifted Legendre polynomials (just like Gaussian quadrature!), an ss-stage implicit Gauss-Legendre method achieves the maximum possible order 2s2s. For s=2s = 2 stages, we obtain a fourth-order (O(h4)\mathcal{O}(h^4)), unconditionally A-stable scheme with Butcher tableau:

12−361414−3612+3614+36141212\begin{array}{c|cc} \frac{1}{2} - \frac{\sqrt{3}}{6} & \frac{1}{4} & \frac{1}{4} - \frac{\sqrt{3}}{6} \\ \frac{1}{2} + \frac{\sqrt{3}}{6} & \frac{1}{4} + \frac{\sqrt{3}}{6} & \frac{1}{4} \\ \hline & \frac{1}{2} & \frac{1}{2} \end{array}

At each step, k1k_1 and k2k_2 are found by solving the coupled system:

k1=f ⁣(ti+(12−36)h,  yi+h(14k1+(14−36)k2))k2=f ⁣(ti+(12+36)h,  yi+h((14+36)k1+14k2))\begin{aligned} k_1 &= f\!\left(t_i + \left(\frac{1}{2} - \frac{\sqrt{3}}{6}\right)h,\; y_i + h\left(\frac{1}{4}k_1 + \left(\frac{1}{4} - \frac{\sqrt{3}}{6}\right)k_2\right)\right) \\ k_2 &= f\!\left(t_i + \left(\frac{1}{2} + \frac{\sqrt{3}}{6}\right)h,\; y_i + h\left(\left(\frac{1}{4} + \frac{\sqrt{3}}{6}\right)k_1 + \frac{1}{4}k_2\right)\right) \end{aligned}

followed by the symmetric update:

yi+1=yi+h2(k1+k2)y_{i+1} = y_i + \frac{h}{2}\left(k_1 + k_2\right)

Many additional families (such as Radau and Lobatto collocation methods, and diagonally implicit Runge-Kutta schemes) are catalogued in the list of Runge-Kutta methods.