📄 findmins.m
字号:
function minimum=findmins(t,total);
price = [-505 0 124 168 210 252 312 330 363 489
-560 0 182 203 245 300 320 360 410 495
-610 0 152 189 233 258 308 356 415 500
-500 150 170 200 255 302 325 380 435 800
-590 0 116 146 188 215 250 310 396 510
-607 0 159 173 205 252 305 380 405 520
-500 120 180 251 260 306 315 335 348 548
-800 153 183 233 253 283 303 318 400 800];
content =[70 0 50 0 0 30 0 0 0 40
30 0 20 8 15 6 2 0 0 8
110 0 40 0 30 0 20 40 0 40
55 5 10 10 10 10 15 0 0 1
75 5 15 0 15 15 0 10 10 10
95 0 10 20 0 15 10 20 0 10
50 15 5 15 10 10 5 10 3 2
70 0 20 0 20 0 20 10 15 5];
contents=[70 70 120 120 120 150 150 150 150 190
30 30 50 58 73 79 81 81 81 89
110 110 150 150 180 180 200 240 240 280
55 60 70 80 90 100 115 115 115 116
75 80 95 95 110 125 125 135 145 155
95 95 105 125 125 140 150 170 170 180
50 65 70 85 95 105 110 120 123 125
70 70 90 90 110 110 130 140 155 160
];
limit=[165 150 160 155 132 162];
const=[0.082607 -0.054717 -0.069387 -0.034632 0.00032711 0.23757
0.047764 0.1275 0.061985 -0.10278 0.24283 -0.060693
0.052794 -0.00014644 -0.1565 0.20504 -0.06471 -0.078055
0.11986 0.033224 -0.009871 -0.020882 -0.041202 0.092897
-0.025705 0.086667 0.12467 -0.012018 -0.065452 0.046634
0.12165 -0.11269 0.0023561 0.0056932 0.070026 -0.00029128
0.12199 -0.018644 -0.0027873 0.14522 -0.0038961 0.16636
-0.0015179 0.098528 -0.20119 0.076336 -0.0091698 0.00038828
110.48 131.35 -108.99 77.612 133.13 120.85];
ratio=[33 15 48 19.5 27 30 21 27];
k=0;
mind=[2 2 2 2 2 2 2 2];
maxd=[2 2 2 2 2 2 2 2];
A=[const(1,1) const(2,1) const(3,1) const(4,1) const(5,1) const(6,1) const(7,1) const(8,1)
const(1,2) const(2,2) const(3,2) const(4,2) const(5,2) const(6,2) const(7,2) const(8,2)
-const(1,3) -const(2,3) -const(3,3) -const(4,3) -const(5,3) -const(6,3) -const(7,3) -const(8,3)
const(1,4) const(2,4) const(3,4) const(4,4) const(5,4) const(6,4) const(7,4) const(8,4)
const(1,5) const(2,5) const(3,5) const(4,5) const(5,5) const(6,5) const(7,5) const(8,5)
const(1,6) const(2,6) const(3,6) const(4,6) const(5,6) const(6,6) const(7,6) const(8,6)
1 0 0 0 0 0 0 0
0 1 0 0 0 0 0 0
0 0 1 0 0 0 0 0
0 0 0 1 0 0 0 0
0 0 0 0 1 0 0 0
0 0 0 0 0 1 0 0
0 0 0 0 0 0 1 0
0 0 0 0 0 0 0 1
-1 0 0 0 0 0 0 0
0 -1 0 0 0 0 0 0
0 0 -1 0 0 0 0 0
0 0 0 -1 0 0 0 0
0 0 0 0 -1 0 0 0
0 0 0 0 0 -1 0 0
0 0 0 0 0 0 -1 0
0 0 0 0 0 0 0 -1
];
Aeq=[
1 1 1 1 1 1 1 1 ];
b=[54.5200;18.6500;51.0100;77.3880;-1.1300;41.1500;(t+ratio)';(ratio-t)'];%content(1,s1(n1));content(2,s2(n2));content(3,s3(n3));content(4,s4(n4));content(5,s5(n5));content(6,s6(n6));content(7,s7(n7));content(8,s8(n8));];
f=[0 0 0 0 0 0 0 0 ];
lb = zeros(16,1);
answer=[];
minimum=5000;
s1=[3 6 10];
s2=[5 6 7 10];
s3=[3 5 7 8];
s4=[3 4 5 6];
s5=[5 6 8 9 10];
s6=[3 4 6 7 8];
s7=[2 3 4 5 6];
s8=[3 5 7];
%beq=[contents(1,s1(n1)-1);contents(2,s2(n2)-1);contents(3,s3(n3)-1);contents(4,s4(n4)-1);contents(5,s5(n5)-1);contents(6,s6(n6)-1);contents(7,s7(n7)-1);contents(8,s8(n8)-1);
beq=[total];
[x,fval,exitflag,output,lambda] = linprog(f,A,b,Aeq,beq,lb);
if exitflag==1,
maxprice=max([judge(1,x(1)) judge(2,x(2)) judge(3,x(3)) judge(4,x(4)) judge(5,x(5)) judge(6,x(6)) judge(7,x(7)) judge(8,x(8)) ]);
if maxprice<minimum
minimum=maxprice;
answer=x;
end;
end;
answer
minimum
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -