我想通过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可以解决的所有问题都被认为是不可行的。你能帮助我吗?
答案 0 :(得分:1)
这对所有线性问题都不常见。在这里,您将处理一个问题,即解决方案的最小值存在一些限制:
0≤x1,0≤x2,0≤x3
您必须在问题的参数中设置这些约束。这样做的方法是指定解决方案的下限,这是第五个参数。
如果没有这一行,搜索解决方案的域不受限制,exitflag
在调用函数后的值为-3,这正是无限问题的错误代码。