https://github.com/cran/pracma
Revision b5e4bf28fcba9f5eaffbeecfb0bc307452d074ee authored by Hans W. Borchers on 01 November 2014, 00:00:00 UTC, committed by Gabor Csardi on 01 November 2014, 00:00:00 UTC
1 parent d57c14d
Raw File
Tip revision: b5e4bf28fcba9f5eaffbeecfb0bc307452d074ee authored by Hans W. Borchers on 01 November 2014, 00:00:00 UTC
version 1.7.7
Tip revision: b5e4bf2
fminsearch.R
##
##  f m i n s e a r c h . R
##


fminsearch <- function(f, x0, ..., minimize = TRUE, dfree = TRUE,
                       maxiter = 1000, tol = .Machine$double.eps^(2/3)) {
    if (!is.numeric(x0))
        stop("Argument 'x0' must be a numeric vector.")

    scl <- if(minimize) 1 else -1
    fun <- match.fun(f)
    f <- function(x) scl * fun(x, ...)

    if (dfree) {
        opt <- nelder_mead(x0, f, tol = tol, maxfeval = 10*maxiter)
    } else {
        opt <- fletcher_powell(x0, f, maxiter = maxiter, tol = tol)
    }

    xopt <- opt$xmin; fopt <- opt$fmin
    if (! minimize) fopt <- -fopt
    return(list(xval = xopt, fval = fopt, niter = opt$niter))
}
back to top