lingo初级入门手册.ppt
《lingo初级入门手册.ppt》由会员分享,可在线阅读,更多相关《lingo初级入门手册.ppt(127页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、数学建模及其实验数学建模及其实验 LINGO软件使用软件使用 LINGO是美国LINDO系统公司开发的一套专门用于求解最优化问题的软件它为求解最优化问题提供了一个平台,主要用于求解线性规划、非线性规划、整数规划、二次规划、线性及非线性方程组等问题它是最优化问题的一种建模语言,包含有许多常用的函数供使用者编写程序时调用,并提供了与其他数据文件的接口,易于方便地输入,求解和分析大规模最优化问题,且执行速度快由于它的功能较强,所以在教学、科研、工业、商业、服务等许多领域得到了广泛的应用数学建模及其实验数学建模及其实验 目录目录3.1 LINGO操作界面简介操作界面简介3.2 LINGO模型的基本特征
2、模型的基本特征3.3 LINGO的运算符和函数的运算符和函数3.4 LINGO软件求解案例软件求解案例数学建模及其实验数学建模及其实验 LINGO操作界面简介数学建模及其实验数学建模及其实验 图图1.1中最外层的窗口是中最外层的窗口是LINGO软件的主窗口(软件的主窗口(LINGO软件的用户界面)软件的用户界面),所有其他窗口都在这个窗口之内主窗口有:标题栏、菜单栏、工具栏,所有其他窗口都在这个窗口之内主窗口有:标题栏、菜单栏、工具栏和状态栏目前,状态栏最左边显示的是和状态栏目前,状态栏最左边显示的是“Ready”,表示准备就绪,右下,表示准备就绪,右下角显示的是当前时间,时间前面是当前光标的
3、位置角显示的是当前时间,时间前面是当前光标的位置“Ln 1,Col 1”(即(即1行行1列)将来用户可以用选项命令(列)将来用户可以用选项命令(LINGO|Options|Interface菜单命令)决菜单命令)决定是否需要显示工具栏和状态栏定是否需要显示工具栏和状态栏 在在Windows操作系统下启动操作系统下启动LINGO软件,屏幕上首先显示如图软件,屏幕上首先显示如图1.1所示的窗口所示的窗口.图1.1数学建模及其实验数学建模及其实验LINGO有有5个主菜单:个主菜单:File(文件)(文件)Edit(编辑)(编辑)LINGO(LINGO系统)系统)Windows(窗口)(窗口)Help
4、(帮助)(帮助)数学建模及其实验数学建模及其实验 这些菜单的用法与这些菜单的用法与Windows下其他应用程序的标下其他应用程序的标准用法类似,下面只对主菜单中准用法类似,下面只对主菜单中LINGO系统的主要系统的主要命令进行简要介绍命令进行简要介绍 数学建模及其实验数学建模及其实验LINGO系统(系统(LINGO)的主菜单)的主菜单LINGO|Solve(Ctrl-S)LINGO|Solve(Ctrl-S)(求解)命令对当前模型进行编译并求解如果当前模型输入有错误,编译时将报告错误求解时会显示一个求解器运行状态窗口 LINGO|Solution(Ctrl-O)LINGO|Solution(C
5、trl-O)(解答)命令显示当前解 LINGO|Range(Ctrl-R)LINGO|Range(Ctrl-R)(灵敏度分析)命令显示当前解的灵敏度分析结果(你必须在此之前求解过当前模型)数学建模及其实验数学建模及其实验LINGO|Options(Ctrl-I)LINGO|Options(Ctrl-I)(选项)命令将打开一个含有7个选项卡的对话框窗口,你可以通过它修改LINGO系统的各种控制参数和选项修改完以后,你如果单击“应用”按钮,则新的设置马上生效;如果单击“OK”按钮,则新的设置马上生效,并且同时关闭该窗口;如果单击“Save”按钮,则将当前设置变为默认设置,下次启动LINGO时这些设
6、置仍然有效;如果单击“Default”按钮,则恢复LINGO系统定义的原始默认设置;如果单击“Cancel”按钮将废弃本次操作,退出对话框;单击“Help”按钮将显示本对话框的帮助信息LINGO|Generate和和LINGO|Picture LINGO|Generate和LINGO|Picture命令都是在模型窗口下才能使用,他们的功能是按照LINGO模型的完整形式分别以代数表达式形式和矩阵图形形式显示目标函数和约束数学建模及其实验数学建模及其实验LINGO|Debug(Ctrl+D)LINGO|Debug(Ctrl+D)命令分析线性规划无解或无界的原因,建议如何修改.LINGO|Model
7、 Statistics(Ctrl+E)LINGO|Model Statistics(Ctrl+E)命令显示当前模型的统计信息LINGO|Look(Ctrl+L)LINGO|Look(Ctrl+L)命令显示当前模型的文本形式,显示时对所有行按顺序编号数学建模及其实验数学建模及其实验图图1.2给出了工具栏的简要功能说明给出了工具栏的简要功能说明 当前光标所在的窗口(窗口标题栏上标有“LINGO Model-LINGO1”),就是模型窗口(model windows),也就是用于输入LINGO优化模型(即LINGO程序)的窗口数学建模及其实验数学建模及其实验 LINGO模型的基本特征数学建模及其实验
8、数学建模及其实验 LINGO模型(程序)从模型(程序)从LINGO模型窗口输入,它以语句模型窗口输入,它以语句“MODEL:”开始,以语句开始,以语句“END”结束它是由一系列语句结束它是由一系列语句组成,每个语句都是以分号组成,每个语句都是以分号“;”结束,语句是组成结束,语句是组成LINGO模型的基本单位每行可以写多个语句,为了保持模型的可模型的基本单位每行可以写多个语句,为了保持模型的可读性,最好一行只写一个语句,并且按照语句之间的嵌套关读性,最好一行只写一个语句,并且按照语句之间的嵌套关系对语句安排适当的缩进,增强层次感以感叹号系对语句安排适当的缩进,增强层次感以感叹号“!”开开始的语
9、句是注释语句(注释语句也需要以分号始的语句是注释语句(注释语句也需要以分号“;”结束)结束)数学建模及其实验数学建模及其实验LINGO模型(程序)一般由模型(程序)一般由5个部分(或称个部分(或称5段)组成:段)组成:(1)集合段(集合段(SETS)(2)数据段(数据段(DATA)(3)初始化段()初始化段(INIT)(4)计算段(计算段(CALC)(5)目标与约束段目标与约束段 数学建模及其实验数学建模及其实验(1)集合段()集合段(SETS)这部分要以“SETS:”开始,以“ENDSETS”结束,作用在于定义必要的集合变量(SET)及其元素(member,含义类似于数组的下标)和属性(at
10、tribute,含义类似于数组)格式有基本集基本集和派生集派生集两种 数学建模及其实验数学建模及其实验基本集:基本集:Setname(集合变量名)/member_list(元素列表)/:attribute_list(属性列表);元素列表可以全部一一列出,也可以用格式“/元素1.元素N/”列出,例如SETS:STUDENTS/1,2,3,4,5/:NAME,AGE;ENDSETSSETS:STUDENTS/1.5/:NAME,AGE;ENDSETS数学建模及其实验数学建模及其实验数学建模及其实验数学建模及其实验数学建模及其实验数学建模及其实验数学建模及其实验数学建模及其实验派生集:派生集:Set
11、name(parent_set_list(源集列表)/member_list/:attribute_list;例如SETS:PRODUCT/A B/;MACHINE/M N/;WEEK/1.2/;ALLOWED(PRODUCT,MACHINE,WEEK);ENDSETS列表可以用逗号“,”分开,也可以用空格分开数学建模及其实验数学建模及其实验数学建模及其实验数学建模及其实验数学建模及其实验数学建模及其实验数学建模及其实验数学建模及其实验数学建模及其实验数学建模及其实验(2)数据段(数据段(DATA)这部分要以“DATA:”开始,以“ENDDATA”结束,作用在于对集合的属性(数组)输入必要的常
12、数数据格式为:attribute_list(属性列表)=value_list(常数列表);例如SETS:SET1/A,B,C/:X,Y;ENDSETSDATA:X=1 2 3;Y=4 5 6;ENDDATA数学建模及其实验数学建模及其实验(2)数据段(数据段(DATA)这部分要以“DATA:”开始,以“ENDDATA”结束,作用在于对集合的属性(数组)输入必要的常数数据格式为:attribute_list(属性列表)=value_list(常数列表);例如SETS:SET1/A,B,C/:X,Y;ENDSETSDATA:X=1 2 3;Y=4 5 6;ENDDATA数学建模及其实验数学建模及其
13、实验数学建模及其实验数学建模及其实验数学建模及其实验数学建模及其实验数学建模及其实验数学建模及其实验数学建模及其实验数学建模及其实验数学建模及其实验数学建模及其实验数学建模及其实验数学建模及其实验(3)初始化段(初始化段(INIT)这部分要以“INIT:”开始,以“ENDINIT”结束,作用在于对集合的属性(数组)给出初值格式为:attribute_list(属性列表)=value_list(常数列表);与数据段的用法类似数学建模及其实验数学建模及其实验(4)计算段()计算段(CALC)这部分要以“CALC:”开始,以“ENDCALC”结束,作用在于对一些原始数据进行计算处理因为在实际问题中,
14、输入的数据往往是原始数据,不一定能在模型中直接使用,可以在这个段对这些原始数据进行一定的“预处理”,得到模型中真正需要的数据在计算段中语句是顺序执行的 数学建模及其实验数学建模及其实验(5)目标与约束段目标与约束段 这部分没有段的开始和结束标记,作用在于给定目标函数与约束条件可见除这一段外,其他4个段都有明确的段标记这一段是模型的主要部分,其他段是为这一段服务的其他四段可以没有,这一段必须要有否则不称其为模型这一段一般要用到LINGO的运算符和各种函数 数学建模及其实验数学建模及其实验 LINGO的运算符和函数数学建模及其实验数学建模及其实验LINGO包含有大量的运算符和函数,供程序(建立优化
15、模型)调用,其功能很强充分利用这些函数,对解决问题将是非常方便的下面给出部分函数及简要功能介绍,全部函数及详细功能说明可进一步参考LINGO的使用手册一、运算符及其优先级一、运算符及其优先级二、基本的数学函数二、基本的数学函数三、集合循环函数三、集合循环函数四、集合操作函数四、集合操作函数五、变量定界函数五、变量定界函数六、财务会计函数六、财务会计函数七、概率中的相关函数七、概率中的相关函数八、文件输入输出函数八、文件输入输出函数数学建模及其实验数学建模及其实验运算符及其优先级运算符及其优先级 LINGO的运算符有三类:算数运算符、逻辑运算符和关系运算符 数学建模及其实验数学建模及其实验1算术
16、运算符:算术运算符:LINGO中提供了二元运算符的算术运算符有以下5种:+(加法),-(减法或负号),*(乘法),/(除法),(求幂)算术运算是数与数之间的运算,运算结果仍是数数学建模及其实验数学建模及其实验2逻辑运算符:逻辑运算符:LINGO中的逻辑运算符有以下9种,可以分成两类:(1)#AND#(与),#OR#(或),#NOT#(非):这三个运算是逻辑值之间的运算,也就是它们操作的对象本身必须已经是逻辑值或逻辑表达式,计算结果也是逻辑值(2)#EQ#(等于),#NE#(不等于),#GT#(大于),#GE#(大于等于),#LT#(小于),#LE#(小于等于):这6个操作实际上是“数与数之间”
17、的比较,也就是它们操作的对象本身必须是两个数,而逻辑表达式计算的结果是逻辑值数学建模及其实验数学建模及其实验数学建模及其实验数学建模及其实验3关系运算符:关系运算符:LINGO中的关系运算符有以下3种:(即,小于等于),(等于),(即,大于等于)这三个运算符虽然也是“数与数之间”的比较,但在LINGO中只用来表示优化模型的约束条件,所以不是真正意义上的运算数学建模及其实验数学建模及其实验数学建模及其实验数学建模及其实验 这些运算符的优先级如表3.1所示(同一优先级按左到右的顺序执行;如果有括号“()”,则括号内的表达式优先进行计算)表3.1数学建模及其实验数学建模及其实验基本的数学函数基本的数
18、学函数 在LINGO中写程序时可以调用大量的内部函数,这些函数以“”符号打头(类似调用命令)LINGO中数学函数的用法与其它语言中的数学函数的用法类似,主要有以下函数:ABS(X):绝对值函数,返回X的绝对值COS(X):余弦函数,返回X的余弦值(X的单位是弧 度)EXP(X):指数函数,返回ex的值FLOOR(X):取整函数,返回X的整数部分(向最靠近0的方向取整)LGM(X):返回X的伽马(Gamma)函数的自然对数 值数学建模及其实验数学建模及其实验LOG(X):自然对数函数,返回X的自然对数值MOD(X,Y):模函数,返回X对Y取模的结果 POW(X,Y):指数函数,返回XY的值SIG
19、N(X):符号函数,返回X的符号值(X0时返回-1,X0返回1)SIN(X):正弦函数,返回X的正弦值SMAX(list):最大值函数,返回列表(list)中的最大值SMIN(list):最小值函数,返回列表(list)中的最小值SQR(X):平方函数,返回X的平方值SQRT(X):平方根函数,返回X的正的平方根的值TAN(X):正切函数,返回X的正切值数学建模及其实验数学建模及其实验数学建模及其实验数学建模及其实验集合循环函数集合循环函数 集合循环函数是指对集合上的元素(下标)进行循环操作的函数,主要有FOR,MAX,MIN,SUM,PROD五种,其用法如下:function(setname
20、(set_index_list)|conditional_qualifier:expression_list);其中:Function是集合函数名;Setname是集合名;set_index_list是集合索引列表(不需要使用索引时可以省略);|conditional_qualifier是用逻辑表达式给出的过滤条件(无条件时可以省略);:expression_list是一个表达式(对FOR函数,可以是一组表达式)数学建模及其实验数学建模及其实验数学建模及其实验数学建模及其实验数学建模及其实验数学建模及其实验数学建模及其实验数学建模及其实验集合循环函数集合循环函数四个集合循环函数:四个集合循环函
21、数:FOR、SUM、MAX、MINfunction(setname (set_index_list)|condition:expression_list);objective MAX=SUM(PAIRS(I,J):BENEFIT(I,J)*MATCH(I,J);FOR(STUDENTS(I):constraints SUM(PAIRS(J,K)|J#EQ#I#OR#K#EQ#I:MATCH(J,K)=1);FOR(PAIRS(I,J):BIN(MATCH(I,J);MAXB=MAX(PAIRS(I,J):BENEFIT(I,J);MINB=MIN(PAIRS(I,J):BENEFIT(I,J)
22、;Example:数学建模及其实验数学建模及其实验数学建模及其实验数学建模及其实验数学建模及其实验数学建模及其实验数学建模及其实验数学建模及其实验数学建模及其实验数学建模及其实验数学建模及其实验数学建模及其实验 程序与数据分离程序与数据分离文文本本文文件件使用外部数据文件使用外部数据文件Cut(or Copy)Paste 方法方法FILE 输入数据、输入数据、TEXT输出数据(文本文件)输出数据(文本文件)OLE函数与电子表格软件(如函数与电子表格软件(如EXCEL)连接)连接ODBC函数与数据库连接函数与数据库连接LINGO命令脚本文件命令脚本文件LG4(LONGO模型文件)模型文件)LNG
23、(LONGO模型文件)模型文件)LTF(LONGO脚本文件)脚本文件)LDT(LONGO数据文件)数据文件)LRP(LONGO报告文件)报告文件)常用文件后缀常用文件后缀数学建模及其实验数学建模及其实验FILEFILE和和TEXTTEXT:文本文件输入输出:文本文件输入输出MODEL:SETS:MYSET/FILE(myfile.txt)/:FILE(myfile.txt);ENDSETSMIN=SUM(MYSET(I):SHIP(I)*COST(I);FOR(MYSET(I):CON1 SHIP(I)NEED(I);CON2 SHIP(I)NEED(I);CON2 SHIP(I)SUPPLY
24、(I);DATA:MYSET=OLE(D:JXIEBJ2004MCMmydata.xls,CITIES);COST,NEED,SUPPLY=OLE(mydata.xls);OLE(mydata.xls,SOLUTION)=SHIP;ENDDATAEND mydata.xls文件中必须有下列名称(及数据):CITIES,COST,NEED,SUPPLY,SOLUTION在在EXCEL中还可以通过中还可以通过“宏宏”自动调用自动调用LINGO(略略)也可以将也可以将EXCEL表格嵌入到表格嵌入到LINGO模型中模型中(略略)演示演示 MydataExample.lg4数学建模及其实验数学建模及其实
25、验ODBC ODBC:与数据库连接:与数据库连接输入基本集合元素:输入基本集合元素:setname/ODBC(datasource,tablename,columnname)/输入派生集合元素:输入派生集合元素:setname/ODBC(source,table,column1,column2)/目前支持下列目前支持下列DBMS:(如为其他数据库,则需自行安装驱动如为其他数据库,则需自行安装驱动)ACCESS,DBASE,EXCEL,FOXPRO,ORACLE,PARADOX,SQL SERVER,TEXE FILES使用数据库之前,数据源需要在使用数据库之前,数据源需要在ODBC管理器注册管
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- lingo 初级 入门 手册
限制150内