matlab中如何修改这个代码a=526 519 421 400 295 274 246 190 064 127;190 099 190 113 127 225 148 204 309 351;589 561 561 456 351 365 246 246 106 057;064 176 127 183 274 260 421 372 505 610;442 386 372 316 225 281
以下是修改后的代码:
a = [5.26 5.19 4.21 4.00 2.95 2.74 2.46 1.90 0.64 1.27;
1.90 0.99 1.90 1.13 1.27 2.25 1.48 2.04 3.09 3.51;
5.89 5.61 5.61 4.56 3.51 3.65 2.46 2.46 1.06 0.57;
0.64 1.76 1.27 1.83 2.74 2.60 4.21 3.72 5.05 6.10;
4.42 3.86 3.72 3.16 2.25 2.81 0.78 1.62 1.27 0.50];
c = [0.95 1.05 1.00 1.05 1.10 1.25 1.05 1.30 1.35 1.25;
1.25 1.10 1.35 1.05 1.15 1.35 1.05 1.15 1.35 1.25;
0.3 0.28 0.29 0.32 0.31 0.33 0.32 0.31 0.33 0.31];
prob = optimproblem;
y = optimvar('y', 50, 'Type', 'integer', 'LowerBound', 0);
sum = 0;
for i = 1:5
for j = 1:10
b = (i-1)*10+j;
sum = sum + y(b)*y(b)*a(i,j);
end
end
prob.Objective = 154*sum;
con = optimconstr(32);
cum = sum(y(1:10));
con(1) = 154*cum >= 12000;
tum = sum(y(10:20));
con(2) = 154*tum >= 13000;
bum = sum(y(20:30));
con(3) = 154*bum >= 13000;
dum = sum(y(30:40));
con(4) = 154*dum >= 19000;
lum = sum(y(40:50));
con(5) = 154*lum >= 13000;
cum1 = sum(y([1 11 41]));
con(6) = cum1*154 <= 9500;
cum2 = sum(y([2 12 42]));
con(7) = cum2*154 <= 10500;
cum3 = sum(y([3 13 43]));
con(8) = cum3*154 <= 10000;
cum4 = sum(y([4 14 44]));
con(9) = cum4*154 <= 10500;
cum5 = sum(y([5 15 45]));
con(10) = cum5*154 <= 11000;
cum6 = sum(y([6 16 46]));
con(11) = cum6*154 <= 12500;
cum7 = sum(y([7 17 47]));
con(12) = cum7*154 <= 10500;
cum8 = sum(y([8 18 48]));
con(13) = cum8*154 <= 13000;
cum9 = sum(y([9 19 49]));
con(14) = cum9*154 <= 13500;
cum10 = sum(y([10 20 50]));
con(15) = cum10*154 <= 12500;
cum11 = sum(y([31 21]));
con(16) = cum11*154 <= 12500;
cum12 = sum(y([32 22]));
con(17) = cum12*154 <= 11000;
cum13 = sum(y([33 23]));
con(18) = cum13*154 <= 13500;
cum14 = sum(y([34 24]));
con(19) = cum14*154 <= 10500;
cum15 = sum(y([35 25]));
con(20) = cum15*154 <= 11500;
cum16 = sum(y([36 26]));
con(21) = cum16*154 <= 13500;
cum17 = sum(y([37 27]));
con(22) = cum17*154 <= 10500;
cum18 = sum(y([38 28]));
con(23) = cum18*154 <= 11500;
cum19 = sum(y([39 29]));
con(24) = cum19*154 <= 13500;
cum20 = sum(y([40 30]));
con(25) = cum20*154 <= 12500;
fee = sum(y(1:10).*c(3, 1:10));
tee = sum(y(1:10));
ft = fee/tee;
con(26) = ft <= 0.305;
con(27) = ft >= 0.285;
hee = sum(y(11:20).*c(3, 11:20));
pee = sum(y(11:20));
gt = hee/pee;
con(28) = gt <= 0.305;
con(29) = gt >= 0.285;
qee = sum(y(41:50).*c(3, 41:50));
aee = sum(y(41:50));
mt = qee/aee;
con(30) = mt <= 0.305;
con(31) = mt >= 0.285;
cube = 0;
for i = 1:5
for j = 1:10
l = (i-1)*10+j;
cube = cube + y(l)*a(i,j);
end
end
leyan = sum(y);
con(32) = cube/14 + leyan*8/60 <= 8;
prob.Constraints = con;
[sol, fval, flag] = solve(prob);
sol.y
``
原文地址: http://www.cveoy.top/t/topic/iNtH 著作权归作者所有。请勿转载和采集!