lingo软件的上机实践应用。
简单的线性规划与灵敏度分析。
学号。班级。
姓名: 日期:
一、 实验目的:
通过对数学建模课的学习,熟悉了matlab和lingo等数学软件的简单应用,了解了用lingo软件解线性规划的算法及灵敏性分析。
此次lingo上机实验又使我更好地理解了lingo程序的输入格式及其使用,增加了操作连贯性,初步掌握了lingo软件的基本用法, 会使用lingo计算线性规划题,掌握类似题目的程序设计及数据分析。
二、 实验题目(p55课后习题5):
某工厂生产、两种型号的产品都必须经过零件装配和检验两道工序,如果每天可用于零件装配的工时只有100h,可用于检验的工时只有120h,各型号产品每件需占用各工序时数和可获得的利润如下表所示:
1)试写出此问题的数学模型,并求出最优化生产方案。
2)对产品的利润进行灵敏度分析。
3)对装配工序的工时进行灵敏度分析。
4)如果工厂试制了型产品,每件产品需装配工时4h,检验工时2h,可获利润5元,那么该产品是否应投入生产?
三、 题目分析:
总体分析:要解答此题,就要运用已知条件编写出一个线性规划的lingo程序,对运行结果进行分析得到所要数据;当然第四问也可另编程序解答。
四、 实验过程:
1)符号说明
设生产件产品,生产件产品。
2)建立模型。
目标函数:maxz=6+4
约束条件:1) 装配时间:2+3<=100
2) 检验时间:4+2<=120
3) 非负约束:,>0
所以模型为:
maxz=6+4
3)模型求解:
1)程序。model:
title 零件生产计划;
max=6*x1+4*x2;
2*x1+3*x2<=100;
4*x1+2*x2<=120;
end附程序图1:
2)计算结果。
global optimal solution found.
objective value200.0000
total solver iterations2
model title: 零件生产计划。
variablevalue reduced cost
x1 20.000000.000000
x2 20.000000.000000
row slack or surplus dual price
附运行结果图1:
3)做灵敏性分析:
ranges in which the basis is unchanged:
objective coefficient ranges
current allowable allowable
variable coefficient increase decrease
x1 6.000000 2.000000 3.333333
x2 4.000000 5.000000 1.000000
righthand side ranges
rowcurrent allowable allowable
rhs increase decrease
附灵敏性分析图1:
五、 问题解答:
1)试写出此问题的数学模型,并求出最优化生产方案。
答:①数学模型:maxz=6+4
生产20件产品,生产20件产品,最大利润200元。
2)对产品的利润进行灵敏度分析。
答:从以上灵敏性分析可以看出,最有基不变的条件下利润允许变化范围:
6—3.3,6+2)=(2.6,8),即利润允许变化范围为2.6元——8元。
3)对装配工序的工时进行灵敏度分析。
答:上面输出的current rhs的allowable increase和allowable decrease给出了影子**有意义条件下,装配工序的工时最多增加80h,减少40h。即在60h——180h之间。
4)如果工厂试制了型产品,每件产品需装配工时4h,检验工时2h,可获利润5元,那么该产品是否应投入生产?
答:由以上dual price分析可知:装配工时每增加1h,利润增加0.
5元;检验工时每增加1h,利润增加1.25元。而生产一件产品的时间用来生产、所带来的价值是:
0.5*4+1.25*2=4.
5元<5元。所以,型产品应投入生产。
对于问题4,我们还可以采取下列分析方法:
我们再设一个未知数,则与前两个未知数组合可得到下列程序:
model:
title 零件生产计划;
max=6*x1+4*x2+5*x3;
2*x1+3*x2+4*x3<=100;
4*x1+2*x2+2*x3<=120;
end附程序图2:
运行结果:global optimal solution found.
objective value206.6667
total solver iterations0
model title: 零件生产计划。
variablevalue reduced cost
x1 23.333330.000000
x2 0.0000000.3333333
x3 13.333330.000000
row slack or surplus dual price
附运行结果图2:
解答第四问:从运行结果我们可以明显的看出,最大利润变为206.6667元,比原先增多,所以型产品应投入生产。
七、 运**况记录和分析:
此程序在初始运行**现了很多问题(在此仅举两例):
1、起初按所编程序运行,发现无法进行灵敏性分析,后来资料分析才知道,在lingo软件第一次运行的时候,灵敏性分析是默认关闭的。后来我经过一系列操作后才得以进行灵敏性分析。
2、当然,类似这样的难题还有很多。再有就是,对第四问,我采用两种方法解答,这就需要对每次的结果都做深入思考和比较分析,已确定其正确。
八、总结(心得体会)
平时课后多是只把课本上的例题程序在电脑上试运行一下,自己并没有真正的花太多的时间去编写。等到用得时候,才发现原来自己以前看的东西掌握的并不很彻底,运行程序老是卡壳,不是这里出错就是那里不完善,然后只能到书上查找资料和问同学,以获得新的理解并应用。现在多少有点体会了,想真正地把课本摸透,把知识学好必须自己尝试着去练,像老师说的把书上的例题改改或是编写些简单的程序就是很好的方法……
我也认识到细心的重要性,有时候一个程序眼看就要成功了,可就是运行不了,仔细查看才知道犯了不该犯的小错误。
当运行自己编写的程序并获得预期效果时的那种感觉太爽了……
数学建模 实验报告
解 根据题意我们可以建立目标函数和约束条件。目标函数 约束条件 均大于0且为整数。所以周一开始工作到从周日开始工作的雇员数分别为 2 人 2 人 4 人 3 人 3 人 0 人 8 人时,总聘用费用最少为 11000 元。直接将区间范围改为 5,5 时,结果如下 最小值点取在x 1.5715处,然而...
数学建模实验报告
桂林电子科技大学2017 2018学年第1学期。数学建模。一 实验目的。学会使用matlab软件解决线性规划问题的最优值求解问题。学会使用matlab软件解决非线性规划问题的最优值求解问题。学会将实际问题归结为线性规划问题或者非线性规划问题用matlab软件建立巧当的数学模型来求解。二 实验内容。用...
数学建模实验报告
湖南科技学院实验报告。实验目的。1 学会操作matlab。2 应用软件建立层次分析模型,选择最佳方案。实验内容 算法 程序 步骤和方法 输入 输出 实验结果 实验结果。分析 问题 某企业由于生产效益较好,年底取得一笔利润,领导决定拿出一部分资金分别用于 1 为企业员工发年终奖金 2 扩建集体福利设施...