damar-wicaksono / uqtestfuns

A Python3 library of test functions from the uncertainty quantification community with a common interface for validation and benchmarking purposes.
https://uqtestfuns.readthedocs.io/en/latest/
MIT License
8 stars 0 forks source link

Add an implementation of the Bratley et al. (1992) test functions #205

Closed damar-wicaksono closed 1 year ago

damar-wicaksono commented 1 year ago

The (4th) Bratley function is an $M$-dimensional scalar-valued function. Originally introduced in Bratley et al.[^Bratley] as a test function for quasi-Monte-Carlo numerical integration. It was used as a test function for global sensitivity analysis methods in the literature (for instance, Saltelli et al.[^Saltelli] and Kucherenko et al.[^Kucherenko]).

Some analytical results related to the definite integral value, variance, as well as total-effect Sobol' indices are available.

While we're at it, also implement all the functions from the paper[^Bratley]:

[^Bratley]: Paul Bratley, Bennet L. Fox, and Harald Niederreiter, "Implementation and tests of low-discrepancy sequences," ACM Transactions on Modeling and Computer Simulation, vol. 2, no. 3, pp. 195--213, 1992. DOI:10.1145/146382.146385 [^Saltelli]: A. Saltelli, P. Annoni, I. Azzini, F. Campolongo, M. Ratto, and S. Tarantola, “Variance based sensitivity analysis of model output. Design and estimator for the total sensitivity index,” Computer Physics Communications, vol. 181, no. 2, pp. 259–270, Feb. 2010, DOI:10.1016/j.cpc.2009.09.018. [^Kucherenko]: S. Kucherenko, M. Rodriguez-Fernandez, C. Pantelides, and N. Shah, “Monte Carlo evaluation of derivative-based global sensitivity measures,” Reliability Engineering & System Safety, vol. 94, pp. 1137–1148, 2009, doi: 10.1016/j.ress.2008.05.006.

damar-wicaksono commented 1 year ago

All the integral test functions from Bratley et al. (1992) have been added to the code base by PR #227. Note that although bratley1992a function (integral test function no. 1) is included in the Sobol'-G ( SobolG) function via a selection of the parameters, it is implemented independently nevertheless (see Issue #181).