【问题标题】:MATLAB - Linear Programming [duplicate]MATLAB - 线性规划
【发布时间】:2017-09-08 16:28:18
【问题描述】:

这是一个试图最小化的线性规划问题。看了很多例子,但没有一个与这个相似。对如何使用inf()zero() 作为边界感到特别困惑。

我已经有很多限制了:

c = [6, 8, -6, -1]
A = [];
B = [];
Aeq = [9, 3, -1, -1; 17, 1, 0, -2; 4, -5, 6, 1];
beq = [30, -20, 6.7]

但对其余部分非常困惑!

【问题讨论】:

  • docs 有什么问题?你看到lbub 了吗?如果 A_eq 真的用于 A_eq,那么您当前的方法也是错误的。
  • A = [9, 3, -1, -1; 17、1、0、-2; 4, -5, 6, 1]; B = [30, -20, 6.7]; Aeq = []; beq = [];我仍然不知道如何使用边界。抱歉,我是线性规划和 matlab 的新手
  • 文档中有描述,包括示例。 ???一切都涵盖了,除了inf(也可以否定)。
  • 你能解决第 1 部分吗?如果是这样,请在您的问题中包含解决方案。

标签: matlab linear-programming


【解决方案1】:

你去吧:

vC = [6; 8; -6; -1];
mA = [9, 3, -1, -1; -17, -1, 0, 2];
vB = [30; 20];
mAEq = [4, -5, 6, 1];
vBEq = [6.7];
vL = [-3; 6.5; -inf; -inf];
vU = [15; inf; -2; inf];

vX = linprog(vC , mA, vB, mAEq, vBEq, vL, vU);
disp(['Optimal Solution - ', num2str(vX.')]);
disp(['Objective Value - ', num2str(vC.' * vX)]);

Optimal solution found.

Optimal Solution - 3.036          6.5           -2       39.056
Objective Value - 43.16

您必须将第二个不等式设为<=
其余的都是直截了当的。

【讨论】:

  • 我认为完全解决一个显然是家庭作业的问题不是一个好主意。网上已经有很多例子了。
  • 我不是道德警察。有人问我试图提供帮助的问题。我认为它不值得-1
猜你喜欢
  • 2015-07-28
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2022-01-15
  • 2016-01-31
  • 1970-01-01
相关资源
最近更新 更多