1数学数模实验报告福建农林大学计算机与信息学院(数学类课程)实验报告课程名称:数学模型姓名:苏志东系:数学专业:数学与应用数学年级:2014级学号:指导教师:姜永职称:副教授2016年6月12日实验项目列表福建农林大学计算机与信息学院数学类实验报告(一)系: 数学 专业: 数学与应用数学 年级: 2014级 姓名: 学号: 3 实验课程: 数学模型 实验室号: 明南附203 实验设备号: 实验时间: 2016/6/6 指导教师签字: 成绩: 1.实验项目名称:数学规划模型建立及其软件求解2.实验目的和要求:了解数学规划的的基本理论和方法,并用于建立实际问题的数学规划模型;会用LINGO 软件解数学规划问题并对结果加以分析应用。
3.实验使用的主要仪器设备和软件:联想启天M430E 电脑;LINGO12.0或以上版本。
4.实验的基本理论和方法:一般地,数学规划模型可表述成如下形式:)(in x f z M x=.,...,2,1,0)(s.t.m i x g i =≤其中)(x f 表示目标函数,),...,2,1(0)(m i x g i=≤为约束条件。
LINGO 用于解决二次规划、线性规划以及非线性规划问题,同时可以求解线性或非线性方程(组)。
LINGO 的最大特色在于通过高运行速度解决优化模型中的决策变量的整数取值问题。
线性优化求解程序通常使用单纯性算法,可以使用LINGO 的内点算法解决大规模规划问题。
非线性规划可通过迭代求解一系列线性规划求解。
5.实验内容与步骤:问题一:某公司将3种不同含硫量的液体原料(分别记为甲、乙、丙)混合生产两种产品(分别记为A,B),按照生产工艺的要求,原料甲、乙必须首先倒入混合池中混合,混合后的液体再分别与原料丙混合生产A,B.已知原料甲,乙,丙的含硫量分别是3%,1%,2%,进货价格分别为6千元/ t,16千元/ t ,10千元/t ,产品A,B的含硫量分别不能超过 2.5%,1.5%,售价分别为9千元/t,15千元/t,根据市场信息,原料甲、乙、丙的供应量都不能超过500t;产品A,B 的最大市场需求量分别为100t ,200t.(1) 应如何安排生产?(2) 如果产品A的最大市场需求量增长为600t,应如何安排生产?(3) 如果乙的进货价格下降为12千元/t,应如何安排生产?分别、对(1)、(2)两种情况进行讨论.解答:(1)问题分析根据题目要求,不难想到,这个问题的目标是使公司获利最大,要做的决策就是生产计划,即生产多少产品A和产品B ,限制条件有:原料供应、市场需求、不同含硫量生产不同的产品。
根据这些条件,利用lingo软件,求出最终决策。
基本模型决策变量:设用(i=甲,乙,丙;j=A,B )表示用第i 种原料用于生产产品j ,将i=甲,乙,丙转换为i=1,2,3,j=A,B 转换为j=1,2.目标函数:设公司获利为z 千元,则有:∑∑∑∑∑=====---+=21321221131231110166159j jj j j j i i i i x x x x x z约束条件原料供应:原料i(i=1,2,3)均不超过500t,则∑=≤21500j ijx(i=1,2,3)市场需求:产品A 、B 的需求量分别为100t 、200t ,则有:⎪⎪⎩⎪⎪⎨⎧≤≤∑∑==312311200100i i i i x x含硫量:根据甲乙混合比例,有:22122111::x x x x =, 由生产不同产品含硫量百分比,有:⎪⎪⎩⎪⎪⎨⎧≤++++<≤++++<%5.1x x x x %2x %13%x 1%%5.2x x x x %2x %13%x 1.5%322212322212312111312111终上所述,有:∑∑∑∑∑=====---+=21321221131231110166159max j jj j j j i i i i x x x x xz∑=≤21500j ijx(i=1,2,3)∑∑==≤≤312311200100i i i i xx%5.1x x x x %2x %13%x 1%%5.2x x x x %2x %13%x 1.5%322212322212312111312111≤++++<≤++++<对上述式子进行调整,并利用lingo 软件,可求解出最优解。
Lingo 程序为:max=9*(x11+x21+x31)+15*(x12+x22+x32)-6*(x11+x12)-16*(x21+x22)-10*(x31+x32); 0.5*x11-1.5*x21-0.5*x31<=0; 1.5*x11-0.5*x21+0.5*x31>0; 1.5*x12-0.5*x22+0.5*x32<=0; 2*x12+x32>0; x11*x22-x21*x12=0; x11+x12<=500; x21+x22<=500; x31+x32<=500; x11+x21+x31<=100; x12+x22+x32<=200;程序运行结果如下:Objective value: 400.0000VariableValueX110.000000X210.000000X310.000000X120.000000X22100.0000X32100.0000结果分析:根据结果显示,最优解为用100t的乙原料和100t的丙原料混合,生成200t产品B,所以目标函数最优解为40万元(400千元)。
(2)本小题的解法与(1)基本一致,只需要将约束条件改变为,相应的代码由x11+x21+x31<=100改为x11+x21+x31<=600,并代入程序计算,便可求解出结果。
程序运行结果如下:Objective value: 600.0000VariableValueX11300.0000X210.000000X31300.0000X120.000000X220.000000X320.000000结果分析:根据结果显示,最优解为用300t的甲原料和300t的丙原料混合,生成600t产品A所以目标函数最优解为60万元(600千元)。
(3)将乙的进货价格下降为12千元/t,只需修改一下目标函数值和约束条件即可。
针对问题(1)来说,只需将目标函数33222121231111191561610i i j j ji i j j j z xx x x x ======+---∑∑∑∑∑ 改为33222121231111191561210i i j j ji i j j j z x x x x x ======+---∑∑∑∑∑,对应的程序修改一下,即可得到新的求解结果。
程序运行结果如下:Objective value:900.0000Variable Value Reduced Cost X11 0.000000 0.000000X21 0.000000 0.000000X31 0.000000 0.000000X12 50.00000 0.000000X22 150.0000 0.000000X32 0.000000 1.000000结果分析:根据结果显示,最优解为用50t 的甲原料和150t 的乙原料混合,生成200t 产品B ,所以目标函数最优解为90万元(900千元)。
问题二:某造船厂需要决定下四个季度的帆船生产量。
下四个季度的帆船需求量分别是40条、60条、75条和25条,这些需求必须按时满足。
每个季度正常的生产能力是40条帆船,每条船的生产费用为40万元。
如果加班生产,每条船的生产费用为45万元。
每个季度末,每条船的库存为2万元。
假定生产提前期为0,初始库存为10条船。
如何安排生产可使总费用最小?(LINGO程序要求利用集合语言编写)解答:建立模型设四个季度轮船的需求量分别为4,3,2,1DEM;II),(=四个季度正常生产的产量分别为IIRP;),4,3,2,1(=四个季度加班生产的产量分别为IIOP;4,3,2,1),(=四个季度轮船的总量分别为IIALL),(=4,3,2,1根据题意和约束条件可以建立以下模型:目标函数:)))()((*2)(*45)(*40(41∑=-++I I DEM I ALL I OP I RP约束条件由题意依次为1、每季度正常生产能力是40条船,即4,3,2,1=I ,应有40)(<=I RP ;2、需求量限制:,应有)()(I DEM I ALL >=;模型求解利用题目所给数据,将所建立的目标函数以及限制条件输入LINGO:模型代码如下:sets:SIJI/1..4/:DEM,RP,OP,ALL;endsetsdata:DEM=40 60 75 25;enddataALL(1)=10+RP(1)+OP(1);ALL(2)=ALL(1)-DEM(1)+RP(2)+OP(2);ALL(3)=ALL(2)-DEM(2)+RP(3)+OP(3);ALL(4)=ALL(3)-DEM(3)+RP(4)+OP(4);min=@sum(SIJI(I):40*RP(I)+45*OP(I)+2*(ALL(I)-DEM(I)));4,3,2,1=I@for(SIJI(I):RP(I)<=40);@for(SIJI(I): ALL(I)>=DEM(I));end点击运行按钮得试验结果如下:Global optimal solution found.Objective value: 7845.000Variable Value Reduced CostDEM( 1) 40.00000 0.000000DEM( 2) 60.00000 0.000000DEM( 3) 75.00000 0.000000DEM( 4) 25.00000 0.000000RP( 1) 40.00000 0.000000RP( 2) 40.00000 0.000000RP( 3) 40.00000 0.000000RP( 4) 25.00000 0.000000OP( 1) 0.000000 2.000000OP( 2) 10.00000 0.000000OP( 3) 35.00000 0.000000OP( 4) 0.000000 5.000000ALL( 1) 50.00000 0.000000ALL( 2) 60.00000 0.000000ALL( 3) 75.00000 0.000000ALL( 4) 25.00000 0.000000结果分析:10)2(,35)4(,,0)3(=OPOP。
OP=OPRP;0=)1(=,)3(4040,25)4()2(,=RPRP==40)1(=RP所以须这样安排生产:第一季度需生产40条,无需加班;第二季度需生产出50条,其中有10条是加班生产的;第三季度需生产出75条,其中35条是加班生产的;第四季度需生产出25条,无需加班;最小总费用为7845万元。