patterson_rule


patterson_rule, a Fortran90 code which returns the points and weights of a 1D Gauss-Patterson quadrature rule of order 1, 3, 7, 15, 31, 63, 127, 255 or 511, based on interaction with the user.

The rule is written to three files for easy use as input to other programs.

The Gauss-Patterson quadrature is a nested family which begins with the Gauss-Legendre rules of orders 1 and 3, and then succesively inserts one new abscissa in each subinterval. Thus, after the second rule, the Gauss-Patterson rules do not have the super-high precision of the Gauss-Legendre rules. They trade this precision in exchange for the advantages of nestedness. This means that Gauss-Patterson rules are only available for orders of 1, 3, 7, 15, 31, 63, 127, 255 or 511.

The standard Gauss-Patterson quadrature rule is used as follows:

        Integral ( A <= x <= B ) f(x) dx
      
is to be approximated by
        Sum ( 1 <= i <= order ) w(i) * f(x(i))
      

The polynomial precision of a Gauss-Patterson rule can be checked numerically by the INT_EXACTNESS_LEGENDRE program. We should expect
IndexOrderFree+FixedExpected PrecisionActual Precision
011 + 02*1+0-1=11
133 + 02*3+0-1=55
274 + 32*4+3-1=1010 + 1 = 11
3158 + 72*8+7-1=2222 + 1 = 23
43116 + 152*16+15-1=4646 + 1 = 47
56332 + 312*32+31-1=9494 + 1 = 95
612764 + 632*64+63-1=190190 + 1 = 191
7255128 + 1272*128+127-1=382382 + 1 = 383
8511256 + 2552*256+255-1=766766 + 1 = 767
where the extra 1 degree of precision comes about because the rules are symmetric, and can integrate any odd monomial exactly. Thus, after the first rule, the precision is 3*2^index - 1.

Usage:

patterson_rule order a b filename
where

Languages:

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

Licensing:

The information on this web page is distributed under the MIT license.

Related Data and Programs:

patterson_rule_test

f90_rule, a Fortran90 code which computes a quadrature rule which estimates the integral of a function f(x), which might be defined over a one dimensional region (a line) or more complex shapes such as a circle, a triangle, a quadrilateral, a polygon, or a higher dimensional region, and which might include an associated weight function w(x).

Reference:

  1. Milton Abramowitz, Irene Stegun,
    Handbook of Mathematical Functions,
    National Bureau of Standards, 1964,
    ISBN: 0-486-61272-4,
    LC: QA47.A34.
  2. Philip Davis, Philip Rabinowitz,
    Methods of Numerical Integration,
    Second Edition,
    Dover, 2007,
    ISBN: 0486453391,
    LC: QA299.3.D28.
  3. Arthur Stroud, Don Secrest,
    Gaussian Quadrature Formulas,
    Prentice Hall, 1966,
    LC: QA299.4G3S7.

Source Code:


Last revised on 06 August 2020.