| Title: | Multi-Fidelity Computer Experiments Using the Tuo-Wu-Yu Model |
|---|---|
| Description: | This R function implements the nonstationary Kriging model proposed by Tuo, Wu and Yu (2014) <DOI:10.1080/00401706.2013.842935> for analyzing multi-fidelity computer outputs. This function computes the maximum likelihood estimates for the model parameters as well as the predictive means and variances of the exact solution. |
| Authors: | Wenjia Wang [aut, cre], Rui Tuo [aut], C. F. Jeff Wu [aut] |
| Maintainer: | Wenjia Wang <[email protected]> |
| License: | GPL (>= 2) |
| Version: | 0.1.1 |
| Built: | 2026-05-29 10:59:30 UTC |
| Source: | https://github.com/cran/diffMeshGP |
This R function implements the nonstationary Kriging model proposed by Tuo, Wu and Yu (2014) for analyzing multi-fidelity computer outputs. This function computes the maximum likelihood estimates for the model parameters as well as the predictive means and variances of the exact solution (i.e., the conceptually highest fidelity).
GPdiffMesh(x,X,meshT,Y,regFunX = function(x){ return(0*matrix(x[,1]))}, regFunT = function(x){ return(1*matrix(x[,1]))}, phi1 = 1, sigma12 = 1, sigma22 = 1, phi2 = 1, mybeta = FALSE, l = 4)GPdiffMesh(x,X,meshT,Y,regFunX = function(x){ return(0*matrix(x[,1]))}, regFunT = function(x){ return(1*matrix(x[,1]))}, phi1 = 1, sigma12 = 1, sigma22 = 1, phi2 = 1, mybeta = FALSE, l = 4)
x |
An |
X |
An |
meshT |
An |
Y |
An |
regFunX |
A scalar or a vector-valued regression function |
regFunT |
A scalar or a vector-valued regression function |
phi1, sigma12, sigma22, phi2, mybeta
|
Initial values of the parameters for the maximum likelihood estimation. The default values are |
l |
The value of parameter |
This R function implements the nonstationary Kriging model proposed by Tuo, Wu and Yu (2014) for the modeling and analysis of multi-fidelity computer experiments. Denote an input-output pair from the computer simulation by , where is the vector of input variables, is the mesh density, and is the corresponding computer output. Tuo, Wu and Yu (2014) use the following Gaussian process model:
where and are realizations of two mutually independent Gaussian processes and . Assume
where can be set in regFunX, and can be set in regFunT. Both and can be vector-valued function. should satisfy for any , . The default functions are and .
Assume the covariance of is
and the covariance of is
where is a fixed parameter and is not estimated in this function.
The goal of the Tuo-Wu-Yu model is to predict for the .
For a set of control points , this R function predicts for .
This R function uses maximum likelihood method to estimate the model parameters. Nelder-Mead method is used to maximize the likelihood function. The solution may depend on the choice of initial values. Users may specify the initial values or use the default values.
outy |
An |
sigy |
An |
estipar |
A list of parameter estimates. |
hig02 <- function(s) { #The test function is from [2]. y <- s*sin(s) / 10 return(y) } myX <- matrix(c(seq(from = 0,to = 10, by = 1), seq(from = 0,to = 10, by = 1)),ncol = 2) myy <- hig02(matrix(myX[,1])) myT <- matrix(c(0.01,0.5,0.01,0.02,0.02,0.01,0.01,0.02,0.002, 0.003,0.03)) myregf <- function(x){ return(x) } myregfn <- function(s){ return(cbind((matrix(s[,1])^2*matrix(s[,2])), (matrix(s[,1])*matrix(s[,2])))) } #Here s=cbind(t,x), where x is a matrix of input variables and # t is the corresponding mesh density matrix. x <- matrix(c(seq(from = 0,to = 10, by = 0.1), seq(from = 0,to = 10, by = 0.1)),ncol = 2) myploty <- hig02(matrix(x[,1])) y <- GPdiffMesh(x, myX, myT, myy, regFunX = myregf, regFunT = myregfn) # The regression function is beta_0 + beta_1 x + (t^2x, tx)' beta_2 y$outy y$sigy y$estipar plot(x[,1], myploty,"l") lines(x[,1],y$outy, type="o", pch=22, lty=2, col="red")hig02 <- function(s) { #The test function is from [2]. y <- s*sin(s) / 10 return(y) } myX <- matrix(c(seq(from = 0,to = 10, by = 1), seq(from = 0,to = 10, by = 1)),ncol = 2) myy <- hig02(matrix(myX[,1])) myT <- matrix(c(0.01,0.5,0.01,0.02,0.02,0.01,0.01,0.02,0.002, 0.003,0.03)) myregf <- function(x){ return(x) } myregfn <- function(s){ return(cbind((matrix(s[,1])^2*matrix(s[,2])), (matrix(s[,1])*matrix(s[,2])))) } #Here s=cbind(t,x), where x is a matrix of input variables and # t is the corresponding mesh density matrix. x <- matrix(c(seq(from = 0,to = 10, by = 0.1), seq(from = 0,to = 10, by = 0.1)),ncol = 2) myploty <- hig02(matrix(x[,1])) y <- GPdiffMesh(x, myX, myT, myy, regFunX = myregf, regFunT = myregfn) # The regression function is beta_0 + beta_1 x + (t^2x, tx)' beta_2 y$outy y$sigy y$estipar plot(x[,1], myploty,"l") lines(x[,1],y$outy, type="o", pch=22, lty=2, col="red")