DISK01_RULE
Quadrature Rules for the Unit Disk


DISK01_RULE is a Python library which computes a quadrature rule over the interior of the unit disk in 2D.

The user specifies values NT and NR, where NT is the number of equally spaced angles, and NR controls the number of radial points. The program returns vectors T(1:NT), R(1:NR) and W(1:NR), which define the rule Q(f).

To use a rule that is equally powerful in R and T, typically, set NT = 2 * NR.

Given NT and NR, and the vectors T, R and W, the integral I(f) of a function f(x,y) is estimated by Q(f) as follows:

        s = 0.0
        for j in range ( 0, nr ):
          for i in range ( 0, nt ):
            x = r[j] * np.cos ( t[i] )
            y = r[j] * np.sin ( t[i] )
            s = s + w[j] * f ( x, y )
        area = pi
        q = area * s
      

To approximate an integral over a circle with center (XC,YC) and radius RC:

        s = 0.0
        for j in range ( 0, nr ):
          for i in range ( 0, nt ):
            x = xc + rc * r[j] * np.cos ( t[i] )
            y = yc + rc * r[j] * np.sin ( t[i] )
            s = s + w[j] * f ( x, y )
        area = rc * rc * pi
        q = area * s
      

Licensing:

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

Languages:

DISK01_RULE is available in a C version and a C++ version and a FORTRAN77 version and a FORTRAN90 version and a MATLAB version and a Python version.

Related Data and Programs:

ALPERT_RULE, a Python library which can set up an Alpert quadrature rule for functions which are regular, log(x) singular, or 1/sqrt(x) singular.

DISK_RULE, a Python library which computes quadrature rules over the interior of the general disk in 2D, with radius RC and center (XC,YC).

QUADRULE, a Python library which defines quadrature rules for approximating an integral over a 1D domain.

TRUNCATED_NORMAL_RULE, a Python program which computes a quadrature rule for a normal probability density function (PDF), also called a Gaussian distribution, that has been truncated to [A,+oo), (-oo,B] or [A,B].

Reference:

  1. Philip Davis, Philip Rabinowitz,
    Methods of Numerical Integration,
    Second Edition,
    Dover, 2007,
    ISBN: 0486453391,
    LC: QA299.3.D28.
  2. Sylvan Elhay, Jaroslav Kautsky,
    Algorithm 655: IQPACK, FORTRAN Subroutines for the Weights of Interpolatory Quadrature,
    ACM Transactions on Mathematical Software,
    Volume 13, Number 4, December 1987, pages 399-415.

Source Code:

Examples and Tests:

You can go up one level to the Python source codes.


Last revised on 19 April 2016.