运用LINGO进行优化模型求解,并与EXCEL进行连接
- 格式:doc
- 大小:215.50 KB
- 文档页数:11
LINGO使用说明比较简单
第九步,分析和优化结果。
优化模型求解完成后,你可以通过结果显
示区中的结果表格和图表来分析和优化结果。
LINGO还提供了一些分析工具,如灵敏度分析和场景分析,帮助你深入理解模型的行为和性能。
第十步,保存和导出结果。
在 LINGO 中,你可以保存整个优化模型
及其求解结果,以供将来使用。
通过点击菜单栏中的“文件”选项,选择“保存”或“导出”,就可以将模型和结果保存为不同的文件格式,如LINGO模型文件(.lng)、Excel 文件(.xls)或文本文件(.txt)。
通过上述十个步骤,你可以使用LINGO软件完成一个优化模型的建立、求解和分析。
当然,LINGO还具备其他高级功能和应用,如混合整数规划、随机规划和非线性规划等,可以根据你的具体需求进行进一步学习和应用。
LINGO使用手册和官方网站上有更多详细的说明和案例,可以帮助你更好
地使用和理解LINGO软件。
lingo引用excel中的矩阵摘要:一、Lingo 软件介绍1.Lingo 软件的基本概念2.Lingo 软件的主要功能和应用领域二、Excel 中的矩阵使用1.Excel 中矩阵的基本概念2.Excel 中矩阵的创建与编辑3.Excel 中矩阵的数据类型与格式三、Lingo 引用Excel 中的矩阵1.Lingo 与Excel 的数据交互2.如何在Lingo 中引用Excel 中的矩阵3.Lingo 引用Excel 矩阵的优势与注意事项四、结论1.Lingo 引用Excel 矩阵的实际应用案例2.Lingo 与Excel 矩阵结合的前景与展望正文:一、Lingo 软件介绍Lingo 是一款专业的数学建模与优化软件,广泛应用于运筹学、统计学、经济学等多个领域。
Lingo 可以帮助用户解决复杂的数学问题,例如线性规划、整数规划、动态规划等。
通过Lingo 软件,用户可以快速地构建数学模型,并对模型进行求解和分析。
二、Excel 中的矩阵使用矩阵是数学中的一个重要概念,它是一个按照长方形阵列排列的复数或实数集合。
在Excel 中,用户可以通过创建公式和函数来创建和编辑矩阵。
Excel 提供了丰富的矩阵操作功能,例如矩阵的相加、相减、相乘、求逆等。
此外,Excel 还可以对矩阵进行数据透视表、图表等可视化操作。
三、Lingo 引用Excel 中的矩阵Lingo 软件可以与Excel 进行数据交互,用户可以在Lingo 中直接引用Excel 中的矩阵。
具体操作方法如下:1.在Excel 中创建或编辑矩阵2.将Excel 文件中的矩阵复制到Lingo 软件中3.在Lingo 中使用矩阵进行建模和求解通过这种方法,用户可以充分利用Excel 的矩阵编辑功能,同时利用Lingo 软件强大的数学建模和求解能力。
这种组合可以大大提高用户的工作效率和建模效果。
四、结论Lingo 引用Excel 矩阵的实际应用案例非常丰富,例如在供应链管理、物流配送、生产调度等领域。
怎样在Lingo中导⼊Excel数据表?lingo调⽤excel数据图⽂教程怎样将excel数据导⼊lingo软件中?很多朋友在使⽤lingo软件做优化时,常常需要调⽤数据,⽽⼤部分的数据都是excel的形式,然后lingo却不能直接导⼊excel⽂件,那么该如何调⽤数据,才能为我们所⽤呢?接下来就让⼩编我教⼤家在Lingo中导⼊Excel数据表的⽅法吧!lingo 16(求解线性建模软件) 64位官⽅英⽂安装版(附安装教程)类型:理科⼯具⼤⼩:43.2MB语⾔:英⽂软件时间:2017-11-21查看详情建模软件Lindo LINGO 18.0 免费特别版(官⽅原版+安装教程) 64位类型:理科⼯具⼤⼩:59.6MB语⾔:英⽂软件时间:2019-12-27查看详情数学建模软件Lingo 12.0 完美特别版(原版安装+绿⾊特别版) 64位类型:理科⼯具⼤⼩:43.3MB语⾔:简体中⽂时间:2016-03-09查看详情lingo怎么调⽤excel数据?1、下⾯我以⼀个实例来教⼤家如何调⽤,⽐如要调⽤下⾯这个excel表格。
⾸先打开lingo。
2、lingo调⽤excel表格需要⽤到⼀个专⽤的函数@ole,改函数的调⽤模式是:name=@ole(‘路径’,‘name’),其中的路径是调⽤的⽂件的存储的地址,这个可以在该⽂件的属性⾥⾯找到其路径。
然后粘贴复制就可以了。
3、随后写完⾃⼰要提取⽂件中的名称,其中有时候还需要⾃⼰把lingo⽣成的数据返回到excel中去,这时候也是⽤@ole函数,不过格式恰好是反过来,@ole(‘路径’,‘名称’)=x,如图。
4、接下来打开要导⼊的excel⽂件,点击”公式“⾥⾯的”名称管理器“,新建需要的名称(wps版本的在”插⼊—名称“⾥⾯设置)。
5、设置好名称好,随后把⾃⼰的程序编写完成后,点击运⾏。
6、随后就可以看到⾃⼰运⾏的结果了,同时在excel⽂件中也可以看到lingo运⾏后的所返回的结果。
朱旭生LINGO学习心得LINGO的主要特点:一是数学化的语言,用的是数学模型比较直观;二是数据段与程序语句段分开,甚至可以利用不在lingo文件中的外界数据文件来给变量赋值.1.可以利用EXCEL与LINGO之间直接传递数据;从EXCEL到LINGO的语句为“变量=@OLE(‘EXCEL文件的详细名称(包括路径)’)”;从LINGO到EXCEL的语句为“@OLE(‘EXCEL文件的详细名称(包括路径)’)=变量”.放在LINGO数据区注意:这里的电子表格EXCEL的数据段应该取名,方法是用鼠标左键锁定数据区后从菜单“插入”中选“名称”,再选“定义”,在弹出的表格中输入该数据段的名称(英文,本来在excel 中是可以定义中文名称的,但是作为lingo变量则不能)。
输出的EXCEL表格也是如此定义数据区。
输出的表格可以与输入的表格不在同一个文件里,在lingo程序运行前定义出输出区域的名称。
注意在用cut,paste功能时很容易多出一些标点符号,使得语句不符合语法规则!2。
在解大型问题时,可能会出现计算时LINGO内存不够,这时应该修改LINGO选择项“Option”中的相关选项。
3。
象本例中,我们对EXCEL的表格中的数据进行处理(关于11或10补)时,也可以利用LINGO来完成。
4。
条件语句:@IF( logical_condition, true_result, false_result),如下面程序:MIN = COST;COST = XCOST + YCOST;XCOST = @IF( X #GT# 0, 100, 0) + 2 * X;YCOST = @IF( Y #GT# 0, 60, 0) + 3 * Y;X + Y >= 30;其中生产产品X的成本为分段函数:x=0时,成本为0;x>0时,成本为100+2x,即生产准备费为100.5.变量取名规则:以英文字母打头,后面可以跟英文字母,数字0-9,以及下划线_.变量中的字母大小写不区别,如:XAB与Xab,xab等价.6. SETS段: 定义一个同样属性的集合,如同学们,老师们,宿舍群等等,他们在建模过程中往往表示为同学1,同学2,……,同学n,以下方式等价:同学们/同学1,同学2,同学3,同学4,同学5,同学6,同学7,同学8,同学9,同学10/:分数;同学们/同学1..同学10/:分数;同学们/1..10/:分数;注:最后一种表示方式必须是从数字1开始标,但是中间那个可以是/同学3..同学10/7。
在LINGO中使用电子表格的数据在实际应用中,可能有大量数据是存放在电子表格中的(最常用的大概就是Excel软件了,所以我们这里只讨论Excel 电子表格的情况)。
通过Excel文件与LINGO 系统传递数据的函数的一般用法是通过@OLE 函数,与@FILE 函数一样,该函数只能在LINGO 模型的集合段、数据段和初始段使用。
无论用于输入或输出数据,这个函数的使用格式都是:@OLE(spreadsheet_file [, rang_name_list]其中spreadsheet_file是电子表格文件名称,应当包括扩展名(如*.xls等),还可以包含完整的路径名,只要字符书不超过64均可;rang_name_list是指文件中包含数据的单元范围(单元范围的格式与Excel中工作表的单元范围的格式一样)。
具体来说,当从Excel中向LINGO 模型中输入数据时,在集合段可以直接采用“@OLE (…)”的形式,但在数据段和初始段应当采用“属性(或变量)=@OLE(…)”的赋值形式;当从LINGO 向Excel 中输出数据时,应当采用“@OLE(…)=属性(或变量)”的赋值形式(自然,输出语句只能出现在数据段中)。
请看下面的例子。
例4.4 继续考虑上面例4.2的例子中(模型exam0402.lg4),但通过@OLE 语句输入输出数据。
首先,我们用Excel 建立一个名为mydata.xls 的Excel 数据文件,参见图4-8。
为了能够通过@OLE 函数与LINGO 传递数据,我们需要对这个文件中的数据进行命名。
具体做法是:我们用鼠标选中这个表格的B4:B7单元,然后选择Excel的菜单命令“插入|名称|定义”,这时将会弹出一个对话框,请您输入名称,例如可以将它命名为cities(这正是图4-8 所显示的情形,即B4:B7 所在的4 个单元被名为cities)。
同理,我们将C4:C7 单元命名为SOLUTION。
Lingo软件使用指南摘要:本文介绍了Lingo软件的基本使用方法。
从最基本的使用到复杂问题的解决,本文给出了比较详细的介绍。
Lingo软件是美国Lindo公司的产品,主要用来求解优化问题。
它是一个非常强大的软件,可以求解大部分优化问题,包括线性规划、二次规划、整数规划、运输问题等,是目前全球应用最广泛的优化软件之一。
这里我们简单介绍它的使用方法。
一进入Lingo如果你的计算机已经安装了Lingo,只需要在桌面上双击Lingo的快捷方式,就可以进入Lingo。
为了使自己的程序易于阅读,经常需要有一些注释,因此在编写程序中,每一行前面有感叹号的表示这一行是注释行,在程序运行中不起作用,希望初学者养成注释的好习惯。
二建立数学模型和 Lingo模型语言例1 在Lingo的命令窗口中输入下面的线性规划模型!目标函数;MAX = 100 * x1 + 150 * x2;!第一个约束;X1<= 100;!第二个约束;X2 <= 120;!第三个约束;X1 + 2 * x2<= 160;!end可有可无;end求解可得全局最优解:Objective value: 14500.00Variable ValueX1 100.0000X2 30.00000从这个例子可以看出,用Lingo软件求解一个简单的优化问题是非常容易的。
我们只需要输入优化问题的两个主要部分:目标函数和约束,就可以直接求解。
对于比较简单的问题,我们可以采取这种直接的方式去求解,但是,对于比较复杂的问题,用这种方式就不现实。
比如下面的例2,这就必须要使用Lingo的模型语言。
例2 一个运输问题假设WWW公司有6个仓库,储存着8个分厂生产所需要的原材料。
要求每一个仓库的供应量不能超过储存量,而且每一个分厂的需求必须得到满足。
问:如何组织运输,使总运输费用最小?已知从6个仓库到8个分厂的运输费用表。
表1 供应表2 需求表3 运输费用Wh5 2 3 9 5 7 2 6 5Wh6 5 5 2 2 8 1 4 3 这个问题是一个典型的优化问题,通常称为运输问题。
Lingo、lindo简介一、软件概述 (1)二、快速入门 (4)三、Mathematica函数大全--运算符及特殊符号 (11)参见网址: /一、软件概述(一)简介LINGO软件是由美国LINDO系统公司研发的主要产品。
LINGO是Linear Interactive and General Optimizer的缩写,即交互式的线性和通用优化求解器。
LINGO可以用于求解非线性规划,也可以用于一些线性和非线性方程组的求解等,功能十分强大,是求解优化模型的最佳选择。
其特色在于内置建模语言,提供十几个内部函数,可以允许决策变量是整数(即整数规划,包括 0-1 整数规划),方便灵活,而且执行速度非常快。
能方便与EXCEL,数据库等其他软件交换数据。
LINGO实际上还是最优化问题的一种建模语言,包括许多常用的函数可供使用者建立优化模型时调用,并提供与其他数据文件(如文本文件、Excel 电子表格文件、数据库文件等)的接口,易于方便地输入、求解和分析大规模最优化问题。
(二)LINGO的主要特点:Lingo 是使建立和求解线性、非线性和整数最佳化模型更快更简单更有效率的综合工具。
Lingo 提供强大的语言和快速的求解引擎来阐述和求解最佳化模型。
1 简单的模型表示LINGO 可以将线性、非线性和整数问题迅速得予以公式表示,并且容易阅读、了解和修改。
LINGO的建模语言允许您使用汇总和下标变量以一种易懂的直观的方式来表达模型,非常类似您在使用纸和笔。
模型更加容易构建,更容易理解,因此也更容易维护。
2 方便的数据输入和输出选择LINGO 建立的模型可以直接从数据库或工作表获取资料。
同样地,LINGO 可以将求解结果直接输出到数据库或工作表。
使得您能够在您选择的应用程序中生成报告。
3 强大的求解器LINGO拥有一整套快速的,内建的求解器用来求解线性的,非线性的(球面&非球面的),二次的,二次约束的,和整数优化问题。
实验报告(二)课程名称数学实验实验项目运用LINGO进行优化模型求解,并与EXCEL进行连接实验环境PC机、LINGO班级/学号/姓名指导教师实验日期2013-11-5成绩一、实验名称:运用LINGO 进行优化模型求解,并与EXCEL 进行连接二、实验目的:1、掌握Lingo 求解线性规划模型的方法及回看求解结果报告;2、掌握Lingo 进行灵敏度分析的方法;3、掌握Lingo 求解整数规划和0-1规划的方法;4、掌握Lingo 中集合的定义方法;5、掌握Lingo 与Excel 之间的链接方法;三、实验内容:习题四:1.用LINGO 求解下列线性规划问题(1)⎪⎪⎩⎪⎪⎨⎧=≥≤++≤++≤++++=.4,...,1,0x 103x x 2x -4x 258x 2x 3x -3x 204x -4x -6x 5x ..8x 10x 2x 6x z max i 4321432143214321i t s 程序:model :max =6*x1+2*x2+10*x3+8*x4; 5*x1+6*x2-4*x3-4*x4<=20; 3*x1-3*x2+2*x3+8*x4<=25; 4*x1-2*x2+x3+3*x4<=10; end结果:(2)⎪⎩⎪⎨⎧≥≤++≤++++=0,,x 9010x 4x 12x 203x x x -s.t.13x 5x -5x z max 321321321321x x 程序:model :max =-5*x1+5*x2+13*x3; -1*x1+x2+3*x3<=20; 12*x1+4*x2+10*x3<=90; end结果:(3)⎪⎩⎪⎨⎧>=++<=+<=+=010y 4x 011-7y x 023-5y -7x ..y 2x z min t s程序:model : min =2*x+y; 7*x-5*y-23<=0; x+7*y-11<=0; 4*x+y+10>=0; @free (x); @free (y); end结果:2.用LINGO 求解如下整数规划问题(1)⎩⎨⎧≤++++++=均是整数432143214321,,,x 2010x 5x 4x x 6x 3x 10x 5x z max x x x程序:model :max =5*x1+10*x2+3*x3+6*x4; x1+4*x2+5*x3+10*x4<=20; @gin (x); end结果:(2)⎪⎪⎩⎪⎪⎨⎧=≥++≥+++≥++++++=10,,,x 1x x -x x 14x 2x 4x 2x -0x x x 4x -4x 3x 5x 2x z min 43214321432143214321或x x x程序:min =2*x1+5*x2+3*x3+4*x4; -4*x1+x2+x3+x4>=0; -2*x1+4*x2+2*x3+4*x4>=1; x1+x2-x3+x4>=1; @bin (x1); @bin (x2); @bin (x3); @bin (x4); end结果:(3)⎪⎪⎩⎪⎪⎨⎧<<+>+=为整数y x,015-5y -3x 06-3y 2x 03-y -2x y x z max 程序:max =x+y; 2*x-y-3>0; 2*x+3*y-6<0; 3*x-5*y-15<0;@gin(x);@gin(y);end结果:习题五:1、某厂生产A、B、C三种产品其所需劳动力、材料等有关数据见表格。
实验报告专用纸实验室:机号:实验日期:三、实验步骤及方法(1)模型的假设①假设该投资为连续性投资,即该经理投资不会受到年限过长而导致资金周转困难;②假设证券税收政策稳定不变而且该经理优先考虑可以免税的市政证券的情况下再考虑其他证券种类以节约成本;③假设各证券之间相互独立而且各自风险损失率为零;④假设在经理投资后,各证券的信用等级、到期年限都没有发生改变;⑤假设投资不需要任何交易费或者交易费远远少于投资金额和所获得的收益,可以忽略不计;⑥假设所借贷资金所要支付的利息不会随时间增长,直接等于所给的利率乘上借贷资金;(2)问题分析问题一:该经理优先考虑可以免税的市政证券的情况下再考虑其他证券种类以节约成本,在假设都成立的条件下综合考虑约束资金和限制条件,将1000万资金按照一定的比例分别投资各种证券。
在满足政府及代办机构的证券总共至少要购进400万元;所购证券的平均信用等级不超过1.4;所购证券的平均到期年限不超过5年这三个约束条件下,不妨设投资证券A、B、C、D、E的金额分别为x1、x2、x3、x4、x5,最大利润为y建立线性规划模型,用lingo求解即可得到最优投资方案和最大利润。
问题二:利用问题一的模型进行灵敏度分析,把借贷的100万在投资后所获得的收益与借贷所要付出的利息进行比较,即与以2.75%的利率借到的100万资金的利息比较,若大于,则应该借贷;反之,则不借贷。
若借贷,投资方案需将问题一的模型的第二个约束条件右端10该为11,用lingo软件求解。
问题三:是否该改变要看最优解是否改变,如果各证券所对应的字数在最优解不变的条件下目标函数允许的变化范围内,则不应该改变投资方案,反之则改变投资方案。
(3)模型建立设投资证券A,B,C,D,E,的金额分别为x1,x2,x3,x4,x5(百万),最大利润为y,按照规定、限制和1000万元资金约束,列出模型:max y=0.043*x1+0.027*x2+0.022*x4+0.045*x5;s.t x2+x3+x4>=4;x1+x2+x3+x4+x5<=10;6*x1+6*x2-4*x3-4*x4+36*x5<=0;4*x1+10*x2-x3-2*x4-3*x5<=0;(4)模型求解四、实验数据及程序清单问题一求解:灵敏度分析:问题二:对问题一的求解后的影子价格分析可以知道,投资金额每增加100万元,收益可增加0.0298百万元,而借贷100万元所要支付的利息是0.0275百万元,比0.0298百万元少,所以应该借贷这100万元。
LINGO是用来求解线性和非线性优化问题的简易工具。
LINGO内置了一种建立最优化模型的语言,可以简便地表达大规模问题,利用LINGO高效的求解器可快速求解并分析结果。
§1 LINGO快速入门当你在windows下开始运行LINGO系统时,会得到类似下面的一个窗口:外层是主框架窗口,包含了所有菜单命令和工具条,其它所有的窗口将被包含在主窗口之下。
在主窗口内的标题为LINGO Model – LINGO1的窗口是LINGO的默认模型窗口,建立的模型都都要在该窗口内编码实现。
下面举两个例子。
例1.1 如何在LINGO中求解如下的LP问题:在模型窗口中输入如下代码:min=2*x1+3*x2;x1+x2>=350;x1>=100;2*x1+x2<=600;然后点击工具条上的按钮即可。
例1.2 使用LINGO软件计算6个发点8个收点的最小费用运输问题。
产销单位运价如下表。
单位销地运价产地 B1 B2 B3 B4 B5 B6 B7 B8 产量A1 6 2 6 7 4 2 5 9 60A2 4 9 5 3 8 5 8 2 55A3 5 2 1 9 7 4 3 3 51A4 7 6 7 3 9 2 7 1 43A5 2 3 9 5 7 2 6 5 41A6 5 5 2 2 8 1 4 3 52销量 35 37 22 32 41 32 43 38使用LINGO软件,编制程序如下:model:!6发点8收点运输问题;sets:warehouses/wh1..wh6/: capacity;vendors/v1..v8/: demand;links(warehouses,vendors): cost, volume; endsets!目标函数;min=@sum(links: cost*volume);!需求约束;@for(vendors(J):@sum(warehouses(I): volume(I,J))=demand(J));!产量约束;@for(warehouses(I):@sum(vendors(J): volume(I,J))<=capacity(I));!这里是数据;data:capacity=60 55 51 43 41 52;demand=35 37 22 32 41 32 43 38;cost=6 2 6 7 4 2 9 54 95 3 8 5 8 25 2 1 9 7 4 3 37 6 7 3 9 2 7 12 3 9 5 7 2 6 55 5 2 2 8 1 4 3;enddataend然后点击工具条上的按钮即可。
实验报告(二)课程名称数学实验实验项目运用LINGO进行优化模型求解,并与EXCEL进行连接实验环境PC机、LINGO班级/学号/姓名指导教师实验日期2013-11-5成绩一、实验名称:运用LINGO 进行优化模型求解,并与EXCEL 进行连接二、实验目的:1、掌握Lingo 求解线性规划模型的方法及回看求解结果报告;2、掌握Lingo 进行灵敏度分析的方法;3、掌握Lingo 求解整数规划和0-1规划的方法;4、掌握Lingo 中集合的定义方法;5、掌握Lingo 与Excel 之间的链接方法;三、实验内容:习题四:1.用LINGO 求解下列线性规划问题(1)⎪⎪⎩⎪⎪⎨⎧=≥≤++≤++≤++++=.4,...,1,0x 103x x 2x -4x 258x 2x 3x -3x 204x -4x -6x 5x ..8x 10x 2x 6x z max i 4321432143214321i t s 程序:model :max =6*x1+2*x2+10*x3+8*x4; 5*x1+6*x2-4*x3-4*x4<=20; 3*x1-3*x2+2*x3+8*x4<=25; 4*x1-2*x2+x3+3*x4<=10; end结果:(2)⎪⎩⎪⎨⎧≥≤++≤++++=0,,x 9010x 4x 12x 203x x x -s.t.13x 5x -5x z max 321321321321x x 程序:model :max =-5*x1+5*x2+13*x3; -1*x1+x2+3*x3<=20; 12*x1+4*x2+10*x3<=90; end结果:(3)⎪⎩⎪⎨⎧>=++<=+<=+=010y 4x 011-7y x 023-5y -7x ..y 2x z min t s程序:model : min =2*x+y; 7*x-5*y-23<=0; x+7*y-11<=0; 4*x+y+10>=0; @free (x); @free (y); end结果:2.用LINGO 求解如下整数规划问题(1)⎩⎨⎧≤++++++=均是整数432143214321,,,x 2010x 5x 4x x 6x 3x 10x 5x z max x x x程序:model :max =5*x1+10*x2+3*x3+6*x4; x1+4*x2+5*x3+10*x4<=20; @gin (x); end结果:(2)⎪⎪⎩⎪⎪⎨⎧=≥++≥+++≥++++++=10,,,x 1x x -x x 14x 2x 4x 2x -0x x x 4x -4x 3x 5x 2x z min 43214321432143214321或x x x程序:min =2*x1+5*x2+3*x3+4*x4; -4*x1+x2+x3+x4>=0; -2*x1+4*x2+2*x3+4*x4>=1; x1+x2-x3+x4>=1; @bin (x1); @bin (x2); @bin (x3); @bin (x4); end结果:(3)⎪⎪⎩⎪⎪⎨⎧<<+>+=为整数y x,015-5y -3x 06-3y 2x 03-y -2x y x z max 程序:max =x+y; 2*x-y-3>0; 2*x+3*y-6<0; 3*x-5*y-15<0;@gin(x);@gin(y);end结果:习题五:1、某厂生产A、B、C三种产品其所需劳动力、材料等有关数据见表格。
问题:1)确定获利最大的产品生产计划;2)产品A的利润在什么范围内变动时,上述最有计划不变?3)如果劳动力数量不增,材料不足时可以从市场买,每单位0.4元,问该厂要不要购进原材料扩大生产,以购多少为宜?excel表格中读数据。
(1)程序:model:sets:ziyuan/a1,a2/:a;xiaohao/A,B,C/:c,x;links(ziyuan,xiaohao):b;endsetsdata:a=@ole('Book1.xlsx','aa');c=@ole('Book1.xlsx','cc');b=@ole('Book1.xlsx','bb');@ole('Book1.xlsx','xxx')=x;enddatamax=@sum(xiaohao(j):c(j)*x(j));@for(ziyuan(i):@sum(xiaohao(j):b(i,j)*x(j))<=a(i)); end结果:(2)将结果进行灵敏度分析即产品A的利润在2.4-4.8之间变动,上述最有计划不变。
(3)从第一问数据中,DUAL PRICE给出这两个资源在最优解下,“资源”增加1个单位时利润的增量:劳动力增加一个单位利润增加0.2元,原料增加1个单位利润增加0.6元。
由第二问灵敏度分析可知CURRENT RHS的ALLOWABLE INCREASE 和ALLOWABLE DECREASE给出了影子价格有意义条件下约束右端的限制范围,即原材料最多增加15个单位。
4、(混合泳接力队的选拔问题)某班准备从5名游泳队员中选择4人组成接力队,参加学校的4x100m混合泳接力比赛。
5名队员4种泳姿的百平米均成绩如表,问应该如何选拔队员组成接力队?如果最近队员的丁的蛙泳成绩有较大退步,只有1′15″2;而队员戊经过艰解:设x(i,j)为第i种泳姿,第j个人,x(i,j)=1为第i种泳姿选第j个人,x(i,j)=0为第i种泳姿不选第j个人。
从excel表格中读数据。
(1)程序:model:sets:yongzi/a1..a4/;duiyuan/b1..b5/;links(yongzi,duiyuan):T,x;endsetsdata:T=@ole('Book2.xlsx','tt');@ole('Book2.xlsx','xx')=x;enddatamin=@sum(links:T*x);@for(yongzi(i):@sum(duiyuan(j):x(i,j))=1);@for(duiyuan(j):@sum(yongzi(i):x(i,j))<=1);end结果:即接力队选乙,丙,丁,甲分别参加蝶泳,仰泳,蛙泳,自由泳。
(2)将丁的蛙泳成绩改为75.2秒,戊的自由泳成绩改为57.5秒。
结果:即接力队选乙,丙,丁,戊分别参加蝶泳,仰泳,蛙泳,自由泳。
选址问题某公司有6个建筑工地要开工,工地位置(j i y x ,)和水泥日用量i d 由表格给出,公司目前有两个临时存放水泥的场地(料场),分别位于A (5,1)和B (2,7),日存储量各20吨,请解决一下问题。
(1)假设从料场到工地之间均有直线道路项链,试制定日运输计划,即从A,B 两个料场分别向各工地运送多少水泥,使总的吨千米数最小?(2)为了进一步减少吨千米数,打算舍弃目前的两个临时料场,改建两个新料(1)程序:model : sets :lc/A,B/:x,y; gd/1..6/:a,b,d; links(lc,gd):c; endsetsdata : x=5,2; y=1,7;a,b,d=@ole ('Book3.xlsx','aa','bb','dd'); @ole ('Book3.xlsx','cc')=c; enddatamin =@sum (links(i,j):c(i,j)*@sqrt ((x(i)-a(i))^2+(y(i)-b(j))^2)); @for (lc(i):@sum (gd(j):c(i,j))<=20); @for (gd(j):@sum (lc(i):c(i,j))=d(j)); end结果:(2)程序:model :sets :lc/A,B/:x,y,e;gd/1..6/:a,b,d;links(lc,gd):c;endsetsinit:x=5,2;y=1,7;endinitdata:a,b,d=@ole('Book3.xlsx','aa','bb','dd');e=20,20;@ole('Book3.xlsx','cc')=c;enddatamin=@sum(links(i,j):c(i,j)*@sqrt((x(i)-a(i))^2+(y(i)-b(j))^2)); @for(lc(i):@sum(gd(j):c(i,j))<=e(i));@for(gd(j):@sum(lc(i):c(i,j))=d(j));end结果:四、实验心得通过这次实验,我学会了lingo软件的基本操作对于一个较复杂的数学模型能够狠方便的求解。
做题过程中也常出现问题,比如lingo与excel文件之间的数据传递,调用数据是名称要与定义数据块名称一致,要使excel表格处于打开状态。