Overview — An overview of the Integration Test Problems toolbox.
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.
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.
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
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
"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