from the fminsearch
Octave docs:
: x = fminsearch (fun, x0)
Find a value of x which minimizes the function fun.
The search begins at the point x0 and iterates using the Nelder & Mead Simplex algorithm (a derivative-free method). This algorithm is better-suited to functions which have discontinuities or for which a gradient-based search such as
fminunc
fails.Options for the search are provided in the parameter options using the function
optimset
. Currently,fminsearch
accepts the options:"TolX"
,"MaxFunEvals"
,"MaxIter"
,"Display"
. For a description of these options, seeoptimset
.
so, Octave fminsearch
uses Nelder Mead to find the optimum. RAFF.jl, on the other part:
This package implements a robust method[1] to fit a given function (described by its parameters) to input data. The method is based on the LOVO algorithm [1] and also in a suitable voting strategy in order automatically eliminate outliers.
[1] Castelani, E. V., Lopes, R., Shirabayashi, W., & Sobral, F. N. C. (2019). RAFF.jl: Robust Algebraic Fitting Function in Julia. Journal of Open Source Software, 4(39), 1385. https://doi.org/10.21105/joss.01385
[2] Andreani, R., Martínez, J. M., Martínez, L., & Yano, F. S. (2009). Low order-value optimization and applications. Journal of Global Optimization , 43(1), 1-22.
if you want a similar result to fminsearch
, you need a package that provides Nelder Mead, some options:
- Optim.jl Optim.jl
- GalacticOptim.jl: https://galacticoptim.sciml.ai/stable/local_optimizers/local_derivative_free/ (wraps Optim.jl, and a bunch of other solvers)
- NLopt.jl (wrapper to NLopt) GitHub - JuliaOpt/NLopt.jl: Package to call the NLopt nonlinear-optimization library from the Julia language
NLopt Algorithms - NLopt Documentation
(i just posted the optimization packages that have nelder mead, if that algorithm is good enough is another discussion)