数学建模实验报告

更新时间:2023-08-06 06:54:01 阅读量: 实用文档 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

Lingo软件的上机实践应用

《数学建模实验报告》

Lingo软件的上机实践应用

简单的线性规划与灵敏度分析

学号: 班级: 姓名: 日期: 2010-7-21

数学与计算科学学院

Lingo软件的上机实践应用

一、 实验目的:

通过对数学建模课的学习,熟悉了matlab和lingo等数学软件的简单应用,了解了用lingo软件解线性规划的算法及灵敏性分析。

此次lingo上机实验又使我更好地理解了lingo程序的输入格式及其使用,增加了操作连贯性,初步掌握了lingo软件的基本用法, 会使用lingo计算线性规划题,掌握类似题目的程序设计及数据分析。

二、 实验题目(P55课后习题5):

某工厂生产A1、A2两种型号的产品都必须经过零件装配和检验两道工序,如果每天可用于零件装配的工时只有100h,可用于检验的工时只有120h,各型号产品每件需占用各工序时数和可获得的利润如下表所示:

(1)试写出此问题的数学模型,并求出最优化生产方案。 (2)对产品A1的利润进行灵敏度分析 (3)对装配工序的工时进行灵敏度分析

(4)如果工厂试制了A3型产品,每件A3产品需装配工时4h,检验工时2h,可获利润5元,那么该产品是否应投入生产?

Lingo软件的上机实践应用

三、 题目分析:

总体分析:要解答此题,就要运用已知条件编写出一个线性规划的Lingo程序,对运行结果进行分析得到所要数据;当然第四问也可另编程序解答。

四、 实验过程:

(1)符号说明

设生产x1件A1产品,生产x2件A2产品.

(2)建立模型

目标函数:maxz=6x1+4x2 约束条件:

1) 装配时间:2x1+3x2<=100 2) 检验时间:4x1+2x2<=120 3) 非负约束:x1,x2>=0 所以模型为: maxz=6x1+4x2

2x1 3x2 100

s.t. 4x1 2x2 120 x,x 0 12

Lingo软件的上机实践应用

(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 value: 200.0000 Total solver iterations: 2

Model Title: 零件生产计划

Lingo软件的上机实践应用

Variable Value Reduced Cost X1 20.00000 0.000000 X2 20.00000 0.000000

Row Slack or Surplus Dual Price 1 200.0000 1.000000 2 0.000000 0.5000000 3 0.000000 1.250000

附运行结果图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

Row Current Allowable Allowable RHS Increase Decrease 2 100.0000 80.00000 40.00000 3 120.0000 80.00000 53.33333

附灵敏性分析图1:

Lingo软件的上机实践应用

五、 问题解答:

1)试写出此问题的数学模型,并求出最优化生产方案 答:①数学模型:maxz=6x1+4x2

2x1 3x2 100

s.t. 4x1 2x2 120 x,x 0 12

②生产20件A1产品,生产20件A2产品,最大利润200元。 2)对产品A1的利润进行灵敏度分析

答:从以上灵敏性分析可以看出,最有基不变的条件下A1利润允许变化范围: (6—3.3,6+2)=(2.6,8),即A1利润允许变化范围为2.6元——8元。 3)对装配工序的工时进行灵敏度分析

答:上面输出的Current RHS的Allowable Increase和Allowable Decrease给出了影子价格有意义条件下,装配工序的工时最多增加80h,减少40h。即在60h——180h之间。

4)如果工厂试制了A3型产品,每件A3产品需装配工时4h,检验工时2h,可获利润5元,那么该产品是否应投入生产?

答:由以上Dual Price分析可知:装配工时每增加1h,利润增加0.5元;检验工时每增加1h,利润增加1.25元。而生产一件A3产品的时间用来生产A1、A2所带

Lingo软件的上机实践应用

来的价值是:0.5*4+1.25*2=4.5元<5元。所以,A3型产品应投入生产。

对于问题4,我们还可以采取下列分析方法:

我们再设一个未知数x3,则与前两个未知数组合可得到下列程序: 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 value: 206.6667 Total solver iterations: 0

Lingo软件的上机实践应用

Model Title: 零件生产计划

Variable Value Reduced Cost X1 23.33333 0.000000 X2 0.000000 0.3333333 X3 13.33333 0.000000

Row Slack or Surplus Dual Price 1 206.6667 1.000000 2 0.000000 0.6666667 3 0.000000 1.166667

附运行结果图2:

解答第四问:从运行结果我们可以明显的看出,最大利润变为206.6667元,比原先增多,所以A3型产品应投入生产。

七、 运行情况记录和分析:

此程序在初始运行中出现了很多问题(在此仅举两例): 1、起初按所编程序运行,发现无法进行灵敏性分析,后来资料分析才知道,在lingo软件第一次运行的时候,灵敏性分析是默

Lingo软件的上机实践应用

认关闭的。后来我经过一系列操作后才得以进行灵敏性分析。

2、当然,类似这样的难题还有很多。再有就是,对第四问,我采用两种方法解答,这就需要对每次的结果都做深入思考和比较分析,已确定其正确。

八、总结(心得体会)

平时课后多是只把课本上的例题程序在电脑上试运行一下,自己并没有真正的花太多的时间去编写。等到用得时候,才发现原来自己以前看的东西掌握的并不很彻底,运行程序老是卡壳,不是这里出错就是那里不完善,然后只能到书上查找资料和问同学,以获得新的理解并应用。现在多少有点体会了,想真正地把课本摸透,把知识学好必须自己尝试着去练,像老师说的把书上的例题改改或是编写些简单的程序就是很好的方法……

我也认识到细心的重要性,有时候一个程序眼看就要成功了,可就是运行不了,仔细查看才知道犯了不该犯的小错误。

当运行自己编写的程序并获得预期效果时的那种感觉太爽了……

本文来源:https://www.bwwdw.com/article/cpum.html

Top