Gauss–Laguerre quadrature

From testwiki
Jump to navigation Jump to search

In numerical analysis Gauss–Laguerre quadrature (named after Carl Friedrich Gauss and Edmond Laguerre) is an extension of the Gaussian quadrature method for approximating the value of integrals of the following kind:

0+exf(x)dx.

In this case

0+exf(x)dxi=1nwif(xi)

where xi is the i-th root of Laguerre polynomial Ln(x) and the weight wi is given by[1]

wi=xi(n+1)2[Ln+1(xi)]2.

The following Python code with the SymPy library will allow for calculation of the values of

xi

and

wi

to 20 digits of precision:

from sympy import *

def lag_weights_roots(n):
    x = Symbol("x")
    roots = Poly(laguerre(n, x)).all_roots()
    x_i = [rt.evalf(20) for rt in roots]
    w_i = [(rt / ((n + 1) * laguerre(n + 1, rt)) ** 2).evalf(20) for rt in roots]
    return x_i, w_i

print(lag_weights_roots(5))

For more general functions

To integrate the function f we apply the following transformation

0f(x)dx=0f(x)exexdx=0g(x)exdx

where g(x):=exf(x). For the last integral one then uses Gauss-Laguerre quadrature. Note, that while this approach works from an analytical perspective, it is not always numerically stable.

Generalized Gauss–Laguerre quadrature

More generally, one can also consider integrands that have a known xα power-law singularity at x=0, for some real number α>1, leading to integrals of the form:

0+xαexf(x)dx.

In this case, the weights are given[2] in terms of the generalized Laguerre polynomials:

wi=Γ(n+α+1)xin!(n+1)2[Ln+1(α)(xi)]2,

where xi are the roots of Ln(α).

This allows one to efficiently evaluate such integrals for polynomial or smooth f(x) even when α is not an integer.[3]

References

Template:Reflist

Further reading

Template:Numerical integration

  1. Equation 25.4.45 in Template:Cite book 10th reprint with corrections.
  2. Weisstein, Eric W., "Laguerre-Gauss Quadrature" From MathWorld--A Wolfram Web Resource, Accessed March 9, 2020
  3. Template:Cite journal