exactness
exactness,
a MATLAB code which
investigates the exactness of quadrature rules that estimate the
integral of a function with a density, such as 1, exp(x) or
exp(x^2), over an interval such as [1,+1], [0,+oo) or (oo,+oo).
A 1D quadrature rule estimates I(f), the integral of a function f(x)
over an interval [a,b] with density rho(x):
I(f) = integral ( a < x < b ) f(x) rho(x) dx
by a npoint quadrature rule of weights w and points x:
Q(f) = sum ( 1 <= i <= n ) w(i) f(x(i))
Most quadrature rules come in a family of various sizes. A quadrature
rule of size n is said to have exactness p if it is true that the
quadrature estimate is exactly equal to the exact integral for every
monomial (and hence, polynomial) whose degree is p or less.
This program allows the user to specify a quadrature rule, a size n,
and a degree p_max. It then computes and compares the exact integral
and quadrature estimate for monomials of degree 0 through p_max, so
that the user can analyze the results.
Common densities include:

Chebyshev Type 1 density 1/sqrt(1x^2), over [1,+1],

Chebyshev Type 2 density sqrt(1x^2), over [1,+1].

Gegenbauer density (1x^2)^(lambda1/2), over [1,+1].

Hermite (physicist) density 1/sqrt(pi) exp(x^2), over (oo,+oo).

Hermite (probabilist) density 1/sqrt(2*pi) exp(x^2/2), over (oo,+oo).

Hermite (unit) density 1, over (oo,+oo).

Jacobi density (1x)^alpha*(1+x)^beta, over [1,+1].

Laguerre (standard) density exp(1), over [0,+oo).

Laguerre (unit) density 1, over [0,+oo).

Legendre density 1, over [1,+1].
Common quadrature rules include:

ClenshawCurtis quadrature for Legendre density,
exactness = n  1;

Fejer Type 1 quadrature for Legendre density,
exactness = n  1;

Fejer Type 2 quadrature for Legendre density,
exactness = n  1;

GaussChebyshev Type 1 quadrature, exactness = 2 * n  1;

GaussChebyshev Type 2 quadrature, exactness = 2 * n  1;

GaussGegenbauer quadrature, exactness = 2 * n  1;

GaussHermite quadrature, exactness = 2 * n  1;

GaussLaguerre quadrature, exactness = 2 * n  1;

GaussLegendre quadrature, exactness = 2 * n  1;
Licensing:
The computer code and data files made available on this
web page are distributed under
the MIT license
Languages:
exactness is available in
a C version and
a C++ version and
a FORTRAN90 version and
a MATLAB version and
a Python version.
Related Data and Programs:
cube_exactness,
a MATLAB code which
investigates the polynomial exactness of quadrature rules
over the interior of a cube in 3D.
exactness_test
hermite_exactness,
a MATLAB code which
tests the monomial exactness of GaussHermite quadrature rules
for estimating the integral of a function with density exp(x^2)
over the interval (oo,+oo).
laguerre_exactness,
a MATLAB code which
tests the monomial exactness of GaussLaguerre quadrature rules
for estimating the integral of a function with density exp(x)
over the interval [0,+oo).
legendre_exactness,
a MATLAB code which
tests the monomial exactness of GaussLegendre quadrature rules
for estimating the integral of a function with density 1
over the interval [1,+1].
square_exactness,
a MATLAB code which
investigates the exactness of 2D quadrature rules that estimate the
integral of a function f(x,y) over a 2D domain.
Reference:

Philip Davis, Philip Rabinowitz,
Methods of Numerical Integration,
Second Edition,
Dover, 2007,
ISBN: 0486453391,
LC: QA299.3.D28.
Source Code:

chebyshev1_exactness.m,
monomial exactness for the Chebyshev1 integral.

chebyshev1_integral.m,
evaluates a monomial Chebyshev1 integral.

chebyshev1_set.m,
sets a Chebyshev Type 1 rule.

chebyshev2_exactness.m,
monomial exactness for the Chebyshev2 integral.

chebyshev2_integral.m,
evaluates a monomial Chebyshev2 integral.

chebyshev2_set.m,
sets a Chebyshev Type 2 rule.

chebyshev3_set.m,
sets a Chebyshev Type 3 rule.

clenshaw_curtis_set.m,
sets a ClenshawCurtis rule.

fejer1_set.m,
sets a Fejer type 1 rule.

fejer2_set.m,
sets a Fejer type 2 rule.

gegenbauer_exactness.m,
monomial exactness for the Gegenbauer integral.

gegenbauer_integral.m,
evaluates a monomial Gegenbauer integral.

hermite_exactness.m,
monomial exactness for the Hermite integral.

hermite_integral.m,
evaluates a monomial Hermite integral.

hermite_set.m,
sets a GaussHermite rule for density exp(x^2).

hermite_1_set.m,
sets a GaussHermite rule for density 1.

laguerre_exactness.m,
monomial exactness for the Laguerre integral.

laguerre_integral.m,
evaluates a monomial Laguerre integral.

laguerre_set.m,
sets a GaussLaguerre rule for density exp(x).

laguerre_1_set.m,
sets a GaussLaguerre rule for density 1.

legendre_exactness.m,
monomial exactness for the Legendre integral.

legendre_integral.m,
evaluates a monomial Legendre integral.

legendre_set.m,
sets a GaussLegendre rule for density 1.

r8_factorial2.m,
evaluates the double factorial function.
Last revised on 12 January 2021.