How does fmincon works? Changing not binding restrictions changes the result

1 view (last 30 days)
Hello.
I am working with the function fmincon and I have noticed that changing a restriction can alter the result even when this restriction is not binding.
For example, I am using the code
[theta] = fmincon('gmmsimobj2',theta0,[0 -5 -1],[0],[],[],[0.001 -1 0],[1 0 1],[],foptions,simfunc,e,sp,beta,momfunc,y,mp,alg,W);
Which gives me a result of theta=[0.0177 0 6.8070e-005].
Then I change some restrictions that were not binding before
[theta] = fmincon('gmmsimobj2',theta0,[0 -5 -1],[0],[],[],[0.001 -inf 0],[inf 0 inf],[],foptions,simfunc,e,sp,beta,momfunc,y,mp,alg,W);
This gives a result of theta=[0.0148 -7.7908e-004 0.0039], which in fact was a possible answer in the last excercise (it did not violate any of the previous restrictions).
Could you tell me why the result changes? I do not know exactly how this function works. How can these changes in the restrictions affect the result?
Thank you! Javier
  1 Comment
Matt J
Matt J on 4 Dec 2013
Edited: Matt J on 4 Dec 2013
You should ALWAYS call fmincon with at least 4 output arguments
[theta,fval,exitflag,output] = fmincon(...)
When you do, what are the values of the out arguments in each case?

Sign in to comment.

Answers (0)

Community Treasure Hunt

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

Start Hunting!