Lingo软件在数学建模中的应用
- 格式:ppt
- 大小:911.00 KB
- 文档页数:43
Lingo软件的应用颜宁生(北京服装学院)本人有一个“杜撰”课程对联的爱好,有一位同学在参加我的数学建模培训班后,给我写了一幅对联,表达了他对练好Lingo软件的决心。
上联:有心栽花花可以不开下联:无心插柳柳必须成荫横批:感悟拎购时间:2012,7,21地点:华南理工大学内容一、数学建模案例二、适合学生学习Lingo软件的两类入门题三、练会Lingo后的同学能帮老师做什么四、一份《数学建模》试卷模板一、数学建模案例上联:数学建模融入到现实生活当中下联:拎购软件嵌入到衣可晒单元格横批:嵌入技术嵌入技术过滤器的作用,把有用的信息过滤出来,从而求解的界面更生动和友好。
1.1、2012年北京工业大学数学建模C题1.1.1、假设为了简化模型的求解,假设每辆货车进入生产线后,其糖份就不再流失。
1.1.2、数学模型首先,将剩余时间分成4个时间段,设x(i,j)为0‐1变量,若第j辆货车在第i个时间段进入生产线,则x(i,j)=1,否则取0,(i=1,2,3,4;j=1,2,……,11),设a ij表示第j辆货车在第i个时间段进入生产线时能够加工出的蔗糖的百分比。
根据表C.1,得到a ij 值如下:aijj1234567891011i 111111111111 20.32490.547600.51840.75690.21160.14440.26010.65610.51840.49 30.10560.299900.268700.04480.02090.06770.43050.26870.2401 40.01110.089900.072200.0020.00040.00460.18530.07220.0576i=j=111max =a i j x i j st: x i j 3,1,2,3,4x i j (1,2,3,4;1,2, (11)j i i j =≤===∑∑∑41111(,)(,)(,)(,)=0或11.1.3、数学模型求解的Lingo 程序1.1.3.1、获取数据的Lingo 程序sets:h/1..2/;l/1..11/;hl(h,l):bg7;endsets data:bg7=@ole('C 题.xls','_bg7');@ole('C 题.xls','_g7')=bg7;enddata1.1.3.2、自动求解的Lingo 程序sets:h/1..4/;l/1..11/;hl(h,l):a,x;minimum/1/:h22;endsets data:a =@ole('C 题.xls','_g11');@ole('C 题.xls','_g17')=x;@ole('C 题.xls','h22')=h22;enddatamax=@sum(hl:a*x);@for(h(i):@sum(l(j):x(i,j))<=3);@for(l(j):@sum(h(i):x(i,j))=1);h22(1)=@sum(hl:a*x);@for(hl:@bin(x));End1.1.3.3、自动判解的Lingo 程序sets:h/1..4/;l/1..11/;hl(h,l):a,x;minimum/1/:y10;endsets data:a =@ole('C 题.xls','_g11');x=@ole('C题.xls','_g17');h22=@ole('C题.xls','h22');@ole('C题.xls','y10')=y10;enddatay10(1)=@if(@abs(h22-@sum(hl:a*x))#lt#0.01,100,0);end1.1.3.4、随机方案求甘蔗糖产量的Lingo程序sets:h/1..4/;l/1..11/;hl(h,l):a,x;minimum/1/:h23;endsetsdata:a=@ole('C题.xls','_g11');x=@ole('C题.xls','_g17');@ole('C题.xls','h23')=h23;enddatah23(1)=@sum(hl:a*x);end1.1.4、结果最优方案为:j1234567891011i 100100110000 200001000011 301010000100 410000001000即:第3辆、第6辆和第7辆第1批进入生产线;第5辆、第10辆和第11辆第2批进入生产线;第2辆、第4辆和第9辆第9批进入生产线;第1辆和第8辆第4批进入生产线;最优值为5.78009124,即能将11车甘蔗加工出5.78车甘蔗糖。
LINGO是一种用于线性规划、整数规划、非线性规划、混合整数规划等数学建模和优化问题的软件工具。
它可以用于解决各种实际问题,包括生产计划、物流、资源分配、网络设计等。
以下是一个简单的LINGO案例,以帮助您了解如何使用LINGO进行优化建模和求解问题:**问题描述:**假设有一家制造公司,他们生产两种产品:A和B。
公司有两个工厂,每个工厂都有不同的生产能力和成本。
公司希望确定每个工厂应该生产多少产品A和B,以最大化利润,同时满足生产能力和市场需求的限制。
**问题数据:**- 工厂1的生产能力:最多生产500个A和300个B- 工厂2的生产能力:最多生产400个A和600个B- 产品A的利润:每个A产品的利润为30美元- 产品B的利润:每个B产品的利润为40美元- 生产一个A产品的成本:工厂1为10美元,工厂2为15美元- 生产一个B产品的成本:工厂1为12美元,工厂2为10美元- 市场需求:产品A的市场需求为600个,产品B的市场需求为800个**LINGO建模和求解:**在LINGO中,可以使用数学表达式来建立优化模型。
以下是一个LINGO模型的示例:```SETS:FACTORIES = 1..2;ENDSETSDATA:CAPACITY(FACTORIES) = 500 300400 600;PROFIT = 30 40;COST(FACTORIES) = 10 1512 10;DEMAND = 600 800;ENDDATAVARIABLES:X(FACTORIES) = 0;ENDVARIABLESMAX = @SUM(FACTORIES, PROFIT(FACTORIES) * X(FACTORIES))SUBJECT TOCAPACITY_CONSTRAINT(F)$(FACTORIES): @SUM(FACTORIES, COST(F, FACTORIES) * X(FACTORIES)) <= CAPACITY(F);DEMAND_CONSTRAINT(I)$(FACTORIES): @SUM(FACTORIES,X(FACTORIES)) >= DEMAND(I);POSITIVE_X(F)$(FACTORIES): X(F) >= 0;ENDSUBMODEL:MAX;SOLVE;```上述LINGO模型首先定义了SETS、DATA、VARIABLES和MAX,然后使用SUBJECT TO部分定义了约束条件,最后使用MODEL和SOLVE命令求解优化问题。
实验二:Lingo求解线性规划问题学时:4学时实验目的:掌握用Lingo求解线性规划问题的方法,能够阅读Lingo结果报告。
实验内容:1、求解书本上P130的习题1:某银行经理计划用一笔资金进行有价证券的投资,可供购进的证券以及其信用等级、到期年限、收益如下表1所示,按照规定,市政证券的收益可以免税,其他证券的收益需按50%的税率纳税,此外还有以下限制:1)政府及代办机构的证券总共至少要购进400万元;2)所购证券的平均信用等级不超过1.4(信用等级数字越小,信用程序越高);3)所购证券的平均到期年限不超过5年。
表 1(1)若该经理有1000万元资金,应如何投资?(2)如果能够以2.75%的利率借到不超过100万元资金,该经理应如何操作?(3)在1000万元资金情况下,若证券A的税前收益增加为4.5%,投资应否改变?若证券C的税前收益减少为4.8%,投资应否改变?列出线性规划模型,然后用Lingo求解,根据结果报告得出解决方案。
2、指派问题:6个人计划做6项工作,其效益如下表(”-”表示某人无法完成某项工作),3、有限制的运输问题:6个发点6个收点,其供应量、接收量和运费如下表1(”-”表示某个发电无法向某个收点运输货物),如果某个发点向某个收点运输货物,则运输量不得低使用Lingo 的一些注意事项1. “>”与“>=”功能相同。
2. 变量与系数间相乘必须用”*”号,每行用”;”结束。
3. 变量以字母开头,不能超过8个字符。
4. 变量名不区分大小写(包括关键字)。
5. 目标函数用min=3*x1+2*x2或max=3*x1+2*x2的格式表示。
6. “!”后为注释。
7. 变量界定函数实现对变量取值范围的附加限制,共4种:@bin(x) 限制x 为0或1 @bnd(L,x,U) 限制L≤x≤U@free(x) 取消对变量x 的默认下界为0的限制,即x 可以取任意实数 @gin(x) 限制x 为整数 其他可见“Lingo 教程.doc ”如书上85页的Lindo 代码可改为如下Lingo 代码: max =72*x1+64*x2; x1+x2<50;12*x1+8*x2<480; 3*x1<100;例1.1 如何在LINGO 中求解如下的LP 问题:,6002100350..32min 212112121≥≤+≥≥++x x x x x x x t s x x在模型窗口中输入如下代码:min =2*x1+3*x2; x1+x2>=350; x1>=100;2*x1+x2<=600;然后点击工具条上的按钮 即可。