2
$\begingroup$

How does Matlab optimization tools works? It just gets the error function and doesn't need Jacobian (first derivatives) or Hessian (second derivatives)? How it is possible? If it is finite difference how it determines the value of dx for different degree of freedom?

$\endgroup$
2
$\begingroup$

The answer depends very much on what optimization function in MATLAB you're talking about.

The base MATLAB system includes a function fminsearch that uses the simplex method (not the simplex method for LP but rather the Nelder-Mead-Lagarias algorithm of the same name.) This method does not make use of derivatives.

The functions of the optimization toolbox use a variety of different methods depending on the nature of the problem and its size. There are different options for problems ranging from small sized to very large, and there are different options depending on the nature of the problem (e.g. constrained vs. unconstraints.) For unconstrained nonlinear optimization of problems up to medium size, the toolbox uses the BFGS quasi-Newton method and can automatically compute finite difference approximations.

$\endgroup$
  • $\begingroup$ Thanks, how do you know that it computes finite difference automatically? Do you have a reference? $\endgroup$ – Hesam Nov 3 '13 at 22:55
  • $\begingroup$ See the documentation for the software- there are parameters that you can use to control the finite difference step size. By default it takes a relative step of size sqrt(eps) for forward differencing. $\endgroup$ – Brian Borchers Nov 4 '13 at 4:20

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.