max z=2x1+x2-5x3
x1+x2+x3=7
2x1-5x2+x3>=10
x1+x2+x3<=12
x1,x2,x3>0
求解的matlab代码如下
f=[-2;-3;5];
a=[-2,5,-1;1,3,1];
b=[-10;12];
aeq=[1,1,1];
beq=7;
[x,y]=linprog(f,a,b,aeq,beq,zeros(3,1));
x,y=-y
另一种类型
min z=|x1|+2|x2|+3|x3|+4|x4|
x1-x2-x3+x4<2;
x1-x2+x3-3x4<1;
x1-x2-2x3+3x4>1/2
matlab代码
c=1:4;
c=[c,c]';%构造价值列向量
a=[1 -1 -1 1;1 -1 1 -3;1 -1 -2 3];
a=[a,-a];%构造变换后新的系数矩阵
b=[-2 -1 -1/2]';
[y,z]=linprog(c,s,b,[],[],zeros(8,1))%这里没有等式约束,对应的矩阵为空矩阵
x=y(1:4)-y(5:end) %变换到原问题的解 x=u-v