## ----include = FALSE---------------------------------------------------------- knitr::opts_chunk$set( collapse = TRUE, comment = "#>" ) ## ----eval = FALSE------------------------------------------------------------- # # CRAN release # install.packages("arcopt") # # # Development version from GitHub (requires the devtools package) # devtools::install_github("marcus-waldman/arcopt") ## ----eval = FALSE------------------------------------------------------------- # arcopt(x0, fn, gr, hess, ..., lower, upper, control) ## ----setup-------------------------------------------------------------------- library(arcopt) rosenbrock <- function(x) { (1 - x[1])^2 + 100 * (x[2] - x[1]^2)^2 } rosenbrock_gr <- function(x) { c(-2 * (1 - x[1]) - 400 * x[1] * (x[2] - x[1]^2), 200 * (x[2] - x[1]^2)) } rosenbrock_hess <- function(x) { matrix(c(1200 * x[1]^2 - 400 * x[2] + 2, -400 * x[1], -400 * x[1], 200), 2, 2) } result <- arcopt( x0 = c(-1.2, 1), fn = rosenbrock, gr = rosenbrock_gr, hess = rosenbrock_hess ) ## ----------------------------------------------------------------------------- result$par result$value result$converged result$iterations ## ----------------------------------------------------------------------------- min(eigen(result$hessian, only.values = TRUE)$values) ## ----------------------------------------------------------------------------- str(result$diagnostics)