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 Undamped Oscillator Test Function #325

Open damar-wicaksono opened 8 months ago

damar-wicaksono commented 8 months ago

The six-dimensional test function was introduced in Echard et al. (2013)[^echard] as a test function for reliability analysis. It was used in a metamodeling exercise in Lüthen et al. (2021)[^luethen].

The function reads as follows:

$$ \mathcal{M}(\boldsymbol{x}) = 3 R - \left\lvert \frac{2 F_1}{M \omega_0^2} \sin{\left( \frac{\omega_0^2 T_1}{2} \right)} \right\rvert $$

with $\omega_0 = \sqrt{(C_1 + C2 / M}$, where $\boldsymbol{x} = { C_1, C_2, M, R, T_1, F_1 }$ is the vector of random input variables.

The distributions of the random input variables are:

Notice that there are two specifications for the input $F_1$ according to [^echard].

[^echard]: B. Echard, N. Gayton, M. Lemaire, and N. Relun, “A combined Importance Sampling and Kriging reliability method for small failure probabilities with time-demanding numerical models,” Reliability Engineering & System Safety, vol. 111, pp. 232–240, Mar. 2013, doi: 10.1016/j.ress.2012.10.008.

[^luethen]: N. Lüthen, S. Marelli, and B. Sudret, “Sparse Polynomial Chaos Expansions: Literature Survey and Benchmark,” SIAM/ASA J. Uncertainty Quantification, vol. 9, no. 2, pp. 593–649, Jan. 2021, doi: 10.1137/20M1315774.