matlab_or_python 2023-05-04 22:29 采纳率: 0%
浏览 8

线性规划问题约束条件错误

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

  • 写回答

1条回答 默认 最新

  • CSDN-Ada助手 CSDN-AI 官方账号 2023-05-05 08:14
    关注

    代码中存在以下错误: 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数组包含多个约束条件,每个条件之间用逗号隔开即可。

    评论

报告相同问题?

问题事件

  • 创建了问题 5月4日

悬赏问题

  • ¥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剪枝搜索算法的优化