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(), ...)
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."
#>