以下是修改后的代码:

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=0;
for i=1:10
    cum=cum+y(i);
end
con(1)=154*cum>=12000;

tum=0;
for i=10:20
    tum=tum+y(i);
end
con(2)=154*tum>=13000;

bum=0;
for i=20:30
    bum=bum+y(i);
end
con(3)=154*bum>=13000;

dum=0;
for i=30:40
    dum=dum+y(i);
end
con(4)=154*dum>=19000;

lum=0;
for i=40:50
    lum=lum+y(i);
end
con(5)=154*lum>=13000;
con(6)= (y(1)+y(11)+y(41))*154<=9500;
con(7)= (y(2)+y(12)+y(42))*154<=10500;
con(8)= (y(3)+y(13)+y(43))*154<=10000;
con(9)= (y(4)+y(14)+y(44))*154<=10500;
con(10)= (y(5)+y(15)+y(45))*154<=11000;
con(11)= (y(6)+y(16)+y(46))*154<=12500;
con(12)= (y(7)+y(17)+y(47))*154<=10500;
con(13)= (y(8)+y(18)+y(48))*154<=13000;
con(14)= (y(9)+y(19)+y(49))*154<=13500;
con(15)= (y(10)+y(20)+y(50))*154<=12500;
con(16)= (y(31)+y(21))*154<=12500;
con(17)= (y(32)+y(22))*154<=11000;
con(18)= (y(33)+y(23))*154<=13500;
con(19)= (y(34)+y(24))*154<=10500;
con(20)= (y(35)+y(25))*154<=11500;
con(21)= (y(36)+y(26))*154<=13500;
con(22)= (y(37)+y(27))*154<=10500;
con(23)= (y(38)+y(28))*154<=11500;
con(24)= (y(39)+y(29))*154<=13500;
con(25)= (y(40)+y(30))*154<=12500;

fee=0;
tee=0;
for i=1:10
    fee=fee+y(i)*c(3,i);
end
for i=1:10
    tee=tee+y(i);
end
ft=fee/tee;
con(26)= ft<=0.305;
con(27)= ft>=0.285;

hee=0;
pee=0;
for i=11:20
    hee=hee+y(i)*c(3,i);
end
for i=11:20
    pee=pee+y(i);
end
gt=hee/pee;
con(28)= gt<=0.305;
con(29)= gt>=0.285;

qee=0;
aee=0;
for i=41:50
    qee=qee+y(i)*c(3,i);
end
for i=41:50
    aee=aee+y(i);
end
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=0;
for i=1:50
    leyan=leyan+y(i);
end

con(32)=cube/14+leyan*8/60<=8;
prob.Constraints = con;
[sol,fval,flag]=solve(prob),sol.y

这个修改过的代码主要包括以下几个方面的修改:

  1. optimconstr的参数改为32,以匹配后续添加的约束。
  2. con(6)的写法修改为单独的约束形式,以匹配后续添加的约束。
  3. prob.Constraints的参数修改为con,以包含所有的约束。
  4. 移除了部分不必要的分号。
  5. 修正了cubeleyan的计算方式。

请注意,这只是修改后的代码,可能还有其他的逻辑错误或者需要进一步的调整。请根据具体的需求和问题进行相应的修改

如何修改这个代码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	078	16

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

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