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

2 visualizaciones (últimos 30 días)
Javier
Javier el 4 de Dic. de 2013
Editada: Matt J el 4 de Dic. de 2013
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 comentario
Matt J
Matt J el 4 de Dic. de 2013
Editada: Matt J el 4 de Dic. de 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?

Iniciar sesión para comentar.

Respuestas (0)

Categorías

Más información sobre Mathematics 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!

Translated by