数学建模作业9
作者:郭轩含 发布时间:2020-05-08 09:55:33 浏览次数:87
数学建模作业8
例2(河流污染与净化问题)
Matlab程序:
c=[1000 800];
A=[-1 0;-0.8 -1;1 0;0 1];
b=[-1;-1.6;2;1.4];
vlb=[0,0];
vub=[];
[x,fval]=linprog(c,A,b,[],[],vlb,vub)
运行结果:
x =
1.0000
0.8000
fval =
1.6400e+03
例4(运输问题)现重庆有一面包厂拥有A、B、C三个生产地,向甲、乙、丙、丁4个超市供应面包,A、B、C供应量分别是50,50,75,甲、乙、丙、丁的需求量分别是40,55,60,20,各起运站到目的地的单位运费见表1,问该厂应该怎样安排运输,使总运费最少?
![]()
|
甲 |
乙 |
丙 |
丁 |
A |
3 |
1 |
4 |
5 |
B |
7 |
3 |
8 |
6 |
C |
2 |
3 |
9 |
2 |
解:设产地A运送到销地甲,乙,丙,丁的运输量分别为x1、x2、x3、x4;产地B运送到销地甲,乙,丙,丁的运输量分别为x5、x6、x7、x8;产地C运送到销地甲,乙,丙,丁的运输量分别为x9、x10、x11、x12。显然,变量满足非负限制:xj≥0(j=1,2…12)。线性规划模型为:
minf(x)=3x1+x2+4x3+5x:4+7x5+3x6+8x7+6x8+2x9+3x10+9x11+2x12
s.t.
x1+x2+x3+x4=50;
x5+x6+x7+x8=50;
x9+x10+x11+x12=50;
x1+x5+x8=40;
x2+x6+x10=55;
x3+x7+x11=60;
x4+x9+x12=20;
x1,x2,x3,x4,x5,x6,x7,x8,x9,x10,x11,x12≥0
Matlab程序:
C=[3 1 4 5 7 3 8 6 2 3 9 2];
Aeq = [1 1 1 1 0 0 0 0 0 0 0 0
0 0 0 0 1 1 1 1 0 0 0 0
0 0 0 0 0 0 0 0 1 1 1 1
1 0 0 0 1 0 0 0 1 0 0 0
0 1 0 0 0 1 0 0 0 1 0 0
0 0 1 0 0 0 1 0 0 0 1 0
0 0 0 1 0 0 0 1 0 0 0 1];
Beq = [50 50 75 40 55 60 20];
LB = [0 0 0 0 0 0 0 0 0 0 0 0 ];
[X,fval]=linprog(C,[],[],Aeq,Beq,LB)
运行结果:
X =
0.0000
0.0000
50.0000
0.0000
0.0000
40.0000
10.0000
0.0000
40.0000
15.0000
0.0000
20.0000
fval =
565
例7(分配问题)
某车间有甲、乙两台机床,可用于加工三种工件。假定这两台车床的可用台时数分别为800和900,三种工件的数量分别为400、600和500,且已知用三种不同车床加工单位数量不同工件所需的台时数和加工费用如下表。问怎样分配车床的加工任务,才能既满足加工工件的要求,又使加工费用最低?
车床类型 |
单位工件所需加工台时数 |
单位工件加工费用 |
可用台时数 |
||||
工件一 |
工件二 |
工件三 |
工件一 |
工件二 |
工件三 |
||
甲 |
0.4 |
1.1 |
1.0 |
13 |
9 |
10 |
800 |
乙 |
0.5 |
1.2 |
1.3 |
11 |
12 |
8 |
900 |
解:设在甲车床上加工工件1、2、3的数量分别为x1、x2、x3,在乙车床上加工工件1、2、3的数量分别为x4、x5、x6。可建立以下线性规划模型:
minz=13x1+9x2 +10x3 +11x4 +12x5 + 8x6
s.t.
x1+x4 =400
x2+x5 = 600
x3+x6 =500
0.4x1 +1.1x2 +x3≤800
0.5x4+1.2x5+1.3x6≤900
xi≥0, i= 1,2,..,6
Matlab程序:
f=[13 9 10 11 12 8];
A=[0.4 1.1 1 0 0 0
0 0 0 0.5 1.2 1.3];
b=[800;900];
Aeq = [1 0 0 1 0 0
0 1 0 0 1 0
0 0 1 0 0 1];
beq = [400 600 500];
vlb = zeros(6,1)
vub = [];
[X,fval] = linprog(f,A,b,Aeq,beq,vlb,vub)
vlb =
0
0
0
0
0
0
运行结果:
X =
0.0000
600.0000
0.0000
400.0000
0.0000
500.0000
fval =
1.3800e+04