如何用matlab或lingo求解多元函数的最小值?
求最优成本 minC,minC=X[ ]*P[ ],价格P固定,重量X变动为整数,如无法得出整数解,有小数解也可。
X[]=[x1,x2,x3,x4,x5,x6,x7,x8,x9,x10,x11,x12]
P[]=[6900,5330,4800,6500,6270,6200,6700,6200,6700,5000,5080,5470]
sumX=x1+x2+x+x4+x5+x6+x7+x8+x9+x10+x1+x12=2000
密度M为恒量,M[ ]=[m1,m2,m3,m4,m5,m6,m7,m8,m9,m10,m11,m12]=[0.742,0.6667,0.63,0.809,0.695,0.7072,0.88,0.7072,0.88,0.63,0.8693,0.7409]
体积V[ ]=X/M=[v1,v2,v3,v4,v5,v6,v7,v8,v9,v10,v11,v12]=[x1/m1,x2/m2,x3/m3,x4/m4,x5/m5,x6/m6,x7/m7,x8/m8,x9/m9,x10/m10,x11/m11,x12/m12]
sumV= v1+v2+v3+v4+v5+v6+v7+v8+v9+v10+v11+v12
Vs=V/sumV=[v1/sumV,v2/sumV, v3/sumV, v4/sumV, v5/sumV, v6/sumV, v7/sumV, v8/sumV, v9/sumV, v10/sumV,v11/sumV, v12/sumV]
另有恒量:
B[ ]= [b1,b2,b3,b4,b5,b6,b7,b8,b9,b10,b11,b12]=[116,72,81,101,96,91,109,91,109,80,95,116]
C[ ]=[c1,c2,c3,c4,c5,c6,c7,c8,c9,c10,c11,c12]=[108,60,70,85,92,85,85,85,85,70,90,108]
D[ ]=[d1,d2,d3,d4,d5,d6,d7,d8,d9,d10,d11,d12]=[52,54,125,38,53,83,7,83,7,120,14,50]
E[ ]=[e1,e2,e3,e4,e5,e6,e7,e8,e9,e10,e11,e12]=[0,5.5,0,1.4,0.9,57.5,1.3,57.5,1.3,0.7,12.7,0]
F[ ]=[f1,f2,f3,f4,f5,f6,f7,f8,f9,f10,f11,f12]=[0,1,2,66,5,12,98,12,98,2,56,0]
G[ ]=[g1,g2,g3,g4,g5,g6,g7,g8,g9,g10,g11,g12]=[18,0.1,0.3,0.1,0.1,0.1,0.1,0.1,0.1,0.3,0.1,18.2]
H[ ]=[h1,h2,h3,h4,h5,h6,h7,h8,h9,h10,h11,h12]=[0,0.5,0.7,1.6,0.1,0.1,0.1,0.1,0.1,0.7,0.1.0.1]
I[ ]=[i1,i2,i3,i4,i5,i6,i7,i8,i9,i10,i11,i12]=[1,2,5,3,3,10,1,10,1,2,8,88]
约束条件:
mm=sum(M*Vs)=sum(m1*v1/sumV+m2*v2/sumV+m3*v3/sumV+m4*v4/sumV+m5*v5/sumV+m6*v6/sumV+m7*v7/sumV+m8*v8/sumV+m9*v9/sumV+m10*v10/sumV+m11*v11/sumV+m12*v12/sumV)
0.73<=mm<=0.739
bb=sum(B*Vs)=sum(b1*v1/sumV+b2*v2/sumV+b3*v3/sumV+b4*v4/sumV+b5*v5/sumV+b6*v6/sumV+b7*v7/sumV+b8*v8/sumV+b9*v9/sumV+b10*v10/sumV+b11*v11/sumV+b12*v12/sumV)
95<=bb<=96
cc=sum(C*Vs)=sum(c1*v1/sumV+c2*v2/sumV+c3*v3/sumV+c4*v4/sumV+c5*v5/sumV+c6*v6/sumV+c7*v7/sumV+c8*v8/sumV+c9*v9/sumV+c10*v10/sumV+c11*v11/sumV+c12*v12/sumV)
80<=cc<=100
dd=sum(D*Vs)=sum(d1*v1/sumV+d2*v2/sumV+d3*v3/sumV+d4*v4/sumV+d5*v5/sumV+d6*v6/sumV+d7*v7/sumV+d8*v8/sumV+d9*v9/sumV+d10*v10/sumV+d11*v11/sumV+d12*v12/sumV)
40<=dd<=55
ee=sum(E*Vs)=sum(e1*v1/sumV+e2*v2/sumV+e3*v3/sumV+e4*v4/sumV+e5*v5/sumV+e6*v6/sumV+e7*v7/sumV+e8*v8/sumV+e9*v9/sumV+e10*v10/sumV+e11*v11/sumV+e12*v12/sumV)
0<=ee<=16
ff=sum(F*Vs)=sum(f1*v1/sumV+f2*v2/sumV+f3*v3/sumV+f4*v4/sumV+f5*v5/sumV+f6*v6/sumV+f7*v7/sumV+f8*v8/sumV+f9*v9/sumV+f10*v10/sumV+f11*v11/sumV+f12*v12/sumV)
0<=ff<=32
gg=sum(G*Vs)=sum(g1*v1/sumV+g2*v2/sumV+g3*v3/sumV+g4*v4/sumV+g5*v5/sumV+g6*v6/sumV+g7*v7/sumV+g8*v8/sumV+g9*v9/sumV+g10*v10/sumV+g11*v11/sumV+g12*v12/sumV)
0<=gg<=2.6
hh=sum(H*Vs)=sum(h1*v1/sumV+h2*v2/sumV+h3*v3/sumV+h4*v4/sumV+h5*v5/sumV+h6*v6/sumV+h7*v7/sumV+h8*v8/sumV+h9*v9/sumV+h10*v10/sumV+h11*v11/sumV+h12*v12/sumV)
0<=hh<=0.7
ii=sum(I*Vs)=sum(i1*v1/sumV+i2*v2/sumV+i3*v3/sumV+i4*v4/sumV+i5*v5/sumV+i6*v6/sumV+i7*v7/sumV+i8*v8/sumV+i9*v9/sumV+i10*v10/sumV+i11*v11/sumV+i12*v12/sumV)
0<=ii<=8
附图是用EXCEL的规划求解计算使用,方便大侠理解。但EXCEL无法得出最优解,最优解会变化,可能是因为EXCEL规划求解功能没有遍历求解。
该文介绍了如何利用matlab或lingo软件求解一个多元函数的最小值问题,涉及到整数变量、固定价格、密度恒定等约束条件,并给出了一组具体的数值实例和相应的约束表达式。
5万+

被折叠的 条评论
为什么被折叠?



