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) dxwhere 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.
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.
You can go up one level to the Mathematica packages and notebooks.