nonlinear minimization with fminunc
5 views (last 30 days)
Show older comments
Hi All:
I am doing parameterization by minimizing a nonlinear target function. However, after the iteration runs, it returns the following message. And returns with the initial values for the parameters that I set.
*Iteration Func-count f(x) Step-size optimality
0 9 1.46536 7.77e+06
1 144 1.39431 1.57417e-14 5.47e+06
Local minimum possible.
fminunc stopped because the size of the current step is less than the default value of the step size tolerance.*
There is no error in the code. What do you suggest to solve this issue?
Thank you!
0 Comments
Answers (2)
Matt J
on 24 Jul 2014
Evaluate the gradient at the initial point and see if it is close to zero. Also, call fminunc with all of its output arguments,
[x,fval,exitflag,output,grad,hessian]= fminunc(...)
to get more diagnostic information.
2 Comments
Shashank Prasanna
on 24 Jul 2014
Edited: Shashank Prasanna
on 24 Jul 2014
The optimization stopped because size of the current step is less than the default value. However you can change the defaults.
I suggest you read the following articles in the link below:
- When the Solver Fails
- When the Solver Might Have Succeeded
- When the Solver Succeeds
There are guidelines on what you can try in each of the situations.
2 Comments
Shashank Prasanna
on 24 Jul 2014
fminunc is a derivative based optimizer. If you have discontinuous objective surface or have multiple optimums then fminunc becomes sensitive to initial start points. If you do have an exotic objective function I recommend trying multistart or patternsearch which does better at finding "global" optimum solutions.
Local vs Global:
See Also
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!