Nom

Overview — An overview of the Integration Test Problems toolbox.

Purpose

The goal of this toolbox is to provide integration test problems in order to test integration algorithms. Each problem is provided as a function which takes a real argument x in the unit hypercube and returns a real output y=f(x).

All functions are defined in the unit hypercube [0,1]^n where n is the number of variables. In this special case, the volume of integration is equal to unity. Hence, the expectation of f is equal to the integral of the function.

See the provided demonstrations for sample examples of this library.

Features

The current component has the following features :

  • provides 23 functions,

  • all functions are defined in the unit hypercube [0,1]^n where n is the number of variables,

  • provides the expectation and the variance of f when analytical formula is known,

  • function are vectorized, so that evaluating them is fast,

  • most functions can be used with arbitrary dimension.

Overview of functions

In this section, we describe the functions provided in this toolbox.

A complete description of the function, their behaviour and references using them is available in the "Integration Problems User's Manual" available in the doc directory of this toolbox.

The exact integral is known for all the functions in this collection. For the problems for which the variance is known, it is equal to unity. In fact, these function have been designed to produce a zero integral and a unity variance. Some problems, especially Genz's function, are associated with an unknown variance. In this cases, the expectation is still known, so that the function has been scaled to produce a zero integral. Users should be warned that, for the functions for which the variance is unknown, the variance might be large or small, which has an influence on the accuracy of a Monte-Carlo simulation (a function with a small variance may appear to lead to a better estimate of the integral).

In the following script, we use the intprb_getproblems function which displays the list of problems available in the module.

 
prbmax = intprb_getproblems();
intprb_getproblems(1:prbmax);
 

The previous script produces the following output.

 
No.    file            n    Name
---    ----            -    ----
#  1.  SUM             (10) Sum of X  
#  2.  SQSUM           (10) Sum of Squares
#  3.  SUMSQROOT       (10) Sum of Square Roots
#  4.  PRODONES        (10) Product of Signed Ones
#  5.  PRODEXP         (10) Product of Exponentials
#  6.  PRODCUB         (10) Product of Cubes
#  7.  PRODX           (10) Product of X
#  8.  SUMFIFJ         (10) Sum of fi fj
#  9.  SUMF1FJ         (10) Sum of f1 fj
# 10.  HELLEKALEK      (10) Hellekalek
# 11.  ROOSARNOLD1     (10) Roos and Arnold 1
# 12.  ROOSARNOLD2     (10) Roos and Arnold 2
# 13.  ROOSARNOLD3     (10) Roos and Arnold 3
# 14.  RST1            (10) Radovic, Sobol, Tichy (aj=1)
# 15.  RST2            (10) Radovic, Sobol, Tichy (aj=j)
# 16.  RST3            (10) Radovic, Sobol, Tichy (aj=j^2)
# 17.  SOBOLPROD       (10) Sobol Product
# 18.  OSCILL          (6)  Genz - Oscillatory
# 19.  PRPEAK          (6)  Genz - Product Peak
# 20.  CORPEAK         (6)  Genz - Corner Peak
# 21.  GAUSSIAN        (6)  Genz - Gaussian
# 22.  C0              (6)  Genz - C0 
# 23.  DISCONT         (6)  Genz - Discontinuous
 

TODO

  • gather more problems

  • add functions from "The dimension distribution and quadrature test functions" - Owen

  • add functions from "A nested partitioning procedure for numerical integration" - Friedman - Wright - 1981

  • add some functions from "Methods of Numerical integration" - Davis - Rabinowitz

Authors

2009-2010 - DIGITEO - Michael Baudin

Acknowledgements

Thanks to Yann Collette for the technical help for this project.

Licence

This toolbox is distributed under the CeCILL.

Bibliography

"Integration Test Problems User's Manual", Michael Baudin, 2010.

"Computational investigations of low-discrepancy sequences", Kocis, L. and Whiten, W. J. 1997. ACM Trans. Math. Softw. 23, 2 (Jun. 1997), 266-294.

"Quadrature Rule Applied to Test Integrals", http://people.sc.fsu.edu/~jburkardt/m_src/quadrature_test/quadrature_test.html, John Burkardt, 2007

"Testing Multidimensional Integration Routines", http://people.sc.fsu.edu/~jburkardt/m_src/testpack/testpack.html, John Burkardt, 2007

"Multi-dimensional Integration Test Functions", http://people.sc.fsu.edu/~jburkardt/m_src/test_nint/test_nint.html, John Burkardt, 2007

"Testpack", http://www.math.wsu.edu/faculty/genz/software/fort77/testpack.f, Alan Genz, 1987