以下是修改后的代码:

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
``
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

原文地址: http://www.cveoy.top/t/topic/iNtH 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录