Math 2.0

Numerical analysis Ordinary differential equations Theorem

Bulirsch–Stoer algorithm

Builds on Initial value problemRichardson extrapolation

Statement

Let f ⁣:ℝ×ℝd→ℝdf \colon \R \times \R^d \to \R^d be infinitely differentiable, and consider the initial value problem y′=f(t,y)y' = f(t, y), y(t0)=y0y(t_0) = y_0. Fix a step H>0H > 0, an even integer nn, and put h=H/nh = H / n. Gragg's modified midpoint rule computes z0=y0,z1=z0+hf(t0,z0),zm+1=zm−1+2hf(t0+mh,zm)(1≤m≤n−1),z_0 = y_0, \qquad z_1 = z_0 + h f(t_0, z_0), \qquad z_{m+1} = z_{m-1} + 2 h f(t_0 + m h, z_m) \quad (1 \le m \le n - 1), and sets S(h)=znS(h) = z_n. Then S(h)S(h) has an asymptotic expansion in even powers of hh: y(t0+H)−S(h)=e1h2+e2h4+⋯+ekh2k+O(h2k+2)y(t_0 + H) - S(h) = e_1 h^2 + e_2 h^4 + \cdots + e_k h^{2k} + O(h^{2k+2}) for each k≥1k \ge 1, where the vectors eje_j do not depend on hh.

The Bulirsch–Stoer algorithm computes S(hi)S(h_i) for hi=H/nih_i = H / n_i with increasing even integers n1<n2<⋯n_1 < n_2 < \cdots. It extrapolates the values Ti,1=S(hi)T_{i,1} = S(h_i) to h=0h = 0 by polynomial (or rational) extrapolation in h2h^2. With polynomial extrapolation, the entry Tj,kT_{j,k} of the extrapolation table is a one-step method of order 2k2k in HH.

Remarks

The expansion in h2h^2 is due to Gragg, and it comes from the symmetry of the two-step midpoint rule. For general nn the expansion of znz_n also contains terms with the factor (−1)n(-1)^n. Taking nn even makes these factors equal to 11, so the coefficients eje_j are the same for all the hih_i. Richardson extrapolation in the variable h2h^2 then removes one even power of hh in each column of the table. For example, with n1=2n_1 = 2 and n2=4n_2 = 4, the value T2,2=S(h2)+S(h2)−S(h1)(n2/n1)2−1=4S(h2)−S(h1)3T_{2,2} = S(h_2) + \frac{S(h_2) - S(h_1)}{(n_2/n_1)^2 - 1} = \frac{4 S(h_2) - S(h_1)}{3} has local error O(H5)O(H^5), so it is a method of order 44. Bulirsch and Stoer used rational extrapolation, and Gragg also proposed a final smoothing step; the order statement is the same.

Going deeper

For a student

The algorithm is an extrapolation method: the order is raised by adding rows to the table, not by changing the base method. The difference between the last two diagonal entries of the table estimates the error. This estimate drives the choice of HH and of the number of rows, as in adaptive step size control. It works best for smooth, non-stiff problems with tight tolerances; for stiff problems one uses an extrapolated linearly implicit method instead.

Reading path

To understand this page from the ground up, read these 3 pages in order. The foundations come first.

Show the path as a graph
Each page uses the pages above it. The colour of the bar on a box shows how strong the evidence is, and the box also gives it as text. The list has the same pages.
  • no evidence level
  1. Initial value problem concept
  2. Richardson extrapolation concept
  3. Bulirsch–Stoer algorithm statement

Further reading

  1. Web https://en.wikipedia.org/wiki/Bulirsch%E2%80%93Stoer_algorithm
About this page
Tag2PJECK6ZGW
URIm2://2PJECK6ZGW
Kindstatement, theorem
WritingW0 stub
MSC65L06, 65L05
StatusThis copy of the site has no build data. Run m2 status 2PJECK6ZGW.
AboutRichardson extrapolation
UsesInitial value problem, Richardson extrapolation

Markdown · JSON · Edit on GitHub

What this page needs for W1

  • an inventory row: the row of the inventory that the node accounts for (0 of 1)
  • a source with a locator (0 of 1)

The writing levels say how complete the text of a page is. They do not measure its truth.

What links here

No page links to this page yet.