Backward differentiation formula

From HandWiki
Revision as of 19:22, 6 February 2024 by John Marlo (talk | contribs) (over-write)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Short description: Numerical method for solving ordinary differential equations

The backward differentiation formula (BDF) is a family of implicit methods for the numerical integration of ordinary differential equations. They are linear multistep methods that, for a given function and time, approximate the derivative of that function using information from already computed time points, thereby increasing the accuracy of the approximation. These methods are especially used for the solution of stiff differential equations. The methods were first introduced by Charles F. Curtiss and Joseph O. Hirschfelder in 1952.[1] In 1967 the field was formalized by C. William Gear in a seminal paper based on his earlier unpublished work.[2]

General formula

A BDF is used to solve the initial value problem

[math]\displaystyle{ y' = f(t,y), \quad y(t_0) = y_0. }[/math]

The general formula for a BDF can be written as [3]

[math]\displaystyle{ \sum_{k=0}^s a_k y_{n+k} = h \beta f(t_{n+s}, y_{n+s}), }[/math]

where [math]\displaystyle{ h }[/math] denotes the step size and [math]\displaystyle{ t_n = t_0 + nh }[/math]. Since [math]\displaystyle{ f }[/math] is evaluated for the unknown [math]\displaystyle{ y_{n+s} }[/math], BDF methods are implicit and possibly require the solution of nonlinear equations at each step. The coefficients [math]\displaystyle{ a_k }[/math] and [math]\displaystyle{ \beta }[/math] are chosen so that the method achieves order [math]\displaystyle{ s }[/math], which is the maximum possible.

Derivation of the coefficients

Starting from the formula [math]\displaystyle{ y'(t_{n+s}) = f(t_{n+s}, y(t_{n+s})) }[/math] one approximates [math]\displaystyle{ y(t_{n+s}) \approx y_{n+s} }[/math] and [math]\displaystyle{ y'(t_{n+s}) \approx p_{n, s}'(t_{n+s}) }[/math], where [math]\displaystyle{ p_{n, s}(t) }[/math] is the Lagrange interpolation polynomial for the points [math]\displaystyle{ (t_n, y_n), \ldots, (t_{n+s}, y_{n+s}) }[/math]. Using that [math]\displaystyle{ t_n = t_0 + nh }[/math] and multiplying by [math]\displaystyle{ h }[/math] one arrives at the BDF method of order [math]\displaystyle{ s }[/math].

Specific formulas

The s-step BDFs with s < 7 are:[4]

  • BDF1: [math]\displaystyle{ y_{n+1} - y_n = h f(t_{n+1}, y_{n+1}) }[/math] (this is the backward Euler method)
  • BDF2: [math]\displaystyle{ y_{n+2} - \tfrac43 y_{n+1} + \tfrac13 y_n = \tfrac23 h f(t_{n+2}, y_{n+2}) }[/math]
  • BDF3: [math]\displaystyle{ y_{n+3} - \tfrac{18}{11} y_{n+2} + \tfrac9{11} y_{n+1} - \tfrac2{11} y_n = \tfrac6{11} h f(t_{n+3}, y_{n+3}) }[/math]
  • BDF4: [math]\displaystyle{ 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}) }[/math]
  • BDF5: [math]\displaystyle{ 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}) }[/math]
  • BDF6: [math]\displaystyle{ y_{n+6} - \tfrac{360}{147} y_{n+5} + \tfrac{450}{147} y_{n+4} - \tfrac{400}{147} y_{n+3} + \tfrac{225}{147} y_{n+2} - \tfrac{72}{147} y_{n+1} + \tfrac{10}{147} y_n = \tfrac{60}{147} h f(t_{n+6}, y_{n+6}) }[/math]

Methods with s > 6 are not zero-stable so they cannot be used.[5]

Stability

The stability of numerical methods for solving stiff equations is indicated by their region of absolute stability. For the BDF methods, these regions are shown in the plots below.

Ideally, the region contains the left half of the complex plane, in which case the method is said to be A-stable. However, linear multistep methods with an order greater than 2 cannot be A-stable. The stability region of the higher-order BDF methods contain a large part of the left half-plane and in particular the whole of the negative real axis. The BDF methods are the most efficient linear multistep methods of this kind.[5]

References

Citations

  1. Curtiss, C. F., & Hirschfelder, J. O. (1952). Integration of stiff equations. Proceedings of the National Academy of Sciences, 38(3), 235-243.
  2. Gear, C. W. (1967). "The Numerical Integration of Ordinary Differential Equations". Mathematics of Computation 21 (98): 146–156. doi:10.2307/2004155. 
  3. Ascher & Petzold 1998, §5.1.2, p. 129
  4. Iserles 1996, p. 27 (for s = 1, 2, 3); Süli & Mayers 2003, p. 349 (for all s)
  5. 5.0 5.1 Süli & Mayers 2003, p. 349

Referred works

Further reading

  • BDF Methods at the SUNDIALS wiki (SUNDIALS is a library implementing BDF methods and similar algorithms).