This module illustrates BDF (backward differentiation formula)
methods for numerically solving initial value problems for ordinary
differential equations. A numerical method for an ordinary
differential equation (ODE) generates an approximate solution
step-by-step in discrete increments across the interval of integration,
in effect producing a discrete sample of approximate values of the
solution function. BDF (backward differentiation formula) methods are
implicit linear multistep methods that depend on multiple previous
solution points to generate a new approximate solution point. In a BDF
method of order n, the solution is advanced at each step by
interpolating n previous solution points along with the as yet
unknown new solution point, differentiating that interpolant, and
requiring the derivative to match the ODE at the new point.
Specifically, for an ODE
The user begins by selecting a differential equation and a specific order BDF method from the menus provided. The last four differential equations in the menu match those in the stiffness module and illustrate how effective BDF methods can be even for stiff problems. A solution value for the selected ODE at an initial time is marked with a black dot, and the exact solution curve for the resulting initial value problem is drawn in black. Next the user selects the number of steps to be taken over the interval of integration, determining the primary step size used to solve the problem.
A BDF method of order greater than one requires multiple previous solution values, so some other method must be used to generate sufficiently many solution values for the desired method to become applicable. This module uses lower-order BDF methods to generate the necessary starting values for its higher-order methods. Since the accuracy of methods generally decreases along with the order, the step size is reduced by half for each decrease of one in the order. Starting with the first-order method and a correspondingly reduced step size, the next higher-order method (with doubled step size) is used as soon as there are enough solution points for it to become applicable, until the method of desired order and the primary step size are reached. Because of this starting procedure, the actual number of steps taken over the interval may exceed the selected number of steps. A red arrow indicates the specific BDF method that is being used at each step.
Each BDF method step is presented as a three-stage process. Each stage is executed by clicking either Next or the currently highlighted stage:
Reference: Michael T. Heath, Scientific Computing, An Introductory Survey, 2nd edition, McGraw-Hill, New York, 2002. See Section 9.3.8.
Developers: Evan VanderZee and Michael Heath