Butcher tableaux of explicit Runge–Kutta methods
edit · history · discussion · files · short url · analysis
Numbers
method
symbol 
tableau coefficient
forward Euler
$b^{(1)}_1$:
1
comment: Forward Euler method: $b^{(1)}=(1)$.
explicit midpoint method
$c_2$:
1/2
comment: Explicit midpoint method: $b^{(2)}=(0, 1)$.
explicit midpoint method
$a_{21}$:
1/2
explicit midpoint method
$b^{(2)}_2$:
1
Heun's second-order method
$c_2$:
1
comment: Heun's second-order method: $b^{(2)}=(\tfrac{1}{2}, \tfrac{1}{2})$.
Heun's second-order method
$a_{21}$:
1
Heun's second-order method
$b^{(2)}_1$:
1/2
Heun's second-order method
$b^{(2)}_2$:
1/2
Ralston's second-order method
$c_2$:
2/3
comment: Ralston's second-order method: $b^{(2)}=(\tfrac{1}{4}, \tfrac{3}{4})$.
Ralston's second-order method
$a_{21}$:
2/3
Ralston's second-order method
$b^{(2)}_1$:
1/4
Ralston's second-order method
$b^{(2)}_2$:
3/4
Kutta's third-order method
$c_2$:
1/2
comment: Kutta's third-order method: $b^{(3)}=(\tfrac{1}{6}, \tfrac{2}{3}, \tfrac{1}{6})$.
Kutta's third-order method
$a_{21}$:
1/2
Kutta's third-order method
$c_3$:
1
Kutta's third-order method
$a_{31}$:
-1
Kutta's third-order method
$a_{32}$:
2
Kutta's third-order method
$b^{(3)}_1$:
1/6
Kutta's third-order method
$b^{(3)}_2$:
2/3
Kutta's third-order method
$b^{(3)}_3$:
1/6
Heun's third-order method
$c_2$:
1/3
comment: Heun's third-order method: $b^{(3)}=(\tfrac{1}{4}, 0, \tfrac{3}{4})$.
Heun's third-order method
$a_{21}$:
1/3
Heun's third-order method
$c_3$:
2/3
Heun's third-order method
$a_{32}$:
2/3
Heun's third-order method
$b^{(3)}_1$:
1/4
Heun's third-order method
$b^{(3)}_3$:
3/4
Ralston's third-order method
$c_2$:
1/2
comment: Ralston's third-order method: $b^{(3)}=(\tfrac{2}{9}, \tfrac{1}{3}, \tfrac{4}{9})$.
Ralston's third-order method
$a_{21}$:
1/2
Ralston's third-order method
$c_3$:
3/4
Ralston's third-order method
$a_{32}$:
3/4
Ralston's third-order method
$b^{(3)}_1$:
2/9
Ralston's third-order method
$b^{(3)}_2$:
1/3
Ralston's third-order method
$b^{(3)}_3$:
4/9
Van der Houwen–Wray third-order method
$c_2$:
8/15
comment: Van der Houwen–Wray third-order method: $b^{(3)}=(\tfrac{1}{4}, 0, \tfrac{3}{4})$.
Van der Houwen–Wray third-order method
$a_{21}$:
8/15
Van der Houwen–Wray third-order method
$c_3$:
2/3
Van der Houwen–Wray third-order method
$a_{31}$:
1/4
Van der Houwen–Wray third-order method
$a_{32}$:
5/12
Van der Houwen–Wray third-order method
$b^{(3)}_1$:
1/4
Van der Houwen–Wray third-order method
$b^{(3)}_3$:
3/4
third-order strong stability preserving Runge–Kutta method
$c_2$:
1
comment: Third-order strong stability preserving Runge–Kutta method: $b^{(3)}=(\tfrac{1}{6}, \tfrac{1}{6}, \tfrac{2}{3})$.
third-order strong stability preserving Runge–Kutta method
$a_{21}$:
1
third-order strong stability preserving Runge–Kutta method
$c_3$:
1/2
third-order strong stability preserving Runge–Kutta method
$a_{31}$:
1/4
third-order strong stability preserving Runge–Kutta method
$a_{32}$:
1/4
third-order strong stability preserving Runge–Kutta method
$b^{(3)}_1$:
1/6
third-order strong stability preserving Runge–Kutta method
$b^{(3)}_2$:
1/6
third-order strong stability preserving Runge–Kutta method
$b^{(3)}_3$:
2/3
classic fourth-order Runge–Kutta method
$c_2$:
1/2
comment: Classic fourth-order Runge–Kutta method: $b^{(4)}=(\tfrac{1}{6}, \tfrac{1}{3}, \tfrac{1}{3}, \tfrac{1}{6})$.
classic fourth-order Runge–Kutta method
$a_{21}$:
1/2
classic fourth-order Runge–Kutta method
$c_3$:
1/2
classic fourth-order Runge–Kutta method
$a_{32}$:
1/2
classic fourth-order Runge–Kutta method
$c_4$:
1
classic fourth-order Runge–Kutta method
$a_{43}$:
1
classic fourth-order Runge–Kutta method
$b^{(4)}_1$:
1/6
classic fourth-order Runge–Kutta method
$b^{(4)}_2$:
1/3
classic fourth-order Runge–Kutta method
$b^{(4)}_3$:
1/3
classic fourth-order Runge–Kutta method
$b^{(4)}_4$:
1/6
3/8-rule fourth-order method
$c_2$:
1/3
comment: 3/8-rule fourth-order method: $b^{(4)}=(\tfrac{1}{8}, \tfrac{3}{8}, \tfrac{3}{8}, \tfrac{1}{8})$.
3/8-rule fourth-order method
$a_{21}$:
1/3
3/8-rule fourth-order method
$c_3$:
2/3
3/8-rule fourth-order method
$a_{31}$:
-1/3
3/8-rule fourth-order method
$a_{32}$:
1
3/8-rule fourth-order method
$c_4$:
1
3/8-rule fourth-order method
$a_{41}$:
1
3/8-rule fourth-order method
$a_{42}$:
-1
3/8-rule fourth-order method
$a_{43}$:
1
3/8-rule fourth-order method
$b^{(4)}_1$:
1/8
3/8-rule fourth-order method
$b^{(4)}_2$:
3/8
3/8-rule fourth-order method
$b^{(4)}_3$:
3/8
3/8-rule fourth-order method
$b^{(4)}_4$:
1/8
Nyström's fifth-order method
$c_2$:
1/3
comment: Nyström's fifth-order method: $b^{(5)}=(\tfrac{23}{192}, 0, \tfrac{125}{192}, 0, -\tfrac{27}{64}, \tfrac{125}{192})$.
Nyström's fifth-order method
$a_{21}$:
1/3
Nyström's fifth-order method
$c_3$:
2/5
Nyström's fifth-order method
$a_{31}$:
4/25
Nyström's fifth-order method
$a_{32}$:
6/25
Nyström's fifth-order method
$c_4$:
1
Nyström's fifth-order method
$a_{41}$:
1/4
Nyström's fifth-order method
$a_{42}$:
-3
Nyström's fifth-order method
$a_{43}$:
15/4
Nyström's fifth-order method
$c_5$:
2/3
Nyström's fifth-order method
$a_{51}$:
2/27
Nyström's fifth-order method
$a_{52}$:
10/9
Nyström's fifth-order method
$a_{53}$:
-50/81
Nyström's fifth-order method
$a_{54}$:
8/81
Nyström's fifth-order method
$c_6$:
4/5
Nyström's fifth-order method
$a_{61}$:
2/25
Nyström's fifth-order method
$a_{62}$:
12/25
Nyström's fifth-order method
$a_{63}$:
2/15
Nyström's fifth-order method
$a_{64}$:
8/75
Nyström's fifth-order method
$b^{(5)}_1$:
23/192
Nyström's fifth-order method
$b^{(5)}_3$:
125/192
Nyström's fifth-order method
$b^{(5)}_5$:
-27/64
Nyström's fifth-order method
$b^{(5)}_6$:
125/192
Heun–Euler embedded pair
$c_2$:
1
comment: Heun–Euler embedded pair: $b^{(2)}=(\tfrac{1}{2}, \tfrac{1}{2})$; $b^{(1)}=(1, 0)$. The order-2 row is the advancing formula.
Heun–Euler embedded pair
$a_{21}$:
1
Heun–Euler embedded pair
$b^{(2)}_1$:
1/2
Heun–Euler embedded pair
$b^{(2)}_2$:
1/2
Heun–Euler embedded pair
$b^{(1)}_1$:
1
Fehlberg RK1(2) embedded pair
$c_2$:
1/2
comment: Fehlberg RK1(2) embedded pair: $b^{(2)}=(\tfrac{1}{512}, \tfrac{255}{256}, \tfrac{1}{512})$; $b^{(1)}=(\tfrac{1}{256}, \tfrac{255}{256}, 0)$. The order-1 row is the advancing formula.
Fehlberg RK1(2) embedded pair
$a_{21}$:
1/2
Fehlberg RK1(2) embedded pair
$c_3$:
1
Fehlberg RK1(2) embedded pair
$a_{31}$:
1/256
Fehlberg RK1(2) embedded pair
$a_{32}$:
255/256
Fehlberg RK1(2) embedded pair
$b^{(2)}_1$:
1/512
Fehlberg RK1(2) embedded pair
$b^{(2)}_2$:
255/256
Fehlberg RK1(2) embedded pair
$b^{(2)}_3$:
1/512
Fehlberg RK1(2) embedded pair
$b^{(1)}_1$:
1/256
Fehlberg RK1(2) embedded pair
$b^{(1)}_2$:
255/256
Bogacki–Shampine embedded pair
$c_2$:
1/2
comment: Bogacki–Shampine embedded pair: $b^{(3)}=(\tfrac{2}{9}, \tfrac{1}{3}, \tfrac{4}{9}, 0)$; $b^{(2)}=(\tfrac{7}{24}, \tfrac{1}{4}, \tfrac{1}{3}, \tfrac{1}{8})$. The order-3 row is the advancing formula. This is SciPy's RK23 tableau.
Bogacki–Shampine embedded pair
$a_{21}$:
1/2
Bogacki–Shampine embedded pair
$c_3$:
3/4
Bogacki–Shampine embedded pair
$a_{32}$:
3/4
Bogacki–Shampine embedded pair
$c_4$:
1
Bogacki–Shampine embedded pair
$a_{41}$:
2/9
Bogacki–Shampine embedded pair
$a_{42}$:
1/3
Bogacki–Shampine embedded pair
$a_{43}$:
4/9
Bogacki–Shampine embedded pair
$b^{(3)}_1$:
2/9
Bogacki–Shampine embedded pair
$b^{(3)}_2$:
1/3
Bogacki–Shampine embedded pair
$b^{(3)}_3$:
4/9
Bogacki–Shampine embedded pair
$b^{(2)}_1$:
7/24
Bogacki–Shampine embedded pair
$b^{(2)}_2$:
1/4
Bogacki–Shampine embedded pair
$b^{(2)}_3$:
1/3
Bogacki–Shampine embedded pair
$b^{(2)}_4$:
1/8
Runge–Kutta–Fehlberg RKF45 embedded pair
$c_2$:
1/4
comment: Runge–Kutta–Fehlberg RKF45 embedded pair: $b^{(5)}=(\tfrac{16}{135}, 0, \tfrac{6656}{12825}, \tfrac{28561}{56430}, -\tfrac{9}{50}, \tfrac{2}{55})$; $b^{(4)}=(\tfrac{25}{216}, 0, \tfrac{1408}{2565}, \tfrac{2197}{4104}, -\tfrac{1}{5}, 0)$. The order-4 row is the advancing formula.
Runge–Kutta–Fehlberg RKF45 embedded pair
$a_{21}$:
1/4
Runge–Kutta–Fehlberg RKF45 embedded pair
$c_3$:
3/8
Runge–Kutta–Fehlberg RKF45 embedded pair
$a_{31}$:
3/32
Runge–Kutta–Fehlberg RKF45 embedded pair
$a_{32}$:
9/32
Runge–Kutta–Fehlberg RKF45 embedded pair
$c_4$:
12/13
Runge–Kutta–Fehlberg RKF45 embedded pair
$a_{41}$:
1932/2197
Runge–Kutta–Fehlberg RKF45 embedded pair
$a_{42}$:
-7200/2197
Runge–Kutta–Fehlberg RKF45 embedded pair
$a_{43}$:
7296/2197
Runge–Kutta–Fehlberg RKF45 embedded pair
$c_5$:
1
Runge–Kutta–Fehlberg RKF45 embedded pair
$a_{51}$:
439/216
Runge–Kutta–Fehlberg RKF45 embedded pair
$a_{52}$:
-8
Runge–Kutta–Fehlberg RKF45 embedded pair
$a_{53}$:
3680/513
Runge–Kutta–Fehlberg RKF45 embedded pair
$a_{54}$:
-845/4104
Runge–Kutta–Fehlberg RKF45 embedded pair
$c_6$:
1/2
Runge–Kutta–Fehlberg RKF45 embedded pair
$a_{61}$:
-8/27
Runge–Kutta–Fehlberg RKF45 embedded pair
$a_{62}$:
2
Runge–Kutta–Fehlberg RKF45 embedded pair
$a_{63}$:
-3544/2565
Runge–Kutta–Fehlberg RKF45 embedded pair
$a_{64}$:
1859/4104
Runge–Kutta–Fehlberg RKF45 embedded pair
$a_{65}$:
-11/40
Runge–Kutta–Fehlberg RKF45 embedded pair
$b^{(5)}_1$:
16/135
Runge–Kutta–Fehlberg RKF45 embedded pair
$b^{(5)}_3$:
6656/12825
Runge–Kutta–Fehlberg RKF45 embedded pair
$b^{(5)}_4$:
28561/56430
Runge–Kutta–Fehlberg RKF45 embedded pair
$b^{(5)}_5$:
-9/50
Runge–Kutta–Fehlberg RKF45 embedded pair
$b^{(5)}_6$:
2/55
Runge–Kutta–Fehlberg RKF45 embedded pair
$b^{(4)}_1$:
25/216
Runge–Kutta–Fehlberg RKF45 embedded pair
$b^{(4)}_3$:
1408/2565
Runge–Kutta–Fehlberg RKF45 embedded pair
$b^{(4)}_4$:
2197/4104
Runge–Kutta–Fehlberg RKF45 embedded pair
$b^{(4)}_5$:
-1/5
Cash–Karp embedded pair
$c_2$:
1/5
comment: Cash–Karp embedded pair: $b^{(5)}=(\tfrac{37}{378}, 0, \tfrac{250}{621}, \tfrac{125}{594}, 0, \tfrac{512}{1771})$; $b^{(4)}=(\tfrac{2825}{27648}, 0, \tfrac{18575}{48384}, \tfrac{13525}{55296}, \tfrac{277}{14336}, \tfrac{1}{4})$. The order-5 row is the advancing formula.
Cash–Karp embedded pair
$a_{21}$:
1/5
Cash–Karp embedded pair
$c_3$:
3/10
Cash–Karp embedded pair
$a_{31}$:
3/40
Cash–Karp embedded pair
$a_{32}$:
9/40
Cash–Karp embedded pair
$c_4$:
3/5
Cash–Karp embedded pair
$a_{41}$:
3/10
Cash–Karp embedded pair
$a_{42}$:
-9/10
Cash–Karp embedded pair
$a_{43}$:
6/5
Cash–Karp embedded pair
$c_5$:
1
Cash–Karp embedded pair
$a_{51}$:
-11/54
Cash–Karp embedded pair
$a_{52}$:
5/2
Cash–Karp embedded pair
$a_{53}$:
-70/27
Cash–Karp embedded pair
$a_{54}$:
35/27
Cash–Karp embedded pair
$c_6$:
7/8
Cash–Karp embedded pair
$a_{61}$:
1631/55296
Cash–Karp embedded pair
$a_{62}$:
175/512
Cash–Karp embedded pair
$a_{63}$:
575/13824
Cash–Karp embedded pair
$a_{64}$:
44275/110592
Cash–Karp embedded pair
$a_{65}$:
253/4096
Cash–Karp embedded pair
$b^{(5)}_1$:
37/378
Cash–Karp embedded pair
$b^{(5)}_3$:
250/621
Cash–Karp embedded pair
$b^{(5)}_4$:
125/594
Cash–Karp embedded pair
$b^{(5)}_6$:
512/1771
Cash–Karp embedded pair
$b^{(4)}_1$:
2825/27648
Cash–Karp embedded pair
$b^{(4)}_3$:
18575/48384
Cash–Karp embedded pair
$b^{(4)}_4$:
13525/55296
Cash–Karp embedded pair
$b^{(4)}_5$:
277/14336
Cash–Karp embedded pair
$b^{(4)}_6$:
1/4
Dormand–Prince embedded pair
$c_2$:
1/5
comment: Dormand–Prince embedded pair: $b^{(5)}=(\tfrac{35}{384}, 0, \tfrac{500}{1113}, \tfrac{125}{192}, -\tfrac{2187}{6784}, \tfrac{11}{84}, 0)$; $b^{(4)}=(\tfrac{5179}{57600}, 0, \tfrac{7571}{16695}, \tfrac{393}{640}, -\tfrac{92097}{339200}, \tfrac{187}{2100}, \tfrac{1}{40})$. The order-5 row is the advancing formula. This is SciPy's RK45 tableau; the seventh stage is the FSAL row.
Dormand–Prince embedded pair
$a_{21}$:
1/5
Dormand–Prince embedded pair
$c_3$:
3/10
Dormand–Prince embedded pair
$a_{31}$:
3/40
Dormand–Prince embedded pair
$a_{32}$:
9/40
Dormand–Prince embedded pair
$c_4$:
4/5
Dormand–Prince embedded pair
$a_{41}$:
44/45
Dormand–Prince embedded pair
$a_{42}$:
-56/15
Dormand–Prince embedded pair
$a_{43}$:
32/9
Dormand–Prince embedded pair
$c_5$:
8/9
Dormand–Prince embedded pair
$a_{51}$:
19372/6561
Dormand–Prince embedded pair
$a_{52}$:
-25360/2187
Dormand–Prince embedded pair
$a_{53}$:
64448/6561
Dormand–Prince embedded pair
$a_{54}$:
-212/729
Dormand–Prince embedded pair
$c_6$:
1
Dormand–Prince embedded pair
$a_{61}$:
9017/3168
Dormand–Prince embedded pair
$a_{62}$:
-355/33
Dormand–Prince embedded pair
$a_{63}$:
46732/5247
Dormand–Prince embedded pair
$a_{64}$:
49/176
Dormand–Prince embedded pair
$a_{65}$:
-5103/18656
Dormand–Prince embedded pair
$c_7$:
1
Dormand–Prince embedded pair
$a_{71}$:
35/384
Dormand–Prince embedded pair
$a_{73}$:
500/1113
Dormand–Prince embedded pair
$a_{74}$:
125/192
Dormand–Prince embedded pair
$a_{75}$:
-2187/6784
Dormand–Prince embedded pair
$a_{76}$:
11/84
Dormand–Prince embedded pair
$b^{(5)}_1$:
35/384
Dormand–Prince embedded pair
$b^{(5)}_3$:
500/1113
Dormand–Prince embedded pair
$b^{(5)}_4$:
125/192
Dormand–Prince embedded pair
$b^{(5)}_5$:
-2187/6784
Dormand–Prince embedded pair
$b^{(5)}_6$:
11/84
Dormand–Prince embedded pair
$b^{(4)}_1$:
5179/57600
Dormand–Prince embedded pair
$b^{(4)}_3$:
7571/16695
Dormand–Prince embedded pair
$b^{(4)}_4$:
393/640
Dormand–Prince embedded pair
$b^{(4)}_5$:
-92097/339200
Dormand–Prince embedded pair
$b^{(4)}_6$:
187/2100
Dormand–Prince embedded pair
$b^{(4)}_7$:
1/40
Definition
A Butcher tableau [1] for an explicit Runge–Kutta method records the nodes $c_i$, strictly lower triangular coefficients $a_{ij}$, and weights $b_i$ in the one-step formula. An embedded pair has one weight row $b^{(q)}$ for each order $q$.
Parameters
method
—   method (a named explicit Runge–Kutta method or embedded pair with rational coefficients)
symbol
—   tableau coefficient (a node $c_i$ with $i\geq 2$, a matrix entry $a_{ij}$ with $j<i$, or the weight $b^{(q)}_i$ of stage $i$ in the order-$q$ formula)
Formulas
(1)
The one-step formula is $y_{n+1}=y_n+h\sum_i b_i k_i$, where $k_i=f(t_n+c_i h, y_n+h\sum_{j<i} a_{ij}k_j)$; for an embedded pair, use the row $b^{(q)}$ in place of $b$.
(2)
For every stage, $c_i=\sum_{j<i}a_{ij}$.
(3)
For each order-$q$ weight row and $1\leq m\leq q$, $\sum_i b^{(q)}_i c_i^{m-1}=1/m$.
(4)
If an embedded pair has weight rows $b^{(p)}$ and $b^{(q)}$, then $h\sum_i (b^{(p)}_i-b^{(q)}_i)k_i$ is the local error estimate used for step-size control.
Comments
(5)
Stages are numbered from $1$, as in Butcher notation. The first node $c_1=0$, zero entries in the strictly lower triangular matrix, and zero weights are omitted; an absent coefficient is $0$.
(6)
Embedded methods have one weight row for each order. The coefficient $b^{(q)}_i$ is the weight of stage $i$ in the order-$q$ formula. For each embedded pair, one row advances the solution and the other row gives the local error estimate; the method comment names the advancing row.
(7)
The source is Wikipedia's list of Runge–Kutta methods, revision 1346207143. The table excludes one-parameter generic families, implicit methods, and Ralston's fourth-order method, whose coefficients lie in $\mathbb{Q}(\sqrt5)$.
Programs
(P1)
Python
from fractions import Fraction
from scipy.integrate import RK23, RK45

def rationalize(values):
    return [Fraction(float(value)).limit_denominator() for value in values]

def tableau(method):
    advancing = rationalize(method.B) + [Fraction(0)]
    nodes = rationalize(method.C) + [Fraction(1)]
    matrix = [rationalize(row) for row in method.A] + [advancing[:-1]]
    error = rationalize(method.E)
    embedded = [b + e for b, e in zip(advancing, error)]
    return nodes, matrix, advancing, embedded

# SciPy stores NumPy floats; its A arrays omit the final row whose
# coefficients are B.
for method in (RK23, RK45):
    print(method.__name__)
    print(tableau(method))
Links
Similar tables
Nodes and weights of Gauss–Legendre quadrature —   the nodes are the $c_i$ of the implicit Gauss collocation Runge–Kutta methods, which are not included here
Nodes and weights of Gauss–Lobatto quadrature —   the Lobatto collocation Runge–Kutta families are implicit relatives of the explicit methods here
Newton–Cotes weights —   for a right-hand side independent of $y$, the weights form a quadrature rule on the nodes; among the methods here, Kutta's third-order method gives Simpson's $C_{2,j}$ weights, the classic fourth-order method gives the same weights after merging equal nodes, and the 3/8-rule method gives the $C_{3,j}$ weights
Data properties
Entries are of type: rational number
Table is complete: no (it holds the nonzero rational coefficients of the 18 rational explicit tableaux listed in Wikipedia's list of Runge–Kutta methods, revision 1346207143, excluding one-parameter families, implicit methods and irrational tableaux)
How they were obtained:

The generator transcribes the rational coefficients from the cited source revisions and stores them as reduced fractions. Each completed tableau is checked against the row sums, the order moment conditions, the rooted-tree order conditions through its stated order, and an independent transcription for the Bogacki–Shampine and Dormand–Prince arrays in SciPy.