防灾数学分享 http://blog.sciencenet.cn/u/fzmath 防灾科技学院数学教研室

博文

一道初中学生问的数学应用题

已有 6315 次阅读 2018-1-13 22:40 |系统分类:教学心得

有一初一学生问了一道数学应用题:

某地新建的一个企业,每月将生产1960吨污水,为保护环境,该企业计划购置污水处理设备,有A和B两种型号可选:A型设备每月可处理污水240吨,B设备每月可处理污水180吨。

已知商家售出的2台A型,3台B型污水处理设备总价为44万元,售出的1台A型,4台B型污水处理设备总价为42万元。

求:(1)A型和B型污水处理设备的单价各为多少钱?

   (2)为保证每月生产的污水全部处理完,该企业决定购买上述的污水处理器,那么他们至少要花多少钱?


设:(1)设A型和B型污水处理设备价格分别x和y,则由题设 2x+3y = 44, x+4y = 42, 解得 x = 10, y = 8.

(2) 分析:由于每万元处理的污水吨数为

      A型污水处理设备: 240/10=24

      B型污水处理设备: 180/8 = 22.5

      所以,尽可能选A型污水处理设备, 又1960/240>8.1,应选9台A型污水处理设备,0台B型污水处理设备,这时需要花费9*10=90万元。但由于9台A型污水处理设备能力过剩240*9-1960=2160-1960=200,猜想这种方案未必最优,再尝试用更加便宜的B型污水处理设备代替A型污水处理设备的方案.每台A型污水处理设备比B型污水处理设备污水处理能力多240-180=60,比较过剩的处理能力200>60*3,可以用3台B型污水处理设备代替A型,从而可知买6台A型+3台B型污水处理设备的污水能力为240*6+180*3=1980>1960满足要求,这时的花费为10*6+8*3=84万元。


从更高的角度看,该问题实际上是个线性整数规划问题

min c = 10*x+8*y

s.t. 240*x+180*y>=1960, x>=0,y>=0,

若按线性规划求解

f = [10;8]; A = -[240,180]; b = -1960;

Aeq = [ ]; beq = [ ]; lb = zeros(2,1); ub = [10;10];%[Inf;Inf];

options = optimoptions('intlinprog','Display','off');

[X,fval] = linprog(f,A,b,[],[],[0;0],[Inf;Inf],options)

结果为

X =

   8.1667

   0.0000

fval =

  81.6667

结果显示,用8.1667个A型,0个B型,费用最低为81.6667万元,但这不符实际。因为很难买0.1667台A型污水处理设备,故线性规划结果不合理,于是限定变量为整数。

% 按线性整数规划处理

intcon = 1:2; %限制1-2个变量为整数

[X,fval] = intlinprog(f,intcon,A,b,Aeq,beq,lb,ub,options)%整数线性规划

而限制变量为整数后,符合实际.


X =

   6.0000

   3.0000

fval =

   84

可以绘图得到解释


MATLAB代码:

close all

x = 0:9; y = (1960-240*x)/180;

plot(x,y,'b')

hold on

for x = 0:9

   for y = 0:11

       c = 240*x+180*y;

       if c>1960

           plot(x,y,'r.');text(x,y,num2str(10*x+8*y))

       else

           plot(x,y,'g.');

       end

   end

end

grid on

axis([0,10,0,11])%;axis equal

f = [10;8]; A = -[240,180]; b = -1960;

Aeq = [ ]; beq = [ ]; lb = zeros(2,1); ub = [10;10];%[Inf;Inf];

options = optimoptions('intlinprog','Display','off');

[X,fval] = linprog(f,A,b,[],[],[0;0],[Inf;Inf],options)

intcon = 1:2; %1-2个变量为整数

[X,fval] = intlinprog(f,intcon,A,b,Aeq,beq,lb,ub,options)

% f = [-3;-2;-1];

% intcon = 3;

% A = [1,1,1];

% b = 7;

% Aeq = [4,2,1];

% beq = 12;

% lb = zeros(3,1);

% ub = [Inf;Inf;1]; % enforces x(3) is binary

% options = optimoptions('intlinprog','Display','off');

% [X,fval] = intlinprog(f,intcon,A,b,Aeq,beq,lb,ub,options)





https://blog.sciencenet.cn/blog-292361-1094699.html

上一篇:高等工程数学实验课后作业
下一篇:《高等工程数学》17-18学年第一学期期末考试答案
收藏 IP: 27.189.55.*| 热度|

2 谢钢 zjzhaokeqin

该博文允许注册用户评论 请点击登录 评论 (0 个评论)

数据加载中...

Archiver|手机版|科学网 ( 京ICP备07017567号-12 )

GMT+8, 2024-11-23 13:11

Powered by ScienceNet.cn

Copyright © 2007- 中国科学报社

返回顶部