3.模型:minz=cX S t.AX<b Aeq. X=beq LB<X<VUB 命令:[1]x=1 Inprog(c,A,b,Aeq,beg,VLB,VUB) [2]x=linprog (c, A, b, Aeq, beg, VLB, VUB, x0) 注意:[]若没有等式约束:Aeq·X=beg,则令Aeq[] beq=[] [2]其中X表示初始点 4.命令:[x,Eva1]=1 Inprog(.) 返回最优解ⅹ及x处的目标函数值£va1
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.4x1+0.28x2+0.32x3+0.72x4+0.64x5+0.6x6 st.0.01x,+0.0lx2+0.01x2+0.03x+0.03x+0.03x≤850 0.02x1+0.05x4≤700 0.02x2+0.05x≤100 0.03x3+0.08x≤900 ≥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=[]i beg[]i To MATLAB(xxgh1) VLb=[0:0;0;0;0;0];vub=[]; [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)
m In z (6 4)x 例2mz=6x1+3x2+4s st.x1+x2+x3=1 x1≥30 111 120 0≤x2≤50 50 > ≤x 解:编写M文件xxgh2.m如下: c=[634] A=[010]; b=[50]; Aeg=[111]; beq=[120] V1b=[30,0,20]; To MATLAB (Xxgh2) vub=[]i [x, fval]=linprog(c, A,b, Aeq, bea, 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 0.41.11000 s t 00005121.3//800 900 100100 400 X 010010X=600,X=|≥0 001001 500 x
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文件xxgh3m如下: f=[1391011128]; A [0.41.11000 0000.51.21.3]; b=[800;900] Aec=[100100 010010 001001]; beq=[400600500]; TO MATLAB(xXgh3 vlb zeros(6, 1) [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)