Matlab is violating restrictions of fmincon
3 Ansichten (letzte 30 Tage)
Ältere Kommentare anzeigen
Hi
I want to solve a constrained maximization problem and i am using the function fmincon.
[theta] = fmincon('gmmsimobj2',theta0,[-1 0 0;0 0 -1;0 1 0;0 6.85988 1;0 -5 -1],[0.001 0 0 0.5 0],[],[],[],[],[],foptions,simfunc,e,sp,beta,momfunc,y,mp,alg,W);
One of the restrictions I am including is that the first parameter cannot be negative, but when matlab solves the problem insists on setting it at -1.0000e-003. The problem has no solution for non-positive values. Why does matlab try to solve the problem with this value even violating the restriction? Am I including it wrong or it is a common issue?
Thank you!
Javier
1 Kommentar
Akzeptierte Antwort
Matt J
am 27 Nov. 2013
Bearbeitet: Matt J
am 27 Nov. 2013
In the A,b constraint data that you've shown, it doesn't appear that you've constrained x(1) to be non-negative. I see a lower bound of -1e-3, in perfect consistency with the output you're reporting.
Neverthelss, you should know that FMINCON can violate any constraints within foptions.TolCon, so you should still expect to see constraint violations by that amount even after fixing your b(1)=-1e-3 value. You should NOT try to avoid this by setting TolCon=0.
Finally, non-negativity and other bounds should really be specified using the lb,ub input arguments, not the A,b arguments. If you do it using ub, lb some algorithms like interior-point (with AlwaysHonorConstraints 'on') and sqp can enforce the bounds rigorously.
3 Kommentare
Weitere Antworten (0)
Siehe auch
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!