How can solve constrait optimization?
信息
此问题已关闭。 请重新打开它进行编辑或回答。
显示 更早的评论
Hi everyone, I have constrait optimizatıon problem. I am trying to maxımize x, y and z. And some of my constrait are like that
0.2<=y
0.2<= x
0.2<=z<=2
x+y<=z
How can ı express the lass constrait ın matlab? Using A, b ,x0
0 个评论
回答(2 个)
Walter Roberson
2020-8-4
0 个投票
A = [1 1 -1] b = 0 for A*X <= b, where X = [x; y; z], expresses x+y-z<=0 , which is x+y<=z
Your other constraints that you posted should be expressed as lb = [0.2, 0.2, 0.2], ub = [inf, inf, 2]
3 个评论
Sinem Senel
2020-8-4
编辑:Sinem Senel
2020-8-4
Walter Roberson
2020-8-4
what is your code?
Walter Roberson
2020-8-6
You can do a bit better by adjusting the tolerance
fun = @(x)-((1-x(1)-x(2))+ log(x(1))+log(x(2)));
lb = [0.2, 0.2,0.2];
ub = [inf,inf,2];
A = [1,1,-1];
b = [0];
Aeq = [];
beq = [];
x0 = [1/4,1/4,1.1];
nonlcon = [];
options = optimoptions('fmincon','Algorithm','interior-point',...
'OptimalityTolerance',1e-20, ...
'StepTolerance', 1e-20, ...
'ConstraintTolerance', 1e-20, ...
'Display', 'iter' );
[x, fval] = fmincon(fun, x0, A, b, Aeq, beq, lb, ub, nonlcon, options);
disp(x)
disp(fval)
The OptimalityTolerance is the only one that I found made a difference.
Unfortunately the function calls into barrier.p so I cannot trace to find out exactly why it is ending the optimization.
此问题已关闭。
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!