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 n-point 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(1-x^2), over [-1,+1],
        
 
        - 
          Chebyshev Type 2 density sqrt(1-x^2), over [-1,+1].
        
 
        - 
          Gegenbauer density (1-x^2)^(lambda-1/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 (1-x)^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:
      
        - 
          Clenshaw-Curtis 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;
        
 
        - 
          Gauss-Chebyshev Type 1 quadrature, exactness = 2 * n - 1;
        
 
        - 
          Gauss-Chebyshev Type 2 quadrature, exactness = 2 * n - 1;
        
 
        - 
          Gauss-Gegenbauer quadrature, exactness = 2 * n - 1;
        
 
        - 
          Gauss-Hermite quadrature, exactness = 2 * n - 1;
        
 
        - 
          Gauss-Laguerre quadrature, exactness = 2 * n - 1;
        
 
        - 
          Gauss-Legendre quadrature, exactness = 2 * n - 1;
        
 
      
    
    
      Licensing:
    
    
      The information on this web page is 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
      an Octave version and
      a Python version.
    
    
      Related Data and Programs:
    
    
      
      exactness_test
    
    
      
      chebyshev1_exactness,
      a MATLAB code which
      tests the monomial exactness of Gauss-Chebyshev type 1 quadrature rules.
    
    
      
      chebyshev2_exactness,
      a MATLAB code which
      tests the monomial exactness of Gauss-Chebyshev type 2 quadrature rules.
    
    
      
      gegenbauer_exactness,
      a MATLAB code which
      tests the exactness of Gauss-Gegenbauer quadrature rules.
    
    
      
      gen_laguerre_exactness,
      a MATLAB code which
      tests the exactness of generalized Gauss-Laguerre quadrature rules.
    
    
      
      hermite_exactness,
      a MATLAB code which
      tests the exactness of Gauss-Hermite 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 Gauss-Laguerre 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 Gauss-Legendre quadrature rules 
      for estimating the integral of a function with density 1
      over the interval [-1,+1].
    
    
      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 Clenshaw-Curtis 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 Gauss-Hermite rule for density exp(-x^2).
        
 
        - 
          hermite_1_set.m,
          sets a Gauss-Hermite 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 Gauss-Laguerre rule for density exp(-x).
        
 
        - 
          laguerre_1_set.m,
          sets a Gauss-Laguerre 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 Gauss-Legendre rule for density 1.
        
 
        - 
          r8_factorial2.m,
          evaluates the double factorial function.
        
 
      
    
    
    
      Last revised on 12 January 2021.