3.模型:minz=cX s.t. AX≤b Aeq·X=beq VLB<X≤VUB 命令:[I]x=1 inprog(c,A,b,Aeg,beg,VTB,UB) [2]x=linprog (c,A,b,Aeq,beq,VLB,VUB,X0) 注意:[1]若没有等式约束:Aeq·X=beg,则令Aeq=[门, beq=[] [2]其中X表示初始点 4.命令:[x,fva1]=1 inprog() 返回最优解x及x处的目标函数值fval
3. 模型:min z=cX s.t. AX b Aeq X beq VLB≤X≤VUB 命令:[1] x=linprog(c,A,b,Aeq,beq, VLB,VUB) [2] x=linprog(c,A,b,Aeq,beq, VLB,VUB, X0) 注意:[1] 若没有等式约束: , 则令Aeq=[ ], beq=[ ].[2]其中X0表示初始点 Aeq X beq 4. 命令:[x,fval]=linprog(.) 返回最优解x及x处的目标函数值fval
例1maxz=0.4x+0.28x2+0.32x3+0.72x4+0.64x3+0.6x6 s.t. 0.01x+0.01x2+0.01x3+0.03x4+0.03x+0.03x。≤850 0.02x+0.05x4≤700 0.02x2+0.05x≤100 0.03x3+0.08.x6≤900 x,≥0j=1,2,.,6 解编写M文件xxgh1.m如下: c=[-0.4-0.28-0.32-0.72-0.64-0.6]; A=[0.010.010.010.030.030.03;0.02000.050 0;00.02000.050;000.03000.08]: b=[850;700;100;900]: Aeq=[];beq=[]; To MATLAB(xxgh1) v1b=[0;0;0;0;0;0];ub=[]; [x,fval]=linprog(c,A,b,Aeq,beq,vlb,vub)
解 编写M文件xxgh1.m如下: c=[-0.4 -0.28 -0.32 -0.72 -0.64 -0.6]; A=[0.01 0.01 0.01 0.03 0.03 0.03;0.02 0 0 0.05 0 0;0 0.02 0 0 0.05 0;0 0 0.03 0 0 0.08]; b=[850;700;100;900]; Aeq=[]; beq=[]; vlb=[0;0;0;0;0;0]; vub=[]; [x,fval]=linprog(c,A,b,Aeq,beq,vlb,vub) To MATLAB (xxgh1)
例2minz=6x1+3x2+4x? m in z=(6 s.t.x1+x2+x=120 x1≥30 0≤x2≤50 →6 x3≥20 解:编写M文件xxgh2.m如下: c=[634]; A=[010]; b=[50]; Aeg=[111]: beg=[120]; v1b=[30,0,20]: To MATLAB(xxgh2) vub=[]; [x,fval]=linprog (c,A,b,Aeq,beq,vlb,vub)
解: 编写M文件xxgh2.m如下: c=[6 3 4]; A=[0 1 0]; b=[50]; Aeq=[1 1 1]; beq=[120]; vlb=[30,0,20]; vub=[]; [x,fval]=linprog(c,A,b,Aeq,beq,vlb,vub) To MATLAB (xxgh2) 1 2 3 m i n ( 6 3 4 ) x z x x 3 2 1 20 0 30 x x x 1 2 3 1 1 1 1 2 0 s . t . 0 1 0 5 0 x x x
例3问题一的解答 问题 改写为: minz=(1391011128)X S.t. 1 100100 400 X2 010010X= 600 ,X= ≥0 001001 500 X4
s.t. min z 13 9 10 11 12 8X 900 800 0 0 0 0.5 1.2 1.3 0.4 1.1 1 0 0 0 X 改写为: 例3 问题一的解答 问题
编写M文件xxgh3.m如下: £=[1391011128]: A=[0.41.11000 0000.51.21.3]; b=[800;900]; Aeq=[100100 010010 001001]分 beq=[400600500]; To MATLAB (xxgh3) vlb zeros (6,1); vub=[]; [x,fval]linprog (f,A,b,Aeq,beq,vlb,vub)
编写M文件xxgh3.m如下: f = [13 9 10 11 12 8]; A = [0.4 1.1 1 0 0 0 0 0 0 0.5 1.2 1.3]; b = [800; 900]; Aeq=[1 0 0 1 0 0 0 1 0 0 1 0 0 0 1 0 0 1]; beq=[400 600 500]; vlb = zeros(6,1); vub=[]; [x,fval] = linprog(f,A,b,Aeq,beq,vlb,vub) To MATLAB (xxgh3)