LATTICE_RULE
Lattice Rules for Multiple Integration


LATTICE_RULE is a MATLAB library which approximates integrals in multiple dimensions using lattice rules.

The lattice rules are defined on the unit square, or in higher dimensions, on the unit hypercube.

Lattice rules are more suitable to integrands that are periodic, with period 1, in all variables. However, there are techniques that may be used when the integrand does not satisfy this requirement.

The performance of a lattice rule depends heavily on the choice of the generator vectors. Once the spatial dimension and the number of points have been chosen, there are techniques for finding a good generator vector.

The simplest lattice rules are called "rank 1" rules, and use a lattice generated by multiples of a single generator vector. More elaborate rules can be generated by using more generator vectors, up to the maximum, which is the dimension of the space.

Licensing:

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

Languages:

LATTICE_RULE is available in a C++ version and a FORTRAN90 version and a MATLAB version.

Related Programs:

FAURE, a MATLAB library which computes elements of a Faure quasirandom sequence.

GRID, a MATLAB library which computes elements of a grid dataset.

HALTON, a MATLAB library which computes elements of a Halton quasirandom sequence.

HAMMERSLEY, a MATLAB library which computes elements of a Hammersley quasirandom sequence.

HEX_GRID, a MATLAB library which computes elements of a hexagonal grid dataset.

HEX_GRID_ANGLE, a MATLAB library which computes elements of an angled hexagonal grid dataset.

IHS, a MATLAB library which computes elements of an improved distributed Latin hypercube dataset.

LATIN_CENTER, a MATLAB library which computes elements of a Latin Hypercube dataset, choosing center points.

LATIN_EDGE, a MATLAB library which computes elements of a Latin Hypercube dataset, choosing edge points.

LATIN_RANDOM, a MATLAB library which computes elements of a Latin Hypercube dataset, choosing points at random.

LCVT, a MATLAB library which computes a latinized Centroidal Voronoi Tessellation.

NIEDERREITER2, a MATLAB library which computes elements of a Niederreiter quasirandom sequence with base 2.

NINT_EXACTNESS, a MATLAB program which measures the polynomial exactness of a multidimensional quadrature rule.

NINTLIB, a MATLAB library which contains routines for numerical estimation of integrals in multiple dimensions.

POWER_RULE, a MATLAB program which constructs a power rule, that is, a product quadrature rule from identical 1D factor rules.

QUADRATURE_RULES, a dataset directory which contains sets of files that define quadrature rules over various 1D intervals or multidimensional hypercubes.

QUADRULE, a MATLAB library which defines a number of quadrature rules.

SOBOL, a MATLAB library which computes elements of a Sobol quasirandom sequence.

STROUD, a MATLAB library which contains quadrature rules for a variety of unusual areas, surfaces and volumes in 2D, 3D and N-dimensions.

TEST_NINT, a MATLAB library which defines test functions for multi-dimensional quadrature routines.

UNIFORM, a MATLAB library which computes elements of a uniform pseudorandom sequence.

Reference:

  1. Seymour Haber,
    Parameters for Integrating Periodic Functions of Several Variables,
    Mathematics of Computation,
    Volume 41, Number 163, July 1983, pages 115-129.
  2. Albert Nijenhuis, Herbert Wilf,
    Combinatorial Algorithms for Computers and Calculators,
    Second Edition,
    Academic Press, 1978,
    ISBN: 0-12-519260-6,
    LC: QA164.N54.
  3. Ian Sloan, Stephen Joe,
    Lattice Methods for Multiple Integration,
    Oxford University Press, 1994,
    ISBN: 0198534728,
    LC: QA311.S56

Source Code:

Examples and Tests:

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


Last revised on 19 November 2008.