示例:我想最大化x
和y
lb = lowerbound
ub = upperbound
a = lb(0) ub(100)
b = lb(0) ub(50)
x == a+b
y == a+b
关于这一点的特别之处在于,我需要分发优化。说明:x和y是需要能量的房屋。他们从存储库a和b中获取能量。因此,如果x从a取30,从b取20,则a仍然有70,b仍然有30,但是应该相等。
我想要的解决方案是x = 50 + 25
和y = 50 + 25
,它们将平均分配。我将如何用代码表达这一点?
我想到的示例代码,但在这种情况下不起作用:
xyprob = optimproblem;
a = optimvar('a','LowerBound',0,'UpperBound',100);
b = optimvar('b','LowerBound',0,'UpperBound',50);
y = optimvar('y');
x = optimvar('x');
xyprob.ObjectiveSense = 'maximize';
xyprob.Objective = x
xyprob.Objective = y
xyprob.Constraints.econs1 = x == a+b
xyprob.Constraints.econs2 = y == a+b
[xysol,fval] = solve(xyprob);
tbl = struct2table(xysol)