nonlinear minimization with fminunc
5 vues (au cours des 30 derniers jours)
Afficher commentaires plus anciens
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 commentaires
Réponses (2)
Matt J
le 24 Juil 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 commentaires
Shashank Prasanna
le 24 Juil 2014
Modifié(e) : Shashank Prasanna
le 24 Juil 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 commentaires
Shashank Prasanna
le 24 Juil 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:
Voir également
Catégories
En savoir plus sur Solver Outputs and Iterative Display dans Help Center et File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!