Currin

Implementation of the bi-fidelity Currin function as defined in:

Shifeng Xiong, Peter Z. G. Qian & C. F. Jeff Wu (2013) Sequential Design and Analysis of High-Accuracy and Low-Accuracy Computer Codes, Technometrics, 55:1, 37-46, DOI: 10.1080/00401706.2012.723572

Function definitions:

\[f_h(x_1, x_2) = \Bigg( 1 - \exp(-\dfrac{1}{2x_2})\Bigg) \dfrac{2300x_1^3 + 1900x_1^2 + 2092x_1 + 60}{100x_1^3 + 500x_1^2 + 4x_1 + 20}\]
\[\begin{split}f_l(x_1, x_2) = (&f_h(x_1+0.05, x_2+0.05) + \\ &f_h(x_1+0.05, x_2-0.05) + \\ &f_h(x_1-0.05, x_2+0.05) + \\ &f_h(x_1-0.05, x_2-0.05)) / 4\end{split}\]

Adapted from matlab implementation at

by: Sonja Surjanovic and Derek Bingham, Simon Fraser University

Copyright 2013. Derek Bingham, Simon Fraser University.

THERE IS NO WARRANTY, EXPRESS OR IMPLIED. WE DO NOT ASSUME ANY LIABILITY FOR THE USE OF THIS SOFTWARE. If software is modified to produce derivative works, such modified software should be clearly marked. Additionally, this program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; version 2.0 of the License. Accordingly, this program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.

currin = MultiFidelityFunction(Currin, [1. 1.], [0. 0.], fidelity_names=['high', 'low'])

2D Currin function with fidelities ‘high’ and ‘low’

currin_hf(xx)

CURRIN ET AL. (1988) EXPONENTIAL FUNCTION

INPUT: xx = [x1, x2]

currin_lf(xx)

CURRIN ET AL. (1988) EXPONENTIAL FUNCTION, LOWER FIDELITY CODE Calls: currin_hf This function, from Xiong et al. (2013), is used as the “low-accuracy code” version of the function currin_hf.

INPUT: xx = [x1, x2]

l_bound = [0, 0]

Lower bound for Currin function

u_bound = [1, 1]

Upper bound for Currin function