matlab - 优化等数分布
问题描述
示例:我想最大化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
and 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)
解决方案
推荐阅读
- python - 为什么我不能安装这个模块?
- javascript - 我不明白为什么变量 y 等于 4?
- c# - 获取在 EF Core 中插入的身份 ID 列表
- python - 你如何表达一个没有参数的 Python Callable?
- c - C 不包含头文件/找不到宏?
- javascript - Javascript触发“右箭头”键事件 - 强制标签取消选择
- ios - iOS 13 Core NFC - 如何写一条空消息来擦除标签?
- javascript - 如何在 JavaScript 中检索 Promise 的值
- date - 在logstash中解析特定日期
- python - Twilio,收集挂起,在大提示下我可以停止收集,并发送部分结果