R: Adaptive Nelder-Mead Minimization

anms {pracma} | R Documentation

## Adaptive Nelder-Mead Minimization

### Description

An implementation of the Nelder-Mead algorithm for derivative-free optimization / function minimization.

### Usage

    anms(fn, x0, ...,
         tol = 1e-10, maxfeval = NULL)

### Arguments

`fn` | nonlinear function to be minimized.
`x0` | starting vector.
`tol` | relative tolerance, to be used as stopping rule.
`maxfeval` | maximum number of function calls.
`...` | additional arguments to be passed to the function.

### Details

Also called a ‘simplex’ method for finding the local minimum of a function of several variables. The method is a pattern search that compares function values at the vertices of the simplex. The process generates a sequence of simplices with ever reducing sizes.

`anms` can be used up to 20 or 30 dimensions (then ‘tol’ and ‘maxfeval’ need to be increased). It applies adaptive parameters for simplicial search, depending on the problem dimension – see Fuchang and Lixing (2012).

With upper and/or lower bounds, `anms` will apply a transformation of bounded to unbounded regions before utilizing Nelder-Mead. Of course, if the optimum is near to the boundary, results will not be as accurate as when the minimum is in the interior.

### Value

List with following components:

`xmin` | minimum solution found.
`fmin` | value of `f` at minimum.
`nfeval` | number of function calls performed.

### Note

Copyright (c) 2012 by F. Gao and L. Han, implemented in Matlab with a permissive license. Implemented in R by Hans W. Borchers. For another elaborate implementation of Nelder-Mead see the package ‘dfoptim’.

### References

Nelder, J., and R. Mead (1965). A simplex method for function minimization. Computer Journal, Volume 7, pp. 308-313.

O'Neill, R. (1971). Algorithm AS 47: Function Minimization Using a Simplex Procedure. Applied Statistics, Volume 20(3), pp. 338-345.

J. C. Lagarias et al. (1998). Convergence properties of the Nelder-Mead simplex method in low dimensions. SIAM Journal for Optimization, Vol. 9, No. 1, pp 112-147.

Fuchang Gao and Lixing Han (2012). Implementing the Nelder-Mead simplex algorithm with adaptive parameters. Computational Optimization and Applications, Vol. 51, No. 1, pp. 259-277.

### See Also

`optim`

### Examples

    ##  Rosenbrock function
    rosenbrock <- function(x) {
        n <- length(x)
        x1 <- x[2:n]
        x2 <- x[1:(n-1)]
        sum(100*(x1-x2^2)^2 + (1-x2)^2)
    }

    anms(rosenbrock, c(0,0,0,0,0))
    # $xmin
    # [1] 1 1 1 1 1
    # $fmin
    # [1] 8.268732e-21
    # $nfeval
    # [1] 1153

[Package pracma version 2.0.4 Index]