How to choose DiffMinChange value?
5 visualizaciones (últimos 30 días)
Mostrar comentarios más antiguos
Dear all,
I am running an optimisation program with the Optimisation settings shown below :
%% Optimisation settings
lb = [];
ub = [];
options = optimoptions(@fmincon,'Algorithm','interior-point','DiffMinChange',0.00089205,'StepTolerance',1.0000e-12,'MaxFunctionEvaluations',100000,'plotFcns',{@optimplotx,@optimplotconstrviolation,@optimplotfval,@optimplotfirstorderopt});
[pos_opt,fval,exitflag,output,lambda,grad,hessian] = fmincon(@(pos_init) objective(pos_init,XX,YY),pos_init,[],[],[],[],lb,ub,@(pos_init) nonlinconst(pos_init),options);
I am ending up getting the first order optimality around 0.138524. In principal the first order optimality should me closer to zero. Is there any optimal value for DiffMinChange I have to take depending on the problem, so that the optimality will reach zero.
The optimisation is going in the proper direction but not reaching zero.
2 comentarios
Walter Roberson
el 16 de Mayo de 2020
Remember that fmincon() is not a global optimizer. You probably need better initial conditions.
Respuestas (1)
Alan Weiss
el 20 de Mayo de 2020
I suggest that you look at When the Solver Might Have Succeeded. In particular, https://www.mathworks.com/help/optim/ug/when-the-solver-might-have-succeeded.html#br58rj7 and https://www.mathworks.com/help/optim/ug/when-the-solver-might-have-succeeded.html#br544oi-1 seem relevant, but other suggestions might help, too.
Alan Weiss
MATLAB mathematical toolbox documentation
0 comentarios
Ver también
Categorías
Más información sobre Problem-Based Optimization Setup en Help Center y File Exchange.
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!