fmincon and constrains

2 次查看(过去 30 天)
Hello, I have a funktion f(x)
f and x are vector which I want to minimize with fmincon()
How can I implement follwing constrain:
x~=y this means the solution x is unequal to a vector y that I know

采纳的回答

Titus Edelhofer
Titus Edelhofer 2012-6-16
Hi,
if you know that x(1)=a why don't you take x(1) out of the optimization problem? But if you want to keep it, just let lb(1)=ub(1)=a (i.e., lower and upper bound for x(1)=a).
For the first one: this is equal to saying
abs(x-y)>=aConst
where aConst is some value saying who "unequal" they shoud be. Reformulating as
-abs(x-y)+aConst<=0
gives a nonlinear constraint, see doc for fmincon.
Titus
  4 个评论
Titus Edelhofer
Titus Edelhofer 2012-6-16
Look here:
http://www.mathworks.de/help/toolbox/optim/ug/fmincon.html
look out for "nonlcon". In fact it's for you: c = -abs(x-y) + aConst;
John Miller
John Miller 2012-6-16
my f(x) is a function that returns a vector ==> fmincon can not handle vectorfields
is there any other function in matlab that can handle functions that returns vectors?

请先登录,再进行评论。

更多回答(2 个)

John Miller
John Miller 2012-6-16
My function f is a VECTOR ==> fmincon can not handle vectorfield... my f(x) is a function that returns a vector...
Has anyone some ideas?
Thank you..

Sargondjani
Sargondjani 2012-6-17
if you want to minimize all the values in the vector, you can sum them and use that as your objective....
about the not equal thing: i think it will make your problem non-differentiable, so you can not use fmincon in this way...
you would have to do it some other way: solve fmincon for all discrete cases or use genetic algorithm
  2 个评论
John Miller
John Miller 2012-6-17
genetic algorithm sounds good, do you mean this :http://www.mathworks.de/products/global-optimization/demos.html?file=/products/demos/shipping/globaloptim/gaconstrained.html
my objectiv is a vectorfield..so do you think I can just sum them like f1+f2+f3+...?
Thank You
Sargondjani
Sargondjani 2012-6-17
why not?? im mean, if you minimize 10 values that is the same as taking the minimum of the sum of those values... although you have to be carefull with scaling (the change in the objective of each fi)

请先登录,再进行评论。

类别

Help CenterFile Exchange 中查找有关 Solver Outputs and Iterative Display 的更多信息

标签

Community Treasure Hunt

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

Start Hunting!

Translated by