# fminbnd: Finding Function Minimum In pracma: Practical Numerical Math Functions

## Description

Find minimum of single-variable function on fixed interval.

## Usage

 ```1 2``` ```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.

`fibsearch`, `golden_ratio`

## Examples

 ``` 1 2 3 4 5 6 7 8 9 10 11 12 13``` ```## 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) ```

### Example output

```\$xmin
[1] -0.2429114

\$fmin
[1] -0.517464

\$niter
[1] 17

\$estim.prec
[1] 2.429114e-08

\$xmin
[1] 0.7036632

\$fmin
[1] -1.727377

\$niter
[1] 14

\$estim.prec
[1] 7.036632e-08
```

pracma documentation built on Dec. 11, 2021, 9:57 a.m.