### Description

Calculate nodes and weights for Gaussian quadrature.

### 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.

Gordon Smyth

### 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.

`gauss.quad.prob`, `integrate`
```out <- gauss.quad(10,"laguerre",alpha=5)