fmincon TolX or TolCom DiffMinChange

2 visualizzazioni (ultimi 30 giorni)
Christos Tsouknidas
Christos Tsouknidas il 29 Mar 2015
Modificato: Matt J il 30 Mar 2015
Hey,
I am trying to optimize a function changing the angles.
In my case it is not useful to change the pitch angles with really small steps. I noticed that a minimum change in angles should be 0.20 or higher.
That's why i used the option 'DiffMinChange',0.299.
However after some iteration this condition is violated and fmincon starts changing the angles with really small difference around 1e-06. Something that it is not the case in my problem.
Any suggestion how I can be sure that during the optimization the way the optimizer changes the angles could be at least 0.1. I want to avoid really small changes in the angles. It takes time and I don't need tolerances anywhere near this tight since my problem is in 100s.
Thanks

Risposte (1)

Matt J
Matt J il 29 Mar 2015
Modificato: Matt J il 30 Mar 2015
There is no option to let you do that, and it is undesirable to do so. For the algorithm to converge, it eventually has to take arbitrarily small steps as it gets closer and closer to the solution. That is presumably the reason you are seeing shrinking angular steps in your tests.
As for DiffMinChange, you have misinterpreted what it means. That minimum step is only used in the finite difference calculations used to approximate the derivatives. If you supply your own derivative calculation with GradObj='on', then DiffMinChange is never used at all.

Categorie

Scopri di più su Systems of Nonlinear Equations in Help Center e File Exchange

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by