{
 "id": "epeg9yv3f8",
 "slug": "backward-differentiation-formula",
 "title": "Backward differentiation formula",
 "updated": "2026-09-30",
 "topic_path": [
  {
   "id": "physical",
   "label": "Physical world and mathematics",
   "api_url": "https://www.edgepedia.org/api/v1/topics/physical"
  },
  {
   "id": "physical.math",
   "label": "Mathematics and statistics",
   "api_url": "https://www.edgepedia.org/api/v1/topics/physical.math"
  },
  {
   "id": "physical.math.analysis",
   "label": "Analysis and mathematical models",
   "api_url": "https://www.edgepedia.org/api/v1/topics/physical.math.analysis"
  },
  {
   "id": "physical.math.analysis.numerical_analysis_and_computation",
   "label": "Numerical analysis and computation",
   "api_url": "https://www.edgepedia.org/api/v1/topics/physical.math.analysis.numerical_analysis_and_computation"
  },
  {
   "id": "physical.math.analysis.numerical_analysis_and_computation.time-integration-methods",
   "label": "Time integration methods",
   "api_url": "https://www.edgepedia.org/api/v1/topics/physical.math.analysis.numerical_analysis_and_computation.time-integration-methods"
  }
 ],
 "geo": [
  {
   "id": "geo.nongeo.t1946.physical.math.analysis.numerical_analysis_and_computation",
   "label": "Non-geographic · 1946 to 2000: Numerical analysis and computation",
   "api_url": "https://www.edgepedia.org/api/v1/geo/geo.nongeo.t1946.physical.math.analysis.numerical_analysis_and_computation",
   "path": [
    {
     "id": "geo.nongeo",
     "label": "Non-geographic",
     "api_url": "https://www.edgepedia.org/api/v1/geo/geo.nongeo"
    },
    {
     "id": "geo.nongeo.t1946",
     "label": "Non-geographic · 1946 to 2000",
     "api_url": "https://www.edgepedia.org/api/v1/geo/geo.nongeo.t1946"
    },
    {
     "id": "geo.nongeo.t1946.physical",
     "label": "Physical world and mathematics",
     "api_url": "https://www.edgepedia.org/api/v1/geo/geo.nongeo.t1946.physical"
    },
    {
     "id": "geo.nongeo.t1946.physical.math",
     "label": "Mathematics and statistics",
     "api_url": "https://www.edgepedia.org/api/v1/geo/geo.nongeo.t1946.physical.math"
    },
    {
     "id": "geo.nongeo.t1946.physical.math.analysis",
     "label": "Analysis and mathematical models",
     "api_url": "https://www.edgepedia.org/api/v1/geo/geo.nongeo.t1946.physical.math.analysis"
    },
    {
     "id": "geo.nongeo.t1946.physical.math.analysis.numerical_analysis_and_computation",
     "label": "Numerical analysis and computation",
     "api_url": "https://www.edgepedia.org/api/v1/geo/geo.nongeo.t1946.physical.math.analysis.numerical_analysis_and_computation"
    }
   ]
  }
 ],
 "excerpt": "The backward differentiation formula (BDF) is a family of implicit linear multistep methods for stiff ordinary differential equations, first used in Curtiss and Hirschfelder's 1952 paper.",
 "snippet": "The backward differentiation formula (BDF) is a family of implicit linear multistep methods for stiff ordinary differential equations, first used in Curtiss and Hirschfelder's 1952 paper.",
 "node": "physical.math.analysis.numerical_analysis_and_computation.time-integration-methods",
 "markdown": "# Backward differentiation formula\n\nThe backward differentiation formula (BDF) is a family of implicit linear multistep methods for computing numerical solutions of ordinary differential equations, designed for stiff systems.<sup>[1](http://www.scholarpedia.org/article/Backward_differentiation_formulas)</sup> Each step replaces the time derivative by a backward difference through recent solution values, leaving one implicit equation to solve per step; this implicitness is essential for arbitrarily stiff systems.<sup>[1](http://www.scholarpedia.org/article/Backward_differentiation_formulas)</sup> The first use of BDF methods is credited to Curtiss and Hirschfelder's 1952 paper on stiff equations,<sup>[2](https://doi.org/10.1073/pnas.38.3.235)</sup> and the family now underlies standard stiff solvers in scientific computing, including CVODE, DASSL, and MATLAB's ode15s.<sup>[3](https://sundials.readthedocs.io/en/v7.1.0/cvode/Mathematics_link.html)</sup><sup> • </sup><sup>[4](https://www.osti.gov/servlets/purl/5882821)</sup><sup> • </sup><sup>[5](http://bicycle.tudelft.nl/schwab/TAM674/SR97.pdf)</sup>\n\n| Key fact | Detail |\n| --- | --- |\n| Method class | Implicit linear multistep methods of orders 1 through 6, for stiff ODEs and some differential-algebraic equations<sup>[1](http://www.scholarpedia.org/article/Backward_differentiation_formulas)</sup> |\n| Defining formula | \\( h \\cdot y'_{n} = \\sum_{j=0}^{k} \\alpha_{k,j} \\, y_{n-j} \\) at fixed step \\( h \\)<sup>[1](http://www.scholarpedia.org/article/Backward_differentiation_formulas)</sup> |\n| Coefficients | Taken from the Lagrange interpolation polynomial through recent values; BDF1 is the backward Euler method<sup>[6](https://sofa-framework.github.io/doc/components/odesolver/backward/bdfodesolver/)</sup> |\n| Stability | A-stable at orders 1 and 2; A(α)-stable at orders 3 to 6, with the angle shrinking from 90° to about 17.84°<sup>[3](https://sundials.readthedocs.io/en/v7.1.0/cvode/Mathematics_link.html)</sup><sup> • </sup><sup>[7](https://www.cse.uoi.gr/~akrivis/AK2a.pdf)</sup> |\n| Order barrier | For \\( k \\geq 7 \\) the schemes are not even 0-stable, so no BDF beyond order 6 is usable<sup>[8](https://www.opuscula.agh.edu.pl/vol26/2/art/opuscula_math_2615.pdf)</sup> |\n| Stiff stability | Gear's stiffness limits \\( \\delta \\): 0 for orders 1 and 2, then −0.1, −0.7, −2.4, −6.1 for orders 3 to 6<sup>[9](https://arxiv.org/html/1101.4434)</sup> |\n| Typical software | CVODE (orders 1 to 5, fixed-leading coefficient form), DASSL, ode15s<sup>[3](https://sundials.readthedocs.io/en/v7.1.0/cvode/Mathematics_link.html)</sup><sup> • </sup><sup>[4](https://www.osti.gov/servlets/purl/5882821)</sup><sup> • </sup><sup>[5](http://bicycle.tudelft.nl/schwab/TAM674/SR97.pdf)</sup> |\n\n## How it works\n\nAt a constant step size \\( h \\), the order-\\( k \\) BDF for a step to \\( (t_{n+1}, y_{n+1}) \\) is\n\n\\[ h \\cdot y'_{n+1} = \\sum_{j=0}^{k} \\alpha_{k,j} \\, y_{n+1-j} \\]\n\nwith coefficients taken from the Lagrange interpolation polynomial through the recent solution values; the order equals the number of previous time steps the polynomial requires, and order 1 is the backward [Euler method](https://www.edgepedia.org/euler-method).<sup>[1](http://www.scholarpedia.org/article/Backward_differentiation_formulas)</sup><sup> • </sup><sup>[6](https://sofa-framework.github.io/doc/components/odesolver/backward/bdfodesolver/)</sup> Because \\( y_{n} \\) appears on both sides of the equation the method is implicit, and it uses only one implicit evaluation of the right-hand side of the ODE per step.<sup>[1](http://www.scholarpedia.org/article/Backward_differentiation_formulas)</sup><sup> • </sup><sup>[8](https://www.opuscula.agh.edu.pl/vol26/2/art/opuscula_math_2615.pdf)</sup>\n\n**Stability is the design target.** Orders 1 and 2 are A-stable: for any complex \\( \\lambda \\) in the open left half-plane, the method is unconditionally stable at any step size for the model problem \\( y' = \\lambda y \\).<sup>[3](https://sundials.readthedocs.io/en/v7.1.0/cvode/Mathematics_link.html)</sup> Orders 3 through 6 are A(α)-stable with maximum angles \\( \\vartheta_{1} = \\vartheta_{2} = 90^{\\circ} \\), \\( \\vartheta_{3} \\approx 86.03^{\\circ} \\), \\( \\vartheta_{4} \\approx 73.35^{\\circ} \\), \\( \\vartheta_{5} \\approx 51.84^{\\circ} \\), and \\( \\vartheta_{6} \\approx 17.84^{\\circ} \\).<sup>[7](https://www.cse.uoi.gr/~akrivis/AK2a.pdf)</sup> The same orders are stiffly stable in Gear's sense, with stiffness limits \\( \\delta = 0 \\) for orders 1 and 2 and \\( \\delta = -0.1, -0.7, -2.4, -6.1 \\) for orders 3 to 6.<sup>[9](https://arxiv.org/html/1101.4434)</sup> For \\( k \\geq 7 \\) the schemes are not even 0-stable,<sup>[8](https://www.opuscula.agh.edu.pl/vol26/2/art/opuscula_math_2615.pdf)</sup> and the order-7 stability contour crosses the negative real axis, making order 7 and higher of no value; order 6, though still A(α)-stable, has so tight an angle that it is rarely implemented.<sup>[1](http://www.scholarpedia.org/article/Backward_differentiation_formulas)</sup><sup> • </sup><sup>[8](https://www.opuscula.agh.edu.pl/vol26/2/art/opuscula_math_2615.pdf)</sup>\n\n## How it is done\n\nQuality codes start BDF integration with Adams methods, which are more effective on the initial transients common to stiff problems and whose order-selection mechanism reduces order appropriately on problems with eigenvalues near the imaginary axis.<sup>[10](https://stewart.sdsu.edu/mypubs/StewartJCAM_Avoiding_1-s2.0-037704279090017T-main.pdf)</sup> The implicit equation at each step is then solved by a Newton or modified Newton iteration requiring the solution of linear systems.<sup>[4](https://www.osti.gov/servlets/purl/5882821)</sup><sup> • </sup><sup>[3](https://sundials.readthedocs.io/en/v7.1.0/cvode/Mathematics_link.html)</sup>\n\n**Error and order control.** CVODE controls local error through the asymptotic estimate \\( \\mathrm{LTE} = C \\cdot h^{q+1} \\cdot y^{(q+1)} + O(h^{q+2}) \\) at order \\( q \\) and step size \\( h \\), redoing steps with a reduced step size when the error test fails; order is varied dynamically between 1 and 5, with changes considered only after \\( q+1 \\) steps at order \\( q \\), and then only to \\( q-1 \\) or \\( q+1 \\).<sup>[3](https://sundials.readthedocs.io/en/v7.1.0/cvode/Mathematics_link.html)</sup> For a fixed step size \\( h \\), a \\( k \\)-step BDF with \\( k < 7 \\) is convergent of order \\( k \\) if all initial values are accurate to \\( O(h^{k}) \\) and the Newton iteration converges to \\( O(h^{k+1}) \\); this extends to variable step sizes provided the implementation is stable for ODEs.<sup>[11](https://www.cs.usask.ca/~spiteri/M314/notes/AP/chap10.pdf)</sup> CVODE additionally includes the STALD (stability limit detection) algorithm to protect against potentially unstable BDF behavior.<sup>[3](https://sundials.readthedocs.io/en/v7.1.0/cvode/Mathematics_link.html)</sup>\n\n## Origin\n\nThe first use of BDF methods is credited to C. F. Curtiss and J. O. Hirschfelder's paper \"Integration of Stiff Equations\", published in the [Proceedings of the National Academy of Sciences](https://www.edgepedia.org/proceedings-of-the-national-academy-of-sciences) in 1952 (38(3):235–243).<sup>[2](https://doi.org/10.1073/pnas.38.3.235)</sup> The paper addresses equations arising in chemical kinetics, electrical circuit theory, and missile guidance that are exceedingly difficult to solve by ordinary numerical procedures, and proposes a forward interpolation (backward differentiation) scheme; the same source is credited with coining the notion of stiff differential equations, and one of the first definitions of stiffness: equations on which certain implicit methods outperform explicit ones such as Euler or Adams methods.<sup>[12](https://unige.ch/~hairer/preprints/pcam-ode.pdf)</sup><sup> • </sup><sup>[9](https://arxiv.org/html/1101.4434)</sup> Henrici (1962) discussed methods based on differentiation but dismissed them as less accurate than the corresponding Adams-Moulton formulas for non-stiff equations.<sup>[1](http://www.scholarpedia.org/article/Backward_differentiation_formulas)</sup>\n\nC. W. Gear's [Algorithm](https://www.edgepedia.org/algorithm) 407, DIFSUB, published in Communications of the ACM in 1971,<sup>[13](https://doi.org/10.1145/362566.362573)</sup> was the first widely used code for stiff problems and formalized the method often called Gear's method.<sup>[12](https://unige.ch/~hairer/preprints/pcam-ode.pdf)</sup> The DASSL report extended BDF to differential-algebraic systems, approximating the derivative with BDF of order one to five and choosing order and step size from solution behavior.<sup>[4](https://www.osti.gov/servlets/purl/5882821)</sup>\n\n## Variants\n\n**Step-size formulations.** Variable-step codes represent the method's history in modified divided differences or the Nordsieck array.<sup>[1](http://www.scholarpedia.org/article/Backward_differentiation_formulas)</sup> DASSL uses the fixed-leading coefficient form (after Jackson and Sacks-Davis), which tends to be more stable than the fixed coefficient formulas used in LSODI and more efficient than the variable coefficient formulas used in VODE.<sup>[4](https://www.osti.gov/servlets/purl/5882821)</sup> CVODE likewise uses variable-order, variable-step BDF in fixed-leading coefficient form of orders 1 to 5, with coefficients determined by the method type, its order, the recent step-size history, and the normalization \\( \\alpha_{n,0} = -1 \\).<sup>[3](https://sundials.readthedocs.io/en/v7.1.0/cvode/Mathematics_link.html)</sup>\n\n**DAE and split forms.** BDF can be applied directly to some differential-algebraic equations of the form \\( F(y', y, t) = 0 \\),<sup>[1](http://www.scholarpedia.org/article/Backward_differentiation_formulas)</sup> and most BDF-based software packages solve fully implicit index-1 DAEs.<sup>[11](https://www.cs.usask.ca/~spiteri/M314/notes/AP/chap10.pdf)</sup> IMEX (semi-implicit) BDF schemes apply the implicit BDF to the stiff part of a split system and treat the non-stiff part explicitly, with accuracy up to fourth order; the OrdinaryDiffEq.jl implementations include SBDF2 (recommended), SBDF3, SBDF4, and an experimental adaptive-order variant.<sup>[14](https://github.com/SciML/OrdinaryDiffEq.jl/blob/master/docs/src/imex/IMEXBDF.md)</sup> K. Stewart's 1990 paper in the Journal of Computational and Applied Mathematics modeled the stability of these semi-implicit formulas, treating a prediction followed by a fixed number of Newton corrections made with an inexact Jacobian matrix.<sup>[15](https://doi.org/10.1016/0377-0427%2890%2990050-a)</sup>\n\n**Software.** MATLAB's ODE suite implements the BDF-based stiff solver ode15s.<sup>[5](http://bicycle.tudelft.nl/schwab/TAM674/SR97.pdf)</sup> TensorFlow Probability's JAX substrate provides a variable-step, variable-order BDF integrator with order between 1 and 5, following Shampine and Reichelt (1997), with gradients computed by the adjoint sensitivity method.<sup>[16](https://www.tensorflow.org/probability/api_docs/python/tfp/substrates/jax/math/ode/BDF)</sup> VODE is a variable-step BDF method in fixed-leading coefficient form, and CVODE is a C-language successor of VODE within the SUNDIALS suite;<sup>[21](https://sundials.readthedocs.io/en/v7.5.0/cvode/Organization_link.html)</sup> multistep BDF methods solve a single implicit equation per step, whereas Rosenbrock and (E)SDIRK methods must solve a few.<sup>[17](https://www.stochasticlifestyle.com/differences-between-methods-for-solving-stiff-odes/)</sup>\n\n## Applications\n\nDifferentialEquations.jl documents BDF as the preferred choice for very large stiff systems with more than 1000 equations, where other implicit methods become computationally expensive, and lists reaction-diffusion systems, chemical kinetics, circuit simulation, and parabolic PDEs after spatial discretization as recommended use cases.<sup>[18](https://docs.sciml.ai/DiffEqDocs/stable/api/ordinarydiffeq/implicit/BDF/)</sup> For large stiff systems where direct linear solvers are infeasible, combining a BDF integrator with a preconditioned Krylov method is described as a powerful tool.<sup>[3](https://sundials.readthedocs.io/en/v7.1.0/cvode/Mathematics_link.html)</sup>\n\n## Limitations and alternatives\n\nOrders 3 through 6 have an exit angle below 60° when eigenvalues lie near the imaginary axis, which causes instability there;<sup>[10](https://stewart.sdsu.edu/mypubs/StewartJCAM_Avoiding_1-s2.0-037704279090017T-main.pdf)</sup> the CVODE documentation likewise notes that at orders 3 to 5 the methods are not A-stable, with a region of instability near the imaginary axis that grows with order.<sup>[3](https://sundials.readthedocs.io/en/v7.1.0/cvode/Mathematics_link.html)</sup> Because only orders 1 and 2 are L-stable, BDF loses effectiveness at high orders on more than semi-stiff problems and must shrink the time step.<sup>[18](https://docs.sciml.ai/DiffEqDocs/stable/api/ordinarydiffeq/implicit/BDF/)</sup> Radau IIA methods, implicit Runge-Kutta schemes that are both A-stable and L-stable, are a leading alternative; Hairer and Wanner's RADAU implementation with a variable order strategy is presented as an alternative to BDF codes.<sup>[19](https://www.sciencedirect.com/science/article/pii/S037704279900134X)</sup><sup> • </sup><sup>[20](https://doi.org/10.1016/s0377-0427%2899%2900134-x)</sup>\n\n## References\n\n1. [Backward differentiation formulas - Scholarpedia](http://www.scholarpedia.org/article/Backward_differentiation_formulas)\n2. [C. F. Curtiss, J. O. Hirschfelder (1952). Integration of Stiff Equations. Proceedings of the National Academy of Sciences.](https://doi.org/10.1073/pnas.38.3.235)\n3. [CVODE Mathematical Considerations (SUNDIALS documentation)](https://sundials.readthedocs.io/en/v7.1.0/cvode/Mathematics_link.html)\n4. [Description of DASSL: A Differential/Algebraic System Solver (Petzold)](https://www.osti.gov/servlets/purl/5882821)\n5. [The MATLAB ODE Suite (Shampine & Reichelt)](http://bicycle.tudelft.nl/schwab/TAM674/SR97.pdf)\n6. [BDFOdeSolver - SOFA Documentation](https://sofa-framework.github.io/doc/components/odesolver/backward/bdfodesolver/)\n7. [Maximum angles of A(ϑ)-stability of backward difference formulae (Akrivis & Katsoprinakis)](https://www.cse.uoi.gr/~akrivis/AK2a.pdf)\n8. [A uniform quantitative stiff stability estimate for BDF schemes (Opuscula Mathematica)](https://www.opuscula.agh.edu.pl/vol26/2/art/opuscula_math_2615.pdf)\n9. [Analyzing the absolute stability region of implicit methods of solving ODEs](https://arxiv.org/html/1101.4434)\n10. [Avoiding instability in BDF methods (Stewart, J. Comput. Appl. Math.)](https://stewart.sdsu.edu/mypubs/StewartJCAM_Avoiding_1-s2.0-037704279090017T-main.pdf)\n11. [Chapter 10: BDF and Multistep Methods (course notes, U. Saskatchewan)](https://www.cs.usask.ca/~spiteri/M314/notes/AP/chap10.pdf)\n12. [Hairer, Numerical analysis lecture notes (pcam-ode), Section 4.1 BDF methods](https://unige.ch/~hairer/preprints/pcam-ode.pdf)\n13. [C. W. Gear (1971). Algorithm 407: DIFSUB for solution of ordinary differential equations [D2]. Communications of the ACM.](https://doi.org/10.1145/362566.362573)\n14. [IMEX BDF methods (OrdinaryDiffEq.jl documentation)](https://github.com/SciML/OrdinaryDiffEq.jl/blob/master/docs/src/imex/IMEXBDF.md)\n15. [A model for stability of the semi-implicit backward differentiation formulas (Journal of Computational and Applied Mathematics, 1990)](https://doi.org/10.1016/0377-0427%2890%2990050-a)\n16. [tfp.substrates.jax.math.ode.BDF | TensorFlow Probability](https://www.tensorflow.org/probability/api_docs/python/tfp/substrates/jax/math/ode/BDF)\n17. [Differences Between Methods for Solving Stiff ODEs - Stochastic Lifestyle (Christopher Rackauckas)](https://www.stochasticlifestyle.com/differences-between-methods-for-solving-stiff-odes/)\n18. [OrdinaryDiffEqBDF · DifferentialEquations.jl](https://docs.sciml.ai/DiffEqDocs/stable/api/ordinarydiffeq/implicit/BDF/)\n19. [Stiff differential equations solved by Radau methods (Hairer & Wanner, J. Comput. Appl. Math.)](https://www.sciencedirect.com/science/article/pii/S037704279900134X)\n20. [Stiff differential equations solved by Radau methods (Journal of Computational and Applied Mathematics, 1999)](https://doi.org/10.1016/s0377-0427%2899%2900134-x)\n21. [Organization link (sundials.readthedocs.io)](https://sundials.readthedocs.io/en/v7.5.0/cvode/Organization_link.html)\n\n---\n*Topic: Encyclopedia › Physical world and mathematics › Mathematics and statistics › Analysis and mathematical models › Numerical analysis and computation › Time integration methods*\n\n*Initially written Sep 29, 2026 · Reviewed: Sep 30, 2026 · Edited: Sep 30, 2026 · Last review: Sep 30, 2026*\n\n*Copyright 2026 EdgeChat AI, a subsidiary of Biostate AI.*\n\nLicense: Edgepedia Community License 1.0, https://www.edgepedia.org/edgepedia/license\n",
 "same_as": [],
 "url": "https://www.edgepedia.org/backward-differentiation-formula",
 "markdown_url": "https://www.edgepedia.org/backward-differentiation-formula.md",
 "license": {
  "name": "Edgepedia Community License 1.0",
  "url": "https://www.edgepedia.org/edgepedia/license",
  "summary": "Free with credit, commercial use included. AI training is open to everyone. For other uses, organizations over USD 100M in revenue or 100M monthly users license separately.",
  "spdx": "LicenseRef-Edgepedia-Community-1.0"
 },
 "credit": "\"Backward differentiation formula\", Edgepedia (EdgeChat), https://www.edgepedia.org/backward-differentiation-formula. Edgepedia Community License 1.0.",
 "credit_md": "\"[Backward differentiation formula](https://www.edgepedia.org/backward-differentiation-formula)\", Edgepedia (EdgeChat), [https://www.edgepedia.org/backward-differentiation-formula](https://www.edgepedia.org/backward-differentiation-formula). [Edgepedia Community License 1.0](https://www.edgepedia.org/edgepedia/license).",
 "credit_html": "\"<a href=\"https://www.edgepedia.org/backward-differentiation-formula\">Backward differentiation formula</a>\", Edgepedia (EdgeChat), <a href=\"https://www.edgepedia.org/backward-differentiation-formula\">https://www.edgepedia.org/backward-differentiation-formula</a>. <a href=\"https://www.edgepedia.org/edgepedia/license\">Edgepedia Community License 1.0</a>.",
 "speakable": "The backward differentiation formula is a family of implicit linear multistep methods for stiff ordinary differential equations, first used in Curtiss and Hirschfelder's 1952 paper."
}
