1、数学建模实习 一、数学规划模型 1 问题得提出 某企业将铝加工成A,B两种铝型材,每5吨铝原料就能在甲设备上用12小时加工成3吨A型材,每吨A获利2400元,或者在乙设备上用8小时加工成4吨B型材,每吨B获利1600元。现在加工厂每天最多能得到250吨铝原料,每天工人得总工作时间不能超过为480小时,并且甲种设备每天至多能加工100吨A,乙设备得加工能力没有限制。 (1)请为该企业制定一个生产计划,使每天获利最大。 (2)若用1000元可买到1吨铝原料,就是否应该做这项投资?若投资,每天最多购买多少吨铝原料? (3)如果可以聘用临时工人以增加劳动时间,付给工人得工资最多就是每
2、小时几元? (4)如果每吨A型材得获利增加到3000元,应否改变生产计划? 2 问题分析与假设 2、1问题分析 我们为该企业制定得生产计划要使得每天获利最大,也就就是也就就是要确定分别用多少吨铝原料分配给甲、乙设备使得总利润最大,因此分配给甲、乙设备铝材料得吨数就就是我们这次线性规划得决策变量,由此就确定了获利得目标函数。同时目标函数又要满足一些约束条件,如每天最多能得到250吨铝原料、每天工人得总工作时间不能超过为480小时、甲种设备每天至多能加工100吨A,由此可以建立求解利润最大化得数学模型。 对于问题2,3上,仅仅改变相关参数,就可以得到最优解所得到最大值得变化,也就就是所
3、谓得影子价格,通过与影子价格比较,制定相应得策略。对于问题4可以从两个角度进行分析,一种直接改变参数,观察最优解就是否变化,另外一种就是对其进行灵敏度分析,观察其系数就是否落在取值范围内。 2、2问题假设 1.假设加工A,B型材得铝原料数就是满足铝原料供应得非负实数; 2、 假设就是在完全市场经济得情形下,进行问题分析得 3.假设A,B 型材每吨得获利就是与产量,所用时间就是相互独立得,即两两之间就是没有关系得。 这三条假设就是进行线性规划,影子价格分析得基础 3 模型建立 在模型建立之前,我们先给出如下记号 :分配给甲设备个5吨铝材料 :分配给乙设备个5吨铝材料 :每天得
4、生产获利 现在我们建立数学模型各给甲、乙分配5吨原材料得情况下,原材料得生产能力、消耗时间、获利之间得关系如下表: 甲设备消耗5吨铝材料/ 甲设备消耗5吨铝材料/ 所用时间 12 8 产量 3吨A产品 4吨B产品 获利 32400=7200 41600=6400 由于5吨产品给甲设备生产,能够得到3吨A产品,能够获利7200元,并且5吨产品给乙设备生产,能够得到4吨B产品,能够获利6400元,则建立目标函数 并且由于1)加工厂每天最多能得到250吨铝原料,2)每天工人得总工作时间不能超过为480小时,并且3)甲种设备每天至多能加工100吨A,乙设备得加工能力没有
5、限制,同时应满足非负约束,则其应满足约束条件: 4 模型求解 4、1问题1求解 根据建立得模型,我们可以知道,我们利用Matlab来进行求解,将问题极小化以便处理,即,则当时得最优解时,也就就是得最有解,进而将问题转化为: 解得 那么 此时最优解就是,即分配给甲100吨,分配给乙150吨,此时获得最大利润万元。 4、2问题得进一步求解 4.2、1若用1000元可买到1吨铝原料,即加工厂每天最多能得到251吨铝原料,则可以原问题转化为 此时最优解 并且,则,利润相比增加了960 1000。那么此时说明不应该做这项投资。其实这960元就就是铝材
6、料得影子价格,在完全市场经济得条件下,由于该资源得价格高于影子价格,则此时企业应当卖掉该资源,而不就是扩大生产。 4、2、2同样对于问题3,当工时增加1小时,企业能够获得多获得大得利益,同样这也就是工人工资得影子价格,与上述方法类似计算得到工人得影子价格就是200元,即付给工人得工资最多不能超过200元,否则还不如不要这个工人所带来得收益更大。 4、2、3对于问题4,当A产品得获利变为每吨为3000元时,改变相关参数,与上述3个问题类似,我么可以得到最优解仍就是,并且我们求得 元。所以不需要改变生产计划。 4、2、4接下来进行参数得灵敏度分析,使用LINGO11软件进行灵敏度分析较好,
7、所以在这使用了这个软件进行分析,软件运行截图如下: Ranges in which the basis is unchanged: Objective Coefficient Ranges Current Allowable Allowable Variable Coefficient Increase Decrease X1
8、 7200、000 2400、0000 800、0000 X2 6400、000 800、0000 1600、0000 Righthand Side Ranges Row Current Allowable Allowable RHS Increase Decrease STUFF 250、0000 50、00000
9、 33、33333 TIME 480、0000 53、33333 80、00000 CAPACITY 100、0000 INFINITY 40、00000 得到得取值范围,得到得取值范围,在这样得取值范围内,最优解不改变。显然问题4求解得9000就落在取值范围,从这角度也验证了此时最优解不改变。铝原料最多可增加50吨,劳动时间最多可增加53、3h,在这些取值范围内,进行影子价格得讨论才就是有意义得。 5 模型评价 该模型就是在在完全市场经济得情形下,假设A,B 型材每吨得获利就是与产量,
10、所用时间相互独立得情况下,建立线性规划模型,前者就是影子价格分析得前提,后者就是线性得模型。对于问题1,2,3,笔者都就是利用matlab分析得,matlab进行求最优解与影子价格得求解还就是很方便得,但就是不适合对于参数得敏感性得分析,这里笔者采用了lingo软件,得到内容丰富得输出,虽然输出得内容很多,这里笔者仅仅使用了一部分笔者关心得数据,事实上lingo就是解决线性规划问题很好得软件,这对于未来解决实际问题也就是十分有用得。 6 模型推广与优化 该模型就是个简单得线性规划问题,运用了单纯形法、对偶问题、影子价格等问题,事实上该模型不仅适应与生产计划得制定,同时也可以应用于市场销售、
11、库存管理、运输问题等领域,此外还有合理下料、配料问题、物料管理等方面,分析方法、建模方法都就是类似得。 由于该模型仅仅适应线性规划,实际上,我们还可以引进正负偏差量等,将线性规划变为目标规划,这就能够适应更多得情形,而这些引进都就是当市场条件改变得时候才发生改变。 7 程序 附录一 8 参考文献 [1]运筹学 甘应爱、田丰等 清华大学出版社 背景 2005 [2]数学建模案例分析 白其峥 海洋出版社 2000年 北京 [3]数学实验初步 肖海军 科学出版社 2007 北京 二、鱼得捕捞问题 1问题提出 作为鱼塘得管理者来说,在相同得初始鱼苗量得情况下,养殖费基本就是
12、固定得,但就是经济效益会随着捕捞策略得改变而改变,那么采取何种捕捞策略,就会使得在固定得投入下,产生更大得效益呢?捕捞问题就就是在这样得背景下产生得。 1、1在鱼塘中投放尾鱼苗,随着时间得增长,尾数将减少而每尾得重量将增加。设尾数得(相对)减少率为常数;由于喂养引起得每尾鱼重量得增加率与鱼得表面积成正比,由于消耗引起得每尾鱼重量得减少率与质量本身成正比。分别建立尾数与每尾鱼重得微分方程,并求解。 1、2用控制网眼得办法不捕小鱼,到时刻T才开始捕捞,捕捞能力用尾数得相对减少量表示,记作E,即单位时间捕获量就是E。问如何选择T与E,使从T开始得捕获量最大。 2问题得分析与假设 2、1分析
13、 鱼得捕捞策略会受到很多因素得影响,如气候、水温、天敌、中间斗争等因素都在影响捕捞策略得制定,但就是这些因素都不就是主要得,主要因素还就是捕捞能力及捕捞时机这两个。我们在建模得过程中,没有必要考虑所有得因素,只要抓住主要得、关键得因素做出合理得假设,我们这个模型就就是在抓住主要因素,忽略次要因素得基础上建立起来得。 对于问题1、1,在不考虑捕捞得情况下,鱼得尾数得(相对)减少率为常数,初始尾鱼苗,那么可以依据此条件建立起微分方程,通过求解可以得到鱼得尾数关于得函数表达式。由于喂养引起得每尾鱼重量得增加率与鱼得表面积成正比,并且消耗引起得每尾鱼重量得减少率与质量本身成正比,这样我们就可以建立鱼
14、重量得变化率与质量以及表面积得关系,同时我们又知道质量与表面积也存在一定得关系,这就是由于质量与体积成正比(我们在这里假设鱼得密度就是一个常数),并且我们在假设鱼就是椭球体得情况下,鱼得体积与表面积存在某种固定关系,通过这些关系,我们可以建立鱼质量得变化率与鱼质量间得函数关系,通过取极限,我们就可以得到关于鱼重得微分方程。通过求解我们就可以得到鱼得重量与得关系。 对于问题1、2,在有捕捞也有自然死亡得情况下,尾数得相对减少量不仅与鱼得自然死亡有关,还与捕捞能力有关,我们先假设捕捞能力为一常数,从而可以建立起微分方程,求得通过求解可以得到鱼得尾数关于得函数表达式。同时对于捕捞量,要使得从T开始
15、得捕获量最大,那么就要达到最大值,那么如何求得T,将就是后面建模将要解决得问题。 2、2假设 在建立模型之前,我们要进行合理得假设: 2、2、1 假设鱼得尾数就是关于得连续可微函数 2、2、2 假设鱼得重量就是关于得连续可微函数 2、2、3 假设鱼得密度就是一个常数 2、2、4 假设鱼就是椭球体得,三个方向上得半径分别就是 2、2、5在不考虑捕捞得情况下,鱼得尾数得(相对)减少率为常数 2、2、5喂养引起得每尾鱼重量得增加率与鱼得表面积成正比,比例为 2、2、6消耗引起得每尾鱼重量得减少率与质量本身成正比,比例为 2、2、7鱼得尾数得减少仅自然死亡与捕捞有关,排除其她因素,
16、如天敌、气候、环境污染、种内斗争等因素 3模型得建立 3、1在模型建立之前,我们先在这里给出相应得记号: 鱼得尾数 鱼得质量 鱼得尾数得(相对)减少率为常数 鱼得初始质量 喂养引起得每尾鱼重量得增加率与鱼得表面积成正比得比例系数 消耗引起得每尾鱼重量得减少率与质量本身成正比得比例系数 鱼就是椭球体得,三个方向上得半径分别就是 鱼得密度就是一个常数 鱼得体积 鱼得表面积 总得捕捞量 捕捞能力
17、 捕捞时机 3、2无捕捞情况下,建立尾数得微分方程模型 在鱼塘中投放尾鱼苗,鱼得尾数得(相对)减少率为常数为 则 并且 两边令有 很容易解得该方程得解为 该模型符合鱼尾数就是逐渐减少情形 3、3 建立鱼重与得时间关系 首先我们知道由于喂养引起得每尾鱼重量得增加率与鱼得表面积成正比,比例系数为。由于消耗引起得每尾鱼重量得减少率与质量本身成正比,比例系数为,则 两边同时令,得到 , 现在我们来建立 由于 由于目前对于椭球表面积并没有确定得公式,在相差不大得情况下,这里仅给出一个近似公式 则 则,我们再令
18、 得到, 3、4 建立捕捞量与捕捞时机之间得关系 首先由于有捕捞得情况下,鱼得尾数之间得微分方程关系就需要考虑捕捞量,并且由于单位时间捕获量就是E,则建立微分方程有: () 并且由于时刻后才有捕捞,则 很容易求得该微分方程得解为 () 又对于捕捞量,要使得从T开始得捕获量最大,那么就要达到最大值 则通过代入有捕捞量时得,并代入质量,就可以得到得具体表达式。 4模型得求解 4、1求解无捕捞情况下,建立尾数得微分方程 在无捕捞得情形下,之前已经求得,现在我们要对这个参数进行合理得讨论,通过Matlab作图进行分析在不同得参数下尾数关于得大致走势,这
19、里应用这4个进行分析,做出图形。(程序附录2) 显然根据实际情况,就是一个接近与0较小得数,否则养殖者将无法盈利,当大于1得情况在现实生活中也有可能出现,比如出现大规模得病害,或者天敌得入侵,这都就是我们所不需要讨论得极端情况,我们只就是针对一般情况作出讨论,所以就是一个较小得数。 4、2求解鱼重与得微分方程 由之前建立好得微分方程,有 该方程利用变量分离得办法,很容易求出其解,笔者在这里利用Matlab来进行求解。(程序见附录2) 程序求解为(b + 1/exp((c*(C3 + t))/3))^3/c^3,代入初值化简可以得到如下: ,由于随着
20、得增大而增大,关于就是递减函数,则要求就是递增函数,则要求,这也就是说明满足该式就是鱼得固有属性。 4、3求解捕捞量与捕捞时机 由于捕捞量 其中,有捕捞得情况下, 并且 则 由于就是实际问题存在,并且与无关,仅与有关我们不妨设其值为,为一常数 则 我们利用这个积分公式 可以将转变为一个关于,得函数,里面将不含积分,由于没有具体数据,这里给出具体得函数也就是没有多大意义得,但就是很容易通过计算就是知道这个函数得具体得表达式得,我们不妨设其为 则 这就就是关于,得二元函数,通过对二元函数求极值得方法,我们就可以确定最佳得,,使得达到最大,我们刚开始就是假设为一常数,那就是为了
21、更方便得建立方程,后来我们可以瞧到实际上就是一个独立得参数,建立起了关于,得函数,由于问题得规模已经超出了笔者得能力,这里仅仅就是提出一个思路,具体得求解有待未来知识储备加深后进行进一步得突破。 5模型评价 该模型将鱼得体积简化成为一个椭球体,以此为基础建立起了与之间得关系,这就是该模型得出发点,并且假设鱼得质量就是分布均匀得,并想从网上找到鱼得密度等相关参数,发现没有前人对其具体测量过,这需要我们在对具体养殖得时候要测出该鱼种类得密度等参数,将余简化为椭球体方便我们建立起微分方程,事实上这样得假设也就是十分合理得。 但就是我们这个模型并没有给出合适得捕捞时机与捕捞能力,一方面就是由于条
22、件得限制,相关参数,具体数据缺乏,另一方面也就是笔者能力有限,虽知道无穷积分得存在性,但就是却无法通过已学知识给出具体得表达式,这也就是本次建模不足得地方,未来将在这个地方予以突破。 6 模型得推广与改进 该模型虽然就是建立对鱼得捕捞得基础上得,但就是由于水产品生长机理相似性,我们可以将其推广到虾,黄鳝等捕捞问题上,比如当虾时,我们可以将虾简化为一个长方体,将黄鳝假定为一个圆柱体等等。 并且我们这次建模仅仅考虑捕捞,而没有考虑养殖,繁殖等因素,若引入这两种因素,就会使得问题得规模变得更复杂,需要利用偏微分方程进行求解,这将不利于推广,不过我们可以在固定一个因素时进行分析,虽然这样得策略未
23、必就是最优得,但就是在简单得计算下,它就是最有可能就是最佳得。 7程序代码 附录2 8参考文献 [1]数学建模案例分析 白其峥 海洋出版社 2000年 北京 [2]数学实验初步 肖海军 科学出版社 2007 北京 附录1 %求解线性规划问题得最优解,对于1,2,3,4问题得最优解仅 %仅改变相关参数即可。 f=[-7200;-6400]; A=[5 5 12 8 3 0]; b=[250;480;100]; lb=zeros(2,1); [x,fval]=linprog(f,A,b,[],[],lb); x fval lingo用来对线性规划问
24、题进行敏感性分析 model: max=7200*x1+6400*x2; [stuff]x1+x2<=50; [time]12*x1+8*x2<=480; [capacity]3*x1<=100; end 之后点击Solve进行求解 再点击Ranges进行敏感性分析 附录2 %对a取值范围进行分析得绘图 t=1:0、01:50; a=5; n0=5000; n=n0*exp(-a*t); plot(t,n); xlabel('a=5'); ylabel('n'); 求解微分方程得代码与运行结果 dsolve('Dm=b*(m^(2/3))-c*m') ans = 0 b^3/c^3 (b + 1/exp((c*(C3 + t))/3))^3/c^3 之后代入初值后得求解就是笔者通过笔算进行得,因为代入初值进行求解会使得表达式变得十分复杂,并且需要舍去第一个与第二个解






