Gauss Quadrature Rules for Arbitrary Weights

ARBITRARY_WEIGHT_RULE is a Mathematica package which accepts a formula for an arbitrary (but nonnegative) weight function over an interval, and determines the points and weights of a corresponding Gaussian quadrature rule, by Fukuda, Katsuya, Alt and Matveenko.

The integral to be approximated has the form

If = Integral ( a < x z< b ) f(z(x)) w(x) dx
where a is allowed to be -oo, and b is allowed to be +oo. The function z(x) is a monotonic (that is, invertible) function of x introduced for convenience. The weight function w(x) is assumed to be positive everywhere within the range, except perhaps for isolated points where it may be zero.

A Gauss quadrature rule Q of order n is a set of points xi and weights wi which approximate the integral If by

If approx Qf = Sum ( 1 <= i <= n ) wi f(z(xi))
with the property that the approximation is exact in cases where f(z(x)) is a polynomial of degree 2*n-1 or less.

The Mathematica program is not interactive. To be used, it requires the user to modify the text of the program to specify certain quantities.

Quantities the user must specify include:

Other quantities which the user may wish to change, but which are already set to reasonable values, include:


The computer code and data files described and made available on this web page are distributed under the GNU LGPL license.

Related Data and Programs:

TOMS655 a FORTRAN77 library which computes the weights for interpolatory quadrature rule;
this library is commonly called IQPACK;
this is ACM TOMS algorithm 655.

TOMS726 a FORTRAN77 library which computes recursion coefficients for orthogonal polynomials, and the abscissa and weights for related quadrature rules;
this library is commonly called ORTHPOL;
this is ACM TOMS algorithm 726.


  1. Hiroshi Fukuda, Mitsuaki Katsuya, Erwin Alt, Alexander Matveenko,
    Gaussian quadrature rule for arbitrary weight function and interval,
    Computer Physics Communications,
    Volume 167, Number 2, 15 April 2005, pages 143-150.

Source Code:

Examples and Tests:

You can go up one level to the Mathematica packages and notebooks.

Last revised on 10 November 2010.