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 the Six-Dimensional Friedman function from Friedman et al. (1983) #349

Open damar-wicaksono opened 5 months ago

damar-wicaksono commented 5 months ago

The analytical test function reads as follows:

$$ \mathcal{M}(\boldsymbol{x}) = 10 \sin{(\pi x_1 x_2)} + 20 (x_3 - 0.5)^2 + 10 x_4 + 5 x_5, $$

where $\boldsymbol{x} = {x_1, x_2, x_3, x_4, x_5, x_6}$ is the vector of input modeled as independent uniform random variables in $[0, 1]$. Notice that the input variable $x_6$ is inert.

The function was introduced in [^FriedmanEtAl1983] as a function to test spline approximation method; it reappeared in [^Friedman1991] as a ten-dimensional variant (now with five inert variables instead of one).

[^FriedmanEtAl1983]: Friedman, J. H., Grosse, E., & Stuetzle, W. (1983). Multidimensional additive spline approximation. SIAM Journal on Scientific and Statistical Computing, 4(2), 291-301. [^Friedman1991]: Friedman, J. H. (1991). Multivariate adaptive regression splines. The annals of statistics, 19(1), 1-67.