现在时间是:
当前位置:首 页 >> 数学建模>> 教学区>> 文章列表

数学建模作业9

作者:18数51 孙山峰 18074004   发布时间:2020-05-08 10:24:10   浏览次数:27

2(河流污染与进化问题)

(1)x1表示化工厂1每天处理的污水量(万m³/d),x2表示化工厂2每天每天处理的污水量(万m³/d

(2)在化工厂1和化工厂2之间,河水中污水含量不得超过0.2%,则有

2-x1/500 <= 2/1000, x1>=1

河水流经第二个化工厂后,河水中的污水含量仍不得超过0.2%,则有

[0.82-x1+1.4-x2]/700 <= 2/1000,0.8x1+x2 >= 1.6

由于每个化工厂每天处理的污水量不会大于每天的排放量,故应有

x1 <= 2,    x2 <= 1.4

(3)f表示两个化工厂处理污水的总费用,则有

f=1000x1+800x2

因此,该问题数学模型为

min f=1000x1+800x2

x1>=1

0.8x1+x2 >= 1.6

x1 <= 2

x2 <= 1.4

x1x2>=0

化为一般形式得:

min f=1000x1+800x2

-x1 <= -1

-0.8x1 - x2 <= -1.6

x1 <= 2

x2<= 1.4

x1x2>=0

MATLAB代码如下:

c=[1000;800]

A=[-1 0;-0.8 -1;1 0;0 1]

b=[-1;-1.6;2;1.4]

lb=zeros(2,1)

[x,z,exitflag,output,lambda] = linprog(c,A,b,[],[],lb)

 

运行结果为:

c =

 

        1000

         800

 

 

A =

 

   -1.0000         0

   -0.8000   -1.0000

    1.0000         0

         0    1.0000

 

 

b =

 

   -1.0000

   -1.6000

    2.0000

    1.4000

 

 

lb =

 

     0

     0

 

Optimization terminated.

 

x =

 

    1.0000

    0.8000

 

 

z =

 

   1.6400e+03

 

 

exitflag =

 

     1

 

 

output =

 

         iterations: 8

          algorithm: 'interior-point-legacy'

       cgiterations: 0

            message: 'Optimization terminated.'

    constrviolation: 0

      firstorderopt: 3.1337e-12

 

 

lambda =

 

    ineqlin: [4x1 double]

      eqlin: [0x1 double]

      upper: [2x1 double]

      lower: [2x1 double]

 

故最优解为x1=1x2=0.8,最少费用为1000*1+800*0.8=1640

4(运输问题)

设某公司有三个生产地点A1A2A3生产某种物资,将运到三个销售地B1B2B3,进行销售。已知公司的初始运输方案如表1所示,三个厂到各销售点每吨物资的运价如表2所示,是确定运输费用最省的运输方案

 

B1

B2

B3

产量ai

A1

8

3

3

15

A2

5

6

5

18

A3

5

3

8

17

销量bj

18

12

16

 

(表1:初始运输方案   单位:t

 

B1

B2

B3

A1

50

90

20

A2

30

10

70

A3

60

20

80

(表2:单位运价  单位:元/t

由表1和表2的数据可知:

总产量为:15+18+17=50

总销量为:18+12+16=46

本题为产>销问题

初始运送方案总运费为:S=8*50+3*20+5*30+6*10+5*10+5*60+3*20+8*80=1990

对这个问题,虚设一个销地,令其销量为产销量之差

B4=15+18+17-18+12+16=4

该列单价运价为0,即可化为产销平衡问题,如下表:

 

B1

B2

B3

B4

产量ai

A1

50

90

20

0

15

A2

30

10

70

0

18

A3

60

20

80

0

17

销量bj

18

12

16

4

 

构建数学模型,假设产地A1,A2,A3B1,B2,B3,B4配送的运输量为X1,……X12

 

B1

B2

B3

B4

产量ai

A1

X1

X2

X3

X4

15

A2

X5

X6

X7

X8

18

A3

X9

X10

X11

X12

17

销量bj

18

12

16

4

 

设运费为S,构建线性方程组如下:

minS=50*X1+90*X2+20*X3+0*X4+30*X5+10*X6+70*X7+0*X8+60*X9+20*X10+80*X11+0*X12

X1+X2+X3+X4=15

X5+X6+X7+X8=18

X9+X10+X11+X12=17

X1+X5+X9=18

X2+X6+X8=12

X3+X7+X11=16

X4+X8+X12=4

Xi>=0(i=1,2……,12)

 

MATLAB代码如下:

F=[50 90 20 0 30 10 70 0 60 20 80 0]

m=[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]

n=[15 18 17 18 12 16 4]

M=[0 0 0 0 0 0 0 0 0 0 0 0]

[v,e]=linprog(F,[],[],m,n,M)

x=reshape(v,4,3)

x=x'

 

结果为:

F =

 

  1 10

 

    50    90    20     0    30    10    70     0    60    20

 

  11 12

 

    80     0

 

 

m =

 

  1 10

 

     1     1     1     1     0     0     0     0     0     0

     0     0     0     0     1     1     1     1     0     0

     0     0     0     0     0     0     0     0     1     1

     1     0     0     0     1     0     0     0     1     0

     0     1     0     0     0     1     0     0     0     1

     0     0     1     0     0     0     1     0     0     0

     0     0     0     1     0     0     0     1     0     0

 

  11 12

 

     0     0

     0     0

     1     1

     0     0

     0     0

     1     0

     0     1

 

 

n =

 

    15    18    17    18    12    16     4

 

 

M =

 

  1 10

 

     0     0     0     0     0     0     0     0     0     0

 

  11 12

 

     0     0

 

Optimization terminated.

 

v =

 

    0.0000

    0.0000

   15.0000

    0.0000

   18.0000

    0.0000

    0.0000

    0.0000

    0.0000

   12.0000

    1.0000

    4.0000

 

 

e =

 

   1.1600e+03

 

 

x =

 

    0.0000   18.0000    0.0000

    0.0000    0.0000   12.0000

   15.0000    0.0000    1.0000

    0.0000    0.0000    4.0000

 

 

x =

 

    0.0000    0.0000   15.0000    0.0000

   18.0000    0.0000    0.0000    0.0000

    0.0000   12.0000    1.0000    4.0000

由此我们可以得出最优运输方案如下:

 

B1

B2

B3

B4

产量ai

A1

0

0

15

0

15

A2

18

0

0

0

18

A3

0

12

1

4

17

销量bj

18

12

16

4

 

总运费为:1160

 

7(分配问题)

某车间有甲、乙两台机床加工A,B,C三种工件,在一个生产周期内甲、乙机床的工作机时分别为800900,需要三种工件的数量分别为400600500,且已知用两种不同车床加工不同工件所需的机时数成本如下表,问怎样安排加工任务,才能使得既完成加工任务,又能使总的加工成本最少?

加工机时

所需件数

A

0.4

0.5

400

B

1.1

1.2

600

C

1

1.3

500

可用机时

800

900

 

(加工机时表)

加工成本

A

13

11

B

9

12

C

10

8

(加工成本表)

解:设三种工件在甲机床加工件数分别为x1,x2,x3,在乙机床加工件数分别为x4,x5,x6,设总成本为S

可建立线性规划模型:

minS=13x1+9x2+10x3+11x4+12x5+8x6

x1+x4=400

x2+x5=600

x3+x6=500

0.4x1+1.1x2+x3 <= 800

0.5x3+1.2x5+1.3x6 <= 900

xi >= 0(i=1,2,3,4,5,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]

lb=zeros(6,1)

[x,fval]=linprog(f,A,b,Aeq,beq,lb)

运行结果为:

f =

 

    13     9    10    11    12     8

 

 

A =

 

    0.4000    1.1000    1.0000         0         0         0

         0         0         0    0.5000    1.2000    1.3000

 

 

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

 

 

lb =

 

     0

     0

     0

     0

     0

     0

 

Optimization terminated.

 

x =

 

    0.0000

  600.0000

    0.0000

  400.0000

    0.0000

  500.0000

 

 

fval =

 

   1.3800e+04

 

故最优解为在甲机床上生产600件工件B,在乙机床上生产400个工件A500个工件C,总加工费用为13800







上一篇:没有了    下一篇:没有了

Copyright ©2020    计算数学达人 All Right Reserved.

技术支持:自助建站 | 领地网站建设 |短信接口 |燕窝 版权所有 © 2005-2020 lingw.net.粤ICP备16125321号 -5