Nothing
objfun <- function(x) {
##### Rosenbrock's function #####
stopifnot(is.numeric(x))
stopifnot(length(x) == 2)
f <- expression(100 * (x2 - x1^2)^2 + (1 - x1)^2)
g1 <- D(f, "x1")
g2 <- D(f, "x2")
h11 <- D(g1, "x1")
h12 <- D(g1, "x2")
h22 <- D(g2, "x2")
x1 <- x[1]
x2 <- x[2]
f <- eval(f)
g <- c(eval(g1), eval(g2))
B <- rbind(c(eval(h11), eval(h12)), c(eval(h12), eval(h22)))
list(value = f, gradient = g, hessian = B)
}
library(trust)
parinit <- c(3, 1)
out <- trust(objfun, parinit, 1, 1e5, blather = TRUE)
out$converged
length(out$r)
parscale <- c(5, 1)
shift <- 4
theta <- parscale * (parinit + shift)
pobjfun <- function(x) {
out <- objfun(x / parscale - shift)
out$gradient <- out$gradient / parscale
out$hessian <- out$hessian / outer(parscale, parscale)
return(out)
}
pout <- trust(pobjfun, theta, 1, 1e5, blather = TRUE)
pout$converged
length(pout$r)
all.equal(out$argument, pout$argument / parscale - shift)
qout <- trust(objfun, parinit, 1, 1e5, parscale = parscale, blather = TRUE)
qout$converged
length(qout$r)
all.equal(pout$valpath, qout$valpath)
transpath <- pout$argpath
transpath <- sweep(transpath, 2, parscale, "/")
transpath <- sweep(transpath, 2, shift)
all.equal(transpath, qout$argpath)
Any scripts or data that you put into this service are public.
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.