How to use fminsearch and fmincon in matlab for optimization.
Neeta Dsouza answered .
2025-11-20
fminsearch is only for unbounded searches .
fmincon can easily be used with bounds constraints . See the lb and ub parameter in the fmincon documentation.
Fminsearch implements the Nelder-Mead algorithm, which doesn't need to know the gradient of your error function. It's very flexible, and can even handle discontinuous error functions. It's pretty impressive, and tends to give good results without a lot of setup.
On the other hand, it can't deal with explicit boundaries, and for large numbers of parameters, it gets inefficient.
Fmincon implements a variety of bounded optimizations, mostly of the sort which are extensions of Newton's method. It takes more preparation, but generally speaking the final results are very accurate. If you can compute an analytical gradient for your error function, these methods are also very fast and efficient. If you can't, they will still work, but much less efficiently because they must use finite differences.