# gauss.quad

##### Gaussian Quadrature

Calculate nodes and weights for Gaussian quadrature.

- Keywords
- math

##### Usage

`gauss.quad(n,kind="legendre",alpha=0,beta=0)`

##### Arguments

- n
- number of nodes and weights
- kind
- kind of Gaussian quadrature, one of
`"legendre"`

,`"chebyshev1"`

,`"chebyshev2"`

,`"hermite"`

,`"jacobi"`

or`"laguerre"`

- alpha
- parameter for Jacobi or Laguerre quadrature, must be greater than -1
- beta
- parameter for Jacobi quadrature, must be greater than -1

##### Details

The integral from `a`

to `b`

of `w(x)*f(x)`

is approximated by `sum(w*f(x))`

where `x`

is the vector of nodes and `w`

is the vector of weights. The approximation is exact if `f(x)`

is a polynomial of order no more than `2n+1`

.
The possible choices for `w(x)`

, `a`

and `b`

are as follows:
Legendre quadrature: `w(x)=1`

on `(-1,1)`

.
Chebyshev quadrature of the 1st kind: `w(x)=1/sqrt(1-x^2)`

on `(-1,1)`

.
Chebyshev quadrature of the 2nd kind: `w(x)=sqrt(1-x^2)`

on `(-1,1)`

.
Hermite quadrature: `w(x)=exp(-x^2)`

on `(-Inf,Inf)`

.
Jacobi quadrature: `w(x)=(1-x)^alpha*(1+x)^beta`

on `(-1,1)`

. Note that Chebyshev quadrature is a special case of this.
Laguerre quadrature: `w(x)=x^alpha*exp(-x)`

on `(0,Inf)`

.
The method is explained in Golub and Welsch (1969).

##### Value

- A list containing the components
nodes vector of values at which to evaluate the function weights vector of weights to give the function values

##### Note

This function solves a dense `n`

x`n`

eigenvector problem and is therefore slow for large `n`

.
It could be made far more efficient by using an eigenvector function designed to compute the leading terms of the eigenvectors for tridiagonal matrices.

##### References

Golub, G. H., and Welsch, J. H. (1969). Calculation of Gaussian
quadrature rules. *Mathematics of Computation* **23**, 221-230.
Golub, G. H. (1973). Some modified matrix eigenvalue problems.
*Siam Review* **15**, 318-334.
Stroud and Secrest (1966). *Gaussian Quadrature Formulas*. Prentice-
Hall, Englewood Cliffs, N.J.

##### See Also

##### Examples

```
out <- gauss.quad(10,"laguerre",alpha=5)
sum(out$weights * out$nodes) / gamma(6)
# mean of gamma distribution with alpha=6
```

*Documentation reproduced from package statmod, version 0.5, License: GPL version 2 or newer*