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:
In this case
where xi is the i-th root of Laguerre polynomial Ln(x) and the weight wi is given by [1]
The following Python code with the SymPy library will allow for calculation of the values of and 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))
To integrate the function we apply the following transformation
where . 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.
More generally, one can also consider integrands that have a known power-law singularity at x=0, for some real number , leading to integrals of the form:
In this case, the weights are given [2] in terms of the generalized Laguerre polynomials:
where are the roots of .
This allows one to efficiently evaluate such integrals for polynomial or smooth f(x) even when α is not an integer. [3]
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:
In this case
where xi is the i-th root of Laguerre polynomial Ln(x) and the weight wi is given by [1]
The following Python code with the SymPy library will allow for calculation of the values of and 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))
To integrate the function we apply the following transformation
where . 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.
More generally, one can also consider integrands that have a known power-law singularity at x=0, for some real number , leading to integrals of the form:
In this case, the weights are given [2] in terms of the generalized Laguerre polynomials:
where are the roots of .
This allows one to efficiently evaluate such integrals for polynomial or smooth f(x) even when α is not an integer. [3]