Finding Function Minimum
Find minimum of single-variable function on fixed interval.
fminbnd(f, a, b, maxiter = 1000, maximum = FALSE, tol = 1e-07, rel.tol = tol, abs.tol = 1e-15, ...)
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. |
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.
List with
xmin |
location of the minimum resp. maximum. |
fmin |
function value at the optimum. |
niter |
number of iterations used. |
estim.prec |
estimated precision. |
fminbnd
mimics the Matlab function of the same name.
R. P. Brent (1973). Algorithms for Minimization Without Derivatives. Dover Publications, reprinted 2002.
## 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)
Please choose more modern alternatives, such as Google Chrome or Mozilla Firefox.