NEWUOA solves quadratic subproblems in a spherical trust region via a truncated conjugate-gradient algorithm. For bound-constrained problems, BOBYQA should be used instead, as Powell developed it as an enhancement thereof for bound constraints.
Usage
newuoa(x0, fn, nl.info = FALSE, control = list(), ...)
Arguments
- x0
starting point for searching the optimum.
- fn
objective function that is to be minimized.
- nl.info
logical; shall the original NLopt info be shown.
- control
list of options, see
nl.opts
for help.- ...
additional arguments passed to the function.
Value
List with components:
- par
the optimal solution found so far.
- value
the function value corresponding to
par
.- iter
number of (outer) iterations, see
maxeval
.- convergence
integer code indicating successful completion (> 0) or a possible error number (< 0).
- message
character string produced by NLopt and giving additional information.
Details
This is an algorithm derived from the NEWUOA Fortran subroutine of Powell, converted to C and modified for the NLopt stopping criteria.
References
M. J. D. Powell. ``The BOBYQA algorithm for bound constrained optimization without derivatives,'' Department of Applied Mathematics and Theoretical Physics, Cambridge England, technical reportNA2009/06 (2009).
Examples
## Rosenbrock Banana function
rbf <- function(x) {(1 - x[1]) ^ 2 + 100 * (x[2] - x[1] ^ 2) ^ 2}
S <- newuoa(c(1, 2), rbf)
## The function as written above has a minimum of 0 at (1, 1)
S
#> $par
#> [1] 1 1
#>
#> $value
#> [1] 0
#>
#> $iter
#> [1] 33
#>
#> $convergence
#> [1] 1
#>
#> $message
#> [1] "NLOPT_SUCCESS: Generic success return value."
#>