R: Finding Function Minimum

fminbnd {pracma} | R Documentation

## Finding Function Minimum

### Description

Find minimum of single-variable function on fixed interval.

### Usage

    fminbnd(f, a, b, maxiter = 1000, maximum = FALSE,
            tol = 1e-07, rel.tol = tol, abs.tol = 1e-15, ...)

### Arguments

`f` | function whose minimum or maximum is to be found.
`a, b` | endpoints of the interval to be searched.
`maxiter` | maximal number of iterations.
`maximum` | logical; shall maximum or minimum be found; default FALSE.
`tol` | relative tolerance; left over for compatibility.
`rel.tol, abs.tol` | relative and absolute tolerance.
`...` | additional variables to be passed to the function.

### Details

fminbnd finds the minimum of a function of one variable within a fixed interval. It applies Brent's algorithm, based on golden section search and parabolic interpolation.

`fminbnd` may only give local solutions. `fminbnd` never evaluates `f` at the endpoints.

### Value

List with

`xmin` | location of the minimum resp. maximum.
`fmin` | function value at the optimum.
`niter` | number of iterations used.
`estim.prec` | estimated precision.

### Note

`fminbnd` mimics the Matlab function of the same name.

### References

R. P. Brent (1973). Algorithms for Minimization Without Derivatives. Dover Publications, reprinted 2002.

### See Also

`fibsearch`, `golden_ratio`

### Examples

    ##  CHEBFUN example by Trefethen
    f <- function(x) exp(x)*sin(3*x)*tanh(5*cos(30*x))
    fminbnd(f, -1, 1)                   # fourth local minimum (from left)
    g <- function(x) complexstep(f, x)  # complex-step derivative
    xs <- findzeros(g, -1, 1)           # local minima and maxima
    ys <- f(xs); n0 <- which.min(ys)    # index of global minimum
    fminbnd(f, xs[n0-1], xs[n0+1])      # xmin:0.7036632, fmin: -1.727377

    ## Not run:
    ezplot(f, -1, 1, n = 1000, col = "darkblue", lwd = 2)
    ezplot(function(x) g(x)/150, -1, 1, n = 1000, col = "darkred", add = TRUE)
    grid()
    ## End(Not run)

[Package pracma version 2.0.4 Index]