Backward differentiation formula coefficients
edit · history · discussion · files · short url · analysis
Numbers
$s$
normalisation
coefficient 
method coefficient
1
$\alpha_{s,s}=1$
$\alpha_{s,0}$:
-1
comment: This is the backward Euler method, $y_{n+1} - y_n=h f(t_{n+1},y_{n+1})$.
1
$\alpha_{s,s}=1$
$\beta_s$:
1
1
$\beta_s=1$
$\alpha_{s,0}$:
-1
1
$\beta_s=1$
$\alpha_{s,1}$:
1
2
$\alpha_{s,s}=1$
$\alpha_{s,0}$:
1/3
comment: This is BDF2, $y_{n+2} - \tfrac{4}{3}y_{n+1} + \tfrac{1}{3}y_n=\tfrac{2}{3}h f(t_{n+2},y_{n+2})$.
2
$\alpha_{s,s}=1$
$\alpha_{s,1}$:
-4/3
2
$\alpha_{s,s}=1$
$\beta_s$:
2/3
2
$\beta_s=1$
$\alpha_{s,0}$:
1/2
2
$\beta_s=1$
$\alpha_{s,1}$:
-2
2
$\beta_s=1$
$\alpha_{s,2}$:
3/2
3
$\alpha_{s,s}=1$
$\alpha_{s,0}$:
-2/11
comment: This is BDF3, $y_{n+3} - \tfrac{18}{11}y_{n+2} + \tfrac{9}{11}y_{n+1} - \tfrac{2}{11}y_n=\tfrac{6}{11}h f(t_{n+3},y_{n+3})$.
3
$\alpha_{s,s}=1$
$\alpha_{s,1}$:
9/11
3
$\alpha_{s,s}=1$
$\alpha_{s,2}$:
-18/11
3
$\alpha_{s,s}=1$
$\beta_s$:
6/11
3
$\beta_s=1$
$\alpha_{s,0}$:
-1/3
3
$\beta_s=1$
$\alpha_{s,1}$:
3/2
3
$\beta_s=1$
$\alpha_{s,2}$:
-3
3
$\beta_s=1$
$\alpha_{s,3}$:
11/6
4
$\alpha_{s,s}=1$
$\alpha_{s,0}$:
3/25
comment: This is BDF4, $y_{n+4} - \tfrac{48}{25}y_{n+3} + \tfrac{36}{25}y_{n+2} - \tfrac{16}{25}y_{n+1} + \tfrac{3}{25}y_n=\tfrac{12}{25}h f(t_{n+4},y_{n+4})$.
4
$\alpha_{s,s}=1$
$\alpha_{s,1}$:
-16/25
4
$\alpha_{s,s}=1$
$\alpha_{s,2}$:
36/25
4
$\alpha_{s,s}=1$
$\alpha_{s,3}$:
-48/25
4
$\alpha_{s,s}=1$
$\beta_s$:
12/25
4
$\beta_s=1$
$\alpha_{s,0}$:
1/4
4
$\beta_s=1$
$\alpha_{s,1}$:
-4/3
4
$\beta_s=1$
$\alpha_{s,2}$:
3
4
$\beta_s=1$
$\alpha_{s,3}$:
-4
4
$\beta_s=1$
$\alpha_{s,4}$:
25/12
5
$\alpha_{s,s}=1$
$\alpha_{s,0}$:
-12/137
comment: This is BDF5, $y_{n+5} - \tfrac{300}{137}y_{n+4} + \tfrac{300}{137}y_{n+3} - \tfrac{200}{137}y_{n+2} + \tfrac{75}{137}y_{n+1} - \tfrac{12}{137}y_n=\tfrac{60}{137}h f(t_{n+5},y_{n+5})$.
5
$\alpha_{s,s}=1$
$\alpha_{s,1}$:
75/137
5
$\alpha_{s,s}=1$
$\alpha_{s,2}$:
-200/137
5
$\alpha_{s,s}=1$
$\alpha_{s,3}$:
300/137
5
$\alpha_{s,s}=1$
$\alpha_{s,4}$:
-300/137
5
$\alpha_{s,s}=1$
$\beta_s$:
60/137
5
$\beta_s=1$
$\alpha_{s,0}$:
-1/5
5
$\beta_s=1$
$\alpha_{s,1}$:
5/4
5
$\beta_s=1$
$\alpha_{s,2}$:
-10/3
5
$\beta_s=1$
$\alpha_{s,3}$:
5
5
$\beta_s=1$
$\alpha_{s,4}$:
-5
5
$\beta_s=1$
$\alpha_{s,5}$:
137/60
6
$\alpha_{s,s}=1$
$\alpha_{s,0}$:
10/147
comment: This is BDF6, $y_{n+6} - \tfrac{120}{49}y_{n+5} + \tfrac{150}{49}y_{n+4} - \tfrac{400}{147}y_{n+3} + \tfrac{75}{49}y_{n+2} - \tfrac{24}{49}y_{n+1} + \tfrac{10}{147}y_n=\tfrac{20}{49}h f(t_{n+6},y_{n+6})$.
6
$\alpha_{s,s}=1$
$\alpha_{s,1}$:
-24/49
6
$\alpha_{s,s}=1$
$\alpha_{s,2}$:
75/49
6
$\alpha_{s,s}=1$
$\alpha_{s,3}$:
-400/147
6
$\alpha_{s,s}=1$
$\alpha_{s,4}$:
150/49
6
$\alpha_{s,s}=1$
$\alpha_{s,5}$:
-120/49
6
$\alpha_{s,s}=1$
$\beta_s$:
20/49
6
$\beta_s=1$
$\alpha_{s,0}$:
1/6
6
$\beta_s=1$
$\alpha_{s,1}$:
-6/5
6
$\beta_s=1$
$\alpha_{s,2}$:
15/4
6
$\beta_s=1$
$\alpha_{s,3}$:
-20/3
6
$\beta_s=1$
$\alpha_{s,4}$:
15/2
6
$\beta_s=1$
$\alpha_{s,5}$:
-6
6
$\beta_s=1$
$\alpha_{s,6}$:
49/20
Definition
The backward differentiation formula (BDF) coefficients are the order-$s$ linear multistep coefficients $\alpha_{s,j}$ and $\beta_s$ in $\sum_{j=0}^{s}\alpha_{s,j}y_{n+j}=h\beta_s f(t_{n+s},y_{n+s})$ [1], stored with either $\alpha_{s,s}=1$ or $\beta_s=1$.
Parameters
$s$
—   number of steps ($s\geq1$)
normalisation
—   normalisation (either $\alpha_{s,s}=1$ or $\beta_s=1$)
coefficient
—   method coefficient (either $\beta_s$ or $\alpha_{s,j}$ with $0\leq j\leq s$)
Formulas
(1)
The order-$s$ conditions are $\sum_{j=0}^{s}\alpha_{s,j}j^q=q\beta_s s^{q-1}$ for $1\leq q\leq s$, together with $\sum_{j=0}^{s}\alpha_{s,j}=0$.
(2)
In the normalisation $\beta_s=1$, $\alpha_{s,j}=\ell'_{s,j}(s)$, where $\ell_{s,j}$ is the Lagrange basis polynomial for the nodes $0,1,\ldots,s$ with $\ell_{s,j}(i)=1$ if $i=j$ and $0$ otherwise.
(3)
In the normalisation $\beta_s=1$, $\alpha_{s,j}=(-1)^{s-j}\binom{s}{j}/(s-j)$ for $0\leq j<s$, $\alpha_{s,s}=H_s=\sum_{k=1}^{s}1/k$ and $\beta_s=1$.
(4)
In the normalisation $\alpha_{s,s}=1$, each $\alpha_{s,j}$ is the corresponding coefficient from the normalisation $\beta_s=1$ divided by $H_s$, and $\beta_s=1/H_s$.
Comments
(5)
Here $t_{n+j}=t_0+(n+j)h$ and $\nabla y_m=y_m-y_{m-1}$. The rows with $\alpha_{s,s}=1$ use the convention of [1]; the rows with $\beta_s=1$ are the backward-difference form $\sum_{k=1}^{s}\nabla^k y_{n+s}/k=h f(t_{n+s},y_{n+s})$. The coefficients with $\beta_s=1$ are the backward finite-difference weights for $y'(t_{n+s})$ of order $s$.
(6)
Rows fixed to $1$ by the normalisation are omitted: $\alpha_{s,s}$ in the normalisation $\alpha_{s,s}=1$ and $\beta_s$ in the normalisation $\beta_s=1$.
(7)
The history index $j$ is counted from the oldest value to the newest value, so entries follow the order $y_n,y_{n+1},\ldots,y_{n+s}$. Wikipedia [1] writes the displayed formulas from newest to oldest; for example BDF3 has $\alpha_{3,0},\alpha_{3,1},\alpha_{3,2}$ equal to $-2/11,9/11,-18/11$ in the normalisation $\alpha_{s,s}=1$.
(8)
The BDF methods are zero-stable only for $s\leq6$ [1].
Programs
(P1)
Sage
import numberdb.sage as numberdb
from sage.arith.misc import binomial
from sage.rings.rational_field import QQ

def bdf_coefficients(s, normalisation='alpha-s-one'):
    harmonic = sum(QQ(1) / QQ(k) for k in range(1, s + 1))
    alpha = {
        j: QQ((-1) ** (s - j)) * QQ(binomial(s, j)) / QQ(s - j)
        for j in range(s)
    }
    alpha[s] = harmonic
    beta = QQ(1)
    if normalisation == 'alpha-s-one':
        alpha = {j: value / harmonic for j, value in alpha.items()}
        beta = QQ(1) / harmonic
    elif normalisation != 'nabla':
        raise ValueError("unknown normalisation")
    out = {'beta': beta}
    out.update({'alpha_%d' % j: alpha[j] for j in range(s + 1)})
    return out

bdf_coefficients(3)
Links
Similar tables
Central finite difference coefficients —   both are finite-difference coefficients for derivatives on equally spaced nodes; the rows with $\beta_s=1$ use the one-sided stencil at the newest node
Lagrange basis polynomials for equally spaced nodes —   differentiating these basis polynomials at the newest node gives the coefficients with $\beta_s=1$
Adams-Bashforth coefficients —   the explicit linear multistep counterpart, combining past values of $f$
Adams-Moulton coefficients —   another implicit linear multistep family, combining several values of $f$ with two values of $y$ rather than several values of $y$ with one value of $f$
Butcher tableaux of explicit Runge-Kutta methods —   another family of rational coefficients for classical methods for ordinary differential equations
Data properties
Entries are of type: rational number
Table is complete: no (it holds the six zero-stable methods, $1\leq s\leq6$)
How they were obtained:

The generator builds the order conditions over $\mathbb{Q}$ and solves them exactly in the normalisation $\beta_s=1$. Each stored method is checked against the defining moments, the Lagrange-basis derivative formula, the closed backward-difference formula in the Formulas section, and the six displayed BDF formulas in [1].