Numerical integration

In numerical analysis, numerical integration constitutes a broad family of algorithms for calculating the numerical value of a definite integral, and by extension, the term is also sometimes used to describe numerical algorithms for solving differential equations. The term quadrature is more or less a synonym for numerical integration, especially as applied to one-dimensional integrals. Two-dimensional integration is sometimes described as cubature, although this term is much less frequently used and the meaning of quadrature is understood for higher dimensional integration as well.

The basic problem considered by numerical integration is to compute an approximate solution to a definite integral:

[itex]\int_a^b f(x)\, dx[itex]

This problem can also be stated as an initial value problem for an ordinary differential equation, as follows.

[itex] y'(x) = f(x), \quad y(a) = 0 [itex]

Finding y(b) is equivalent to computing the integral. Methods developed for ordinary differential equations, such as the Runge-Kutta method, can be applied to the restated problem. In the remainder of this article, we shall discuss methods developed specifically for the problem stated as a definite integral.

 Contents

Reasons for numerical integration

There are several reasons for carrying out numerical integration. The integrand f may be known only at certain points, such as obtained by sampling. Some embedded systems and other computer applications may need numerical integration for this reason.

A formula for the integrand may be known, but it may be difficult or impossible to find an antiderivative. An example of such an integrand is exp(-t2).

It may be possible to find an antiderivative symbolically, but it may be easier to compute a numerical approximation than to compute the antiderivative. That may be the case if the antiderivative is given as an infinite series or product, or if its evaluation requires a special function which is not available.

Methods for one-dimensional integrals

Numerical integration methods can generally be described as combining evaluations of the integrand to get an approximation to the integral. An important part of the analysis of any numerical integration method is to study the behavior of the approximation error as a function of the number of integrand evaluations. A method which yields a small error for a small number of evaluations is usually considered superior. Reducing the number of evaluations of the integrand reduces the number of arithmetic operations involved, and therefore reduces the total round-off error. Also, each evaluation takes time, and the integrand may be arbitrarily complicated.

It should be noted, however, that a 'brute force' kind of numerical integration can always be done, in a very simplistic way, by evaluating the integrand with very small increments.

Quadrature rules based on interpolating functions

A large class of quadrature rules can be derived by constructing interpolating functions which are easy to integrate. Typically these interpolating functions are polynomials.

The simplest method of this type is to let the interpolating function be a constant function (a polynomial of order zero) which passes through the point ((a+b)/2, f((a+b)/2)). This is called the midpoint rule or rectangle rule.

[itex]\int_a^b f(x)\,dx \approx (b-a) \, f\left(\frac{a+b}{2}\right)[itex]

The interpolating function may be an affine function (a polynomial of degree 1) which passes through the points (a, f(a)) and (b, f(b)). This is called the trapezoidal rule.

[itex]\int_a^b f(x)\,dx \approx (b-a) \, \frac{f(a) + f(b)}{2}[itex]

For either one of these rules, we can make a more accurate approximation by breaking up the interval [a, b] into some number n of subintervals, computing an approximation for each subinterval, then adding up all the results. This is called a composite rule, extended rule, or iterated rule. For example, the composite trapezoidal rule can be stated as

[itex]\int_a^b f(x)\,dx \approx \frac{b-a}{n} \left( {f(a) + f(b) \over 2} + \sum_{k=1}^{n-1} f \left( a+k \frac{b-a}{n} \right) \right)[itex]

where the subintervals have the form [k h, (k+1) h], with h = (b-a)/n and k = 0, 1, 2, ..., n-1.

Interpolation with polynomials evaluated at equally-spaced points in [a, b] yields the Newton-Cotes formulas, of which the rectangle rule and the trapezoidal rule are examples. Simpson's rule, which is based on a polynomial of order 2, is also a Newton-Cotes formula.

If we allow the intervals between interpolation points to vary, we find another group of quadrature formulas, called Gaussian quadrature formulas. A Gaussian quadrature rule is typically more accurate than a Newton-Cotes rule which requires the same number of function evaluations, if the integrand is smooth (i.e., if it has many derivatives.)

If f does not have many derivatives at all points, or if the derivatives become large, then Gaussian quadrature is often insufficient. In this case, an algorithm similar to the following will perform better:

   // This algorithm calculates the definite integral of a function
// from 0 to 1, adaptively, by choosing smaller steps near
// problematic points.
// Set initial_h to the initial step size.

   x:=0
h:=initial_h
accumulator:=0
WHILE x<1.0 DO
IF x+h>1.0 THEN
h=1.0-x
END IF
IF error from quadrature over [x,x+h] for f is too large THEN
Make h smaller
ELSE
accumulator:=accumulator + quadrature of f over [x,x+h]
x:=x+h
IF error from quadrature over [x,x+h] is very small THEN
Make h larger
END IF
END IF
END WHILE
RETURN accumulator


Some details of the algorithm require careful thought. For many cases, estimating the error from quadrature over an interval for a function f isn't obvious. One popular solution is to use two different rules of quadrature, and use their difference as an estimate of the error from quadrature. The other problem is deciding what "too large" or "very small" signify. A possible criterion for "too large" is that the quadrature error should not be larger than th where t, a real number, is the tolerance we wish to set for global error. Then again, if h is already tiny, it may not be worthwhile to make it even smaller even if the quadrature error is apparently large. This type of error analysis is usually called "a posteriori" since we compute the error after having computed the approximation.

Heuristics for adaptive quadrature are discussed by Forsythe et al. (Section 5.4).

Extrapolation methods

The accuracy of a quadrature rule of the Newton-Cotes type is generally a function of the number of evaluation points. The result is usually more accurate as number of evaluation points increases, or, equivalently, as the width of the step size between the points decreases. It is natural to ask what the result would be if the step size were allowed to approach zero. This can be answered by extrapolating the result from two or more nonzero step sizes (see Richardson extrapolation). The extrapolation function may be a polynomial or rational function. Extrapolation methods are described in more detail by Stoer and Bulirsch (Section 3.4).

Conservative (a priori) error estimation

Let f have a bounded first derivative over [a,b]. The mean value theorem for f, where [itex]x < b[itex], gives

[itex](x - a) f'(y_x) = f(x) - f(a)\,[itex]

for some yx in [a,x] depending on x. If we integrate in x from a to b on both sides and the take absolute values, we obtain

[itex]\left| \int_a^b f(x)\,dx - (b - a) f(a) \right|
 = \left| \int_a^b (x - a) f'(y_x)\, dx \right|[itex]


We can further approximate the integral on the right-hand side by bringing the absolute value into the integrand, and replacing the term in f' by an upper bound:

[itex]\left| \int_a^b f(x)\,dx - (b - a) f(a) \right| \leq {(b - a)^2 \over 2} \sup_{a \leq x \leq b} \left| f'(x) \right|[itex] (**)

(See supremum.) Hence, if we approximate the integral ∫abf(x)dx by the quadrature rule (b-a)f(a) our error is no greater than the right hand side of (**). We can convert this into an error analysis for the Riemann sum (*), giving an upper bound of

[itex]{n^{-1} \over 2} \sup_{0 \leq x \leq 1} \left| f'(x) \right|[itex]

for the error term of that particular approximation. (Note that this is precisely the error we calculated for the example [itex]f(x) = x[itex].) Using more derivatives, and by tweaking the quadrature, we can do a similar error analysis using a Taylor series (using a partial sum with remainder term) for f. This error analysis gives a strict upper bound on the error, if the derivatives of f are available.

This integration method can be combined with interval arithmetic to produce computer proofs and verified calculations.

Multidimensional integrals

The quadrature rules discussed so far are all designed to compute one-dimensional integrals. To compute integrals in multiple dimensions, one approach is to phrase the multiple integral as repeated one-dimensional integrals by appealing to Fubini's theorem. This approach requires the function evaluations to grow exponentially as the number of dimensions increases. Two methods are known to overcome this so-called curse of dimension.

Monte Carlo

Monte Carlo methods and quasi-Monte Carlo methods are easy to apply to multi-dimensional integrals, and may yield greater accuracy for the same number of function evaluations than repeated integrations using one-dimensional methods.

A large class of useful Monte Carlo methods are the so-called Markov chain Monte Carlo algorithms, which include the Metropolis-Hastings algorithm and Gibbs sampling.

Sparse grids

Sparse grids were originally developed by Smolyak for the quadrature of high dimensional functions. The method is always based on a one dimensional quadrature rule, but performs a more sophisticated combination of univariate results.

Software for numerical integration

Numerical integration is one of the most intensively studied problems in numerical analysis. Of the many software implementations we list a few here.

• QUADPACK (part of SLATEC): description [1] (http://www.netlib.org/slatec/src/qpdoc.f), source code [2] (http://www.netlib.org/slatec/src). QUADPACK is a collection of algorithms, in Fortran, for numerical integration based on Gaussian quadrature.
• GSL (http://www.gnu.org/software/gsl/): The GNU Scientific Library (GSL) is a numerical library written in C which provides a wide range of mathematical routines, like Monte Carlo integration.

Numerical integration algorithms are found in GAMS class H2 (http://gams.nist.gov/serve.cgi/Class/H2).

References

• George E. Forsythe, Michael A. Malcolm, and Cleve B. Moler. Computer Methods for Mathematical Computations. Englewood Cliffs, NJ: Prentice-Hall, 1977. (See Chapter 5.)
• William H. Press, Brian P. Flannery, Saul A. Teukolsky, William T. Vetterling. Numerical Recipes in C. Cambridge, UK: Cambridge University Press, 1988. (See Chapter 4.)
• Josef Stoer and Roland Bulirsch. Introduction to Numerical Analysis. New York: Springer-Verlag, 1980. (See Chapter 3.)de:numerische Quadratur

• Art and Cultures
• Countries of the World (http://www.academickids.com/encyclopedia/index.php/Countries)
• Space and Astronomy