# Classical toy example with added noise
fr <- function(v) { ## Rosenbrock Banana function
10 * (v["y"] - v["x"]^2)^2 + (1 - v["x"])^2 + rnorm(1,sd=0.1)
}
set.seed(123)
# Initial parameter values, including duplicates. See ?init_grid.
parsp <- init_grid(lower=c(x=0,y=0),upper=c(x=2,y=2))
# add function values
simuls <- cbind(parsp,bb=apply(parsp,1,"fr"))
# optimization
bbresu <- bboptim(simuls)
print(bbresu)
# refine with additional points
if (blackbox.getOption("example_maxtime")>7) {
while ( ! bbresu$convergence ) {
candidates <- rbb(bbresu)
newsimuls <- cbind(candidates,bb=apply(candidates,1,"fr"))
bbresu <- bboptim(rbind(bbresu$fit$data,newsimuls))
}
print(bbresu)
}
# basic plot
require(spaMM)
opt <- bbresu$optr$par
mapMM(bbresu$fit, decorations=points(opt[1],opt[2],cex=2,pch="+"))Run the code above in your browser using DataLab