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

    %优化模型主程序,计算当∑xij《si时的结果

b=[0, 104, 301, 750, 606, 194, 205, 201, 680, 480, 300, 220, 210, 420, 500]';
%优化初始值x0的计算
s=[800 800 1000 2000 2000 2000 3000];
x00=[320.2  290.2 258.6 198 180.5 163.1 181.2 224.2 252 256 266 287 288 312 ...
    360.3   345.2 330.5 269.9 250.5 243.1 269.2 297 301 311 326.2 346 347 0 ...
    375.3 355.2 336.6 276 260.5 248.1 240  203.2 237 241 251 266.2 281 287 ...
    410.3 395.2 376.6 316 300.5 293.1 276.2 244.2 222 211 221 242 251 257 ...
    400.3 380.2 361.6 301 285.5 278.1 266.2 234.2 212 188 206 199 228 242 ...
    420.3 400.2 306.6 246 290.5 283.1 271.2 234.2 212 201 195 176.5 161 178 ...
    435.7 425.3 386.6 326 310.5 303.1 291.2 259.2 237 226 216 198.2 186 162];
y0=[200 200 200 200 200 200 200 200 200 200 200 200 200 200 200];
 x1=[0 0 0 0 0 0 0 x00];
x0=[x1 y0];
VLB=zeros(120,1);
VUB=[1./zeros(105,1) ;b];
[x,fval,exitflag]=fmincon('target',x0,[],[],[],[],VLB,VUB,'mycon')
%将结果以矩阵方式输出
y=reshape(x(1:105),7,15)
sum(y,2)

%结果显示,总运费为93.52万元,节点s5的运量为430吨,小于500.于是改变模型为:
%1)不让s5生产和 2)令s5>500 分别计算