文档介绍:数学建模简明教程
国家精品课程
第十章 LINGO软件使用 简介及技巧
一、LINGO使用介绍
二、利用LINGO求解优化模型实例
三、LINGO调用VC编写的函数动态库技巧
目录
下页
返回
上页
结束
LINGO是一种专门用于求解数学规划问题的
广泛应用LINGO主要用于求解线性规划、非
线性规划、二次规划和整数规划等问题,也可以
于求解一些线性和非线性方程组及代数方程求根等.
,,
.
目录
下页
返回
上页
结束
软件包.
一、LINGO使用介绍
1. LINGO编写格式
LINGO模型以MODEL开始,
为语句,分为四大部分(SECTION):
(1) 集合部分(SETS):这部分以“SETS:”
开始,以“ENDSETS”结束.
在LINGO中称为集合(SET)及其元素
(MEMBER或ELEMENT,类似于数组的下标)和
属性(ATTRIBUTE,类似于数组).
目录
下页
返回
上页
结束
LINGO中的集合有两类:一类是原始集合
(PRIMITIVE SETS),其定义的格式为:
SETNAME/member list(or 1..n)/:
attribute,attribute,etc.
另一类是导出集合(DERIVED SETS),即
引用其它集合定义的集合,其定义的格式为:
SETNAME(set1,set2,etc.):
attribute,attribute,etc.
目录
下页
返回
上页
结束
(2) 目标与约束:这部分定义了目标函数、约束
.
(3) 数据部分(DATA):这部分以“DATA:”
开始,以“END DATA”结束.
其作用在于对集合的属性(数组)输入必要的数
:attribute=
据的输入.
(4) 初始化部分(INIT):这部分以“INIT:”开
始,以“END INIT”
(数组):attribute=value_list.
目录
下页
返回
上页
结束
编写LINGO程序要注意:
(1) 所有的语句除SETS、ENDSETS、DATA、
ENDDATA、 INIT、ENDINIT 和 MODEL,END
之外必须以一个分号“;”结尾.
(2) LINGO求解非线性规划时已约定各变量非负.
2. LINGO内部函数使用详解.
LINGO建立优化模型时可以引用大量的内部函数,
这些函数以“@”符号打头.
目录
下页
返回
上页
结束
常用数学函数
***@ABS(X) 返回变量X的绝对数值.
***@COS( X) 返回X的余弦值,X的单位为弧度.
***@EXP( X) 返回ex的值,其中e为自然对数的底,
即
***@FLOOR( X)向0靠近返回X的整数部分.
如***@FLOOR(),则返回3;***@FLOOR(-),则
返回-3.
***@LGM( X) 返回
函数的自然对数值.
***@LOG( X) 返回变量X的自然对数值.
目录
下页
返回
上页
结束
***@SIGN( X) 返回变量X的符号值,当X<0时
为-1;当X>0时为1.
***@SIN(X) 返回X的正弦值,X的单位为弧度.
***@SMAX(X1,X2,...,XN) 返回一列值X1,X2,
...,XN的最大值.
***@SMIN(X1,X2,...,XN) 返回一列值X1,X2,
...,XN的最小值.
***@TAN(X) 返回X的正切值,X的单位为弧度.
目录
下页
返回
上页
结束
集合函数
用法:
set_operator (set_name|condition:expression)
其中set_operator部分是集合函数名, set_name是数
据集合名, expression部分是表达式, condition部
分是条件,用逻辑表达式描述(无条件时可省略).
逻辑表达式中可以三种逻辑算符(#AND#(与),
#OR#(或),#NOT#(非))和六种关系算符(#EQ#
(等于),#NE#(不等于),#GT#(大于),#GE#
(大于等于),#LT#(小于), #LE#(小于等于))
目录
下页
返回
上页
结束