这两个都属于很基本的线性规划问题,参考代码如下:
f = [500 1500];
A = [-1 -1];
b = -5;
lb = [0 0];
ub = [2000 3000];
x = linprog(f,A,b,[],[],lb,ub)
f = [800 2000 2000];
A = [-1 -1 0; 1 1 0];
b = [-2*sqrt(10); 6000];
lb = [0 0 0];
ub = [5000 1000 3000];
x = linprog(f,A,b,[],[],lb,ub)
求得的最优解分别为:
x =
5.0000
0.0000
x =
6.3246
0.0000
0
结果也很容易解释:要使得目标函数最小,各变量都应尽量取比较小的值,但由于存在类似x1+x2>=5的约束,这两个变量不能同时取下限值,那么应该在目标函数中权值比较大的那个取下限0,另一变量取能够满足约束的最小值(5或2*sqrt(10))。