线性规划总结
线性规划
线性函数极值求解
线性规划问题的一般形式:
T ⎧⎪min(或max) z =f x ⎨⎪⎩s . t . Ax ≤(或=, 或≥) b x i ≥0(i =1, 2, , n )
求解线性规划的MATLAB 命令
x=linprog(f, A, b): 求解min z = f’.x, A. x ≤ b
x=linprog(f, A, b, Aeq, beq): 求解:
min z = f’⋅x, A ⋅x ≤ b, Aeq ⋅x = beq
x=linprog(f, A, b, Aeq, beq, lb, ub):
指定lb ≤ x ≤ ub
若没有不等式约束, 可用[ ]替代A 和b,
若没有等式约束, 可用[ ]替代Aeq 和beq,
若某个x i 下无界或上无界, 可设定-inf 或inf ;
用[x, Fval]代替上述命令行中的x ,可得最优解处的函数值Fval 。 例1、min Z = -40x 1-50x 2 s.t x 1 + 2x 2≤ 30,
x 1+ 2x 2≤ 60,
2x 2≤ 24,
解:程序如下
c=[-40,-50];
a=[1,2;3,2;0,2];
b=[30;60;24];
x=linprog (c,a,b)
z=c*x
例2:minZ = 4x 1+3x 2
x 1+x2≤ 5,
s.t. -6≤ x1≤ 10,
-1≤x 2 ≤4;
解:% lp2.m %
c=[4,3];a=[1,1];b=[5];
vlb=[-6;-1]; %lower bound of vector x %
vub=[10;4]; % upper bound of vector x %
x=linprog(c,a,b,vlb,vub)
z=c*x