Samiksha Jaiswal (Editor)

Richardson extrapolation

Updated on
Edit
Like
Comment
Share on FacebookTweet on TwitterShare on LinkedInShare on Reddit

In numerical analysis, Richardson extrapolation is a sequence acceleration method, used to improve the rate of convergence of a sequence. It is named after Lewis Fry Richardson, who introduced the technique in the early 20th century. In the words of Birkhoff and Rota, "its usefulness for practical computations can hardly be overestimated."

Contents

Practical applications of Richardson extrapolation include Romberg integration, which applies Richardson extrapolation to the trapezoid rule, and the Bulirsch–Stoer algorithm for solving ordinary differential equations.

Example of Richardson extrapolation

Suppose that we wish to approximate A , and we have a method A ( h ) that depends on a small parameter h , so that

A ( h ) = A + C h n + O ( h n + 1 )

Define a new method

R ( h , k ) := k n A ( h ) A ( k h ) k n 1

Then

R ( h , k ) = k n ( A + C h n + O ( h n + 1 ) ) ( A + C k n h n + O ( h n + 1 ) ) k n 1 = A + O ( h n + 1 ) .

R ( h , k ) is called the Richardson extrapolation of A(h), and has a higher-order error estimate O ( h n + 1 ) compared to A ( h ) .

Very often, it is much easier to obtain a given precision by using R(h) rather than A(h') with a much smaller h' , which can cause problems due to limited precision (rounding errors) and/or due to the increasing number of calculations needed (see examples below).

General formula

Let A(h) be an approximation of A that depends on a positive step size h with an error formula of the form

A A ( h ) = a 0 h k 0 + a 1 h k 1 + a 2 h k 2 +

where the ai are unknown constants and the ki are known constants such that hki > hki+1.

The exact value sought can be given by

A = A ( h ) + a 0 h k 0 + a 1 h k 1 + a 2 h k 2 +

which can be simplified with Big O notation to be

A = A ( h ) + a 0 h k 0 + O ( h k 1 ) .

Using the step sizes h and h / t for some t, the two formulas for A are:

A = A ( h ) + a 0 h k 0 + O ( h k 1 ) A = A ( h t ) + a 0 ( h t ) k 0 + O ( h k 1 ) .

Multiplying the second equation by tk0 and subtracting the first equation gives

( t k 0 1 ) A = t k 0 A ( h t ) A ( h ) + O ( h k 1 )

which can be solved for A to give

A = t k 0 A ( h t ) A ( h ) t k 0 1 + O ( h k 1 ) .

By this process, we have achieved a better approximation of A by subtracting the largest term in the error which was O(hk0). This process can be repeated to remove more error terms to get even better approximations.

A general recurrence relation beginning with A 0 = A ( h ) can be defined for the approximations by

A i + 1 ( h ) = t k i A i ( h t ) A i ( h ) t k i 1

where k i + 1 satisfies

A = A i + 1 ( h ) + O ( h k i + 1 ) .


The Richardson extrapolation can be considered as a linear sequence transformation.

Additionally, the general formula can be used to estimate k0 when neither its value nor A is known a priori. Such a technique can be useful for quantifying an unknown rate of convergence. Given approximations of A from three distinct step sizes h, h / t, and h / s, the exact relationship

A = t k 0 A ( h t ) A ( h ) t k 0 1 + O ( h k 1 ) = s k 0 A ( h s ) A ( h ) s k 0 1 + O ( h k 1 )

yields an approximate relationship

A ( h t ) + A ( h t ) A ( h ) t k 0 1 A ( h s ) + A ( h s ) A ( h ) s k 0 1

which can be solved numerically to estimate k0.

Example

Using Taylor's theorem about h=0,

f ( x + h ) = f ( x ) + f ( x ) h + f ( x ) 2 h 2 +

the derivative of f(x) is given by

f ( x ) = f ( x + h ) f ( x ) h f ( x ) 2 h + .

If the initial approximations of the derivative are chosen to be

A 0 ( h ) = f ( x + h ) f ( x ) h

then ki = i+1.

For t = 2, the first formula extrapolated for A would be

A = 2 A 0 ( h 2 ) A 0 ( h ) + O ( h 2 ) .

For the new approximation

A 1 ( h ) = 2 A 0 ( h 2 ) A 0 ( h )

we can extrapolate again to obtain

A = 4 A 1 ( h 2 ) A 1 ( h ) 3 + O ( h 3 ) .

Example pseudocode code for Richardson extrapolation

The following pseudocode in MATLAB style demonstrates Richardson extrapolation to help solve the ODE y ( t ) = y 2 , y ( 0 ) = 1 with the Trapezoidal method. In this example we halve the step size h each iteration and so in the discussion above we'd have that t = 2 . The error of the Trapezoidal method can be expressed in terms of odd powers so that the error over multiple steps can be expressed in even powers; this leads us to raise t to the second power and to take powers of 4 = 2 2 = t 2 in the pseudocode. We want to find the value of y ( 5 ) , which has the exact solution of 1 5 + 1 = 1 6 = 0.1666... since the exact solution of the ODE is y ( t ) = 1 1 + t . This pseudocode assumes that a function called Trapezoidal(f, tStart, tEnd, h, y0) exists which attempts to computes y(tEnd) by performing the trapezoidal method on the function f, with starting point y0 and tStart and step size h.

Note that starting with too small an initial step size can potentially introduce error into the final solution. Although there are methods designed to help pick the best initial step size, one option is to start with a large step size and then to allow the Richardson extrapolation to reduce the step size each iteration until the error reaches the desired tolerance.

References

Richardson extrapolation Wikipedia