What's the differences between bounds and linear equality constraints?

I'm trying to minimize an objective function f(x) with constraints, say, x(a:b) always equal to 0. I'm using fmincon() and thus can set the upper bound('ub') and lower bound('lb') of x(a:b) to be both 0, or in another way I can create a proper linear equality constraint ('Aeq' and 'beq') to set those elements of vector x to be 0. Will there be differences between these two ways? thanks. btw I'm using MATLAB R2015a.

Réponses (1)

Matt J
Matt J le 15 Fév 2016
Modifié(e) : Matt J le 15 Fév 2016
If you use lb, ub then fmincon will know that they are simple bounds and can give them special and more efficient handling.
However, I think it is bad to use bounds to force variables to be a constant. Why treat x(a:b) as unknowns when you already know that they are zero? It just makes unnecessary extra work.

1 commentaire

Thank you for your answer. Yes you are right, I think it will be better treating them as constant values. However the model is actually more complicated, and these constraints do not suit for all the situations. I want to deal with different problems by simply turn 'on' and 'off' the constraints.

Connectez-vous pour commenter.

Produits

Question posée :

le 15 Fév 2016

Commenté :

le 15 Fév 2016

Community Treasure Hunt

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

Start Hunting!

Translated by