clear
p=optimproblem('ObjectiveSense','max');
c=[3100,3800,3500,2850];
a=[18,15,23,12];b=[480,650,580,390];
d=[10,16,8];e=[6800,8700,5300];
x=optimvar('x',4,3,'LowerBound',0);
p.Objective=c*sum(x,2);
p.Constraints.c1=[sum(x,2)<=a';sum(x,1)'<=d';(b*x)'<=e'];
p.Constraints.c2=[sum(x(:,1))/10==sum(x(:,2))/16
sum(x(:,2))/16==sum(x(:,3))/8];
[s,v]=solve(p)
xx=s.x
第二种有误,与第一种就是约束条件分开写了为啥就不行
clear
p=optimproblem('ObjectiveSense','max');
c=[3100,3800,3500,2850];
a=[18,15,23,12];b=[480,650,580,390];
d=[10,16,8];e=[6800,8700,5300];
x=optimvar('x',4,3,'LowerBound',0);
p.Objective=c*sum(x,2);
p.Constraints.c1=sum(x,2)<=a';
P.Constraints.c2=sum(x,1)'<=d';
P.Constraints.c3=(b*x)'<=e';
p.Constraints.c4=[sum(x(:,1))/10==sum(x(:,2))/16
sum(x(:,2))/16==sum(x(:,3))/8];
[s,v]=solve(p)
xx=s.x
线性规划问题约束条件错误
- 写回答
- 好问题 0 提建议
- 追加酬金
- 关注问题
- 邀请回答
-
1条回答 默认 最新
关注 代码中存在以下错误: 1.
P.Constraints.c2
应为p.Constraints.c2
; 2. 约束条件中的等式应该用==
而不是=
; 3. 约束条件c4
中的两个等式右边应该都是sum(x(:,3))/8
而不是sum(x(:,3))/16
; 4. 多个约束条件应该合并成一个optimconstr对象。因此,p.Constraints
需要用cell数组来定义。以下是修正后的代码:
clear p = optimproblem('ObjectiveSense', 'max'); c = [3100, 3800, 3500, 2850]; a = [18, 15, 23, 12]; b = [480, 650, 580, 390]; d = [10, 16, 8]; e = [6800, 8700, 5300]; x = optimvar('x', 4, 3, 'LowerBound', 0); p.Objective = c * sum(x, 2); p.Constraints = {sum(x, 2) <= a', sum(x, 1) <= d', (b*x)' <= e',... sum(x(:,1))/10 == sum(x(:,2))/16, sum(x(:,2))/8 == sum(x(:,3))/8}; [s, v] = solve(p); xx = s.x;
其中,
Constraints
用了一个cell数组包含多个约束条件,每个条件之间用逗号隔开即可。解决 无用评论 打赏 举报
悬赏问题
- ¥15 VB.NET画图时的撤销编程
- ¥15 C# webservice 参数特殊字符处理
- ¥15 关于控制时间更新的一个操作
- ¥15 JAVA中使用poi创建word文件,实现页面边框环绕页眉
- ¥15 matlibplot绘图图形切线问题
- ¥15 flink 深度优先搜索
- ¥15 python for everybody 使用Beautifulsoup构建soup对象的时候疯狂报错
- ¥15 mac playcover上原神在登录后的加载页面闪退,重新下载原神IPA和playcover均无效
- ¥20 node-dev能不能离线安装?
- ¥20 六子棋博弈基于Alpha-Beta剪枝搜索算法的优化