线性编程可由MATLAB解决

时间:2014-04-16 11:02:21

标签: matlab

我想通过MATLAB解决线性编程问题。为此,我遵循以下链接。 Linear Programming

这里给出了一个示例问题:

找到最小化的x

f(x)= -5x1 - 4x2 -6x3,

的约束

x1 - x2 +x3≤20 3x1 + 2x2 +4x3≤42 3x1 +2x2≤30 0≤x1,0≤x2,0≤x3。

首先,输入系数

f = [ - 5; -4; -6]; A = [1 -1 1       3 2 4       3 2 0]; b = [20; 42; 30]; lb =零(3,1);

接下来,调用线性编程例程。

[x,fval,exitflag,output,lambda] = linprog(f,A,b,[],[],lb);

我的问题是这条线是什么意思?
 lb =零(3,1); 没有这条线,MATLAB可以解决的所有问题都被认为是不可行的。你能帮助我吗?

1 个答案:

答案 0 :(得分:1)

这对所有线性问题都不常见。在这里,您将处理一个问题,即解决方案的最小值存在一些限制:

  

0≤x1,0≤x2,0≤x3

您必须在问题的参数中设置这些约束。这样做的方法是指定解决方案的下限,这是第五个参数。

如果没有这一行,搜索解决方案的域不受限制,exitflag在调用函数后的值为-3,这正是无限问题的错误代码。