Find minimum of unconstrained multivariable functions.

fminunc(x0, fn, gr = NULL, ...,
          tol = 1e-08, maxiter = 0, maxfeval = 0)

Arguments

x0

starting point.

fn

objective function to be minimized.

gr

gradient function of the objective.

...

additional parameters to be passed to the function.

tol

relative tolerance.

maxiter

maximum number of iterations.

maxfeval

maximum number of function evaluations.

Details

The method used here for unconstrained minimization is a variant of a "variable metric" resp. quasi-Newton approach.

Value

List with the following components:

par

the best minimum found.

value

function value at the minimum.

counts

number of function and gradient calls.

convergence

integer indicating the terminating situation.

message

description of the final situation.

References

J. Nocedal and S. J. Wright (2006). Numerical Optimization. Second Edition, Springer Science+Business Media, New York.

Note

fminunc mimics the Matlab function of the same name.

Author

The "variable metric" code provided by John Nash (package Rvmmin), stripped-down version by Hans W. Borchers.

See also

Examples

  fun = function(x) 
          x[1]*exp(-(x[1]^2 + x[2]^2)) + (x[1]^2 + x[2]^2)/20
  fminunc(x0 = c(1, 2), fun)
#> $par
#> [1] -6.690718e-01 -1.165251e-10
#> 
#> $value
#> [1] -0.4052369
#> 
#> $counts
#> function gradient 
#>       30       18 
#> 
#> $convergence
#> [1] 0
#> 
#> $message
#> [1] "fminunc converged"
#> 
  ## xmin: c(-0.6691, 0.0000); fmin: -0.4052