Skip to contents

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.

Note

NEWUOA may be largely superseded by BOBYQA.

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).

See also

Author

Hans W. Borchers

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."
#>