www.gusucode.com > 用matlab和lingo软件解决了数学建模大赛2000年B题 > 用matlab和lingo软件解决了数学建模大赛2000年B题/钢管订购/obs-mycon.m

    %约束条件函数。由于函数自变量较多,采用了非线性约束条件函数。将自变量x矩阵(7*15)与y向量合并为一列向量x,得到约束条件
function [g,ceq]=mycon(x)

s=[800 800 1000 2000 2000 2000 3000]';
d=[0,104, 301, 750, 606, 194, 205, 201, 680, 480, 300, 220, 210, 420, 500]';
%不等式约束
 g=[sum(x(2+0*15:15+0*15))-x(1+0*15)-s(1);sum(x(2+1*15:15+1*15))-x(1+1*15)-s(2);sum(x(2+2*15:15+2*15))-x(1+2*15)-s(3);sum(x(2+3*15:15+3*15))-x(1+3*15)-s(4);...
         sum(x(2+4*15:15+4*15))-x(1+4*15)-s(5);sum(x(2+5*15:15+5*15))-x(1+5*15)-s(6);sum(x(2+6*15:15+6*15))-x(1+6*15)-s(7)];
%等式约束
 ceq=[d(3-1)-x(105+3-1)+x(105+3)-sum(x(2*7+1:2*7+7));d(4-1)-x(105+4-1)+x(105+4)-sum(x(3*7+1:3*7+7));d(5-1)-x(105+5-1)+x(105+5)-sum(x(4*7+1:4*7+7));d(6-1)-x(105+6-1)+x(105+6)-sum(x(5*7+1:5*7+7));d(7-1)-x(105+7-1)+x(105+7)-sum(x(6*7+1:6*7+7));...
        d(8-1)-x(105+8-1)+x(105+8)-sum(x(7*7+1:7*7+7));d(9-1)-x(105+9-1)+x(105+9)-sum(x(8*7+1:8*7+7));d(10-1)-x(105+10-1)+x(105+10)-sum(x(9*7+1:9*7+7));d(11-1)-x(105+11-1)+x(105+11)-sum(x(10*7+1:10*7+7));...
        d(12-1)-x(105+12-1)+x(105+12)-sum(x(11*7+1:11*7+7));d(13-1)-x(105+13-1)+x(105+13)-sum(x(12*7+1:12*7+7));d(14-1)-x(105+14-1)+x(105+14)-sum(x(13*7+1:13*7+7)); d(15-1)-x(105+14)+x(105+14)-sum(x(14*7+1:14*7+7));];