欢迎来到天天文库
浏览记录
ID:60778799
大小:1.11 MB
页数:36页
时间:2020-12-18
《LINGO及规划实例教学文案.ppt》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、LINGO及规划实例实例一例1.1如何在LINGO中求解如下的LP问题:实例二例1.2使用LINGO软件计算6个发点8个收点的最小费用运输问题。产销单位运价如下表。实例二实例二实例三实例三结果如下LINGO中的集合和数据集部分是LINGO模型的一个可选部分。在LINGO模型中使用集之前,必须在集部分事先定义。集部分以关键字“sets:”开始,以“endsets”结束。LINGO中的集合和数据数据部分以关键字“data:”开始,以“enddata”结束。LINGO函数LINGO有9种类型的函数:1. 基本运算符:包括算术运
2、算符、逻辑运算符和关系运算符2. 数学函数:三角函数和常规的数学函数3. 金融函数:LINGO提供的两种金融函数4. 概率函数:LINGO提供了大量概率相关的函数5. 变量界定函数:这类函数用来定义变量的取值范围6. 集操作函数:这类函数为对集的操作提供帮助7. 集循环函数:遍历集的元素,执行一定的操作的函数8. 数据输入输出函数:这类函数允许模型和外部数据源相联系,进行数据的输入输出9. 辅助函数:各种杂类函数LINGO函数1.1算术运算符算术运算符是针对数值进行操作的。LINGO提供了5种二元运算符:^ 乘方﹡乘/
3、除﹢ 加﹣减LINGO唯一的一元算术运算符是取反函数“﹣”。这些运算符的优先级由高到底为:高﹣(取反)^﹡/低 ﹢﹣运算符的运算次序为从左到右按优先级高低来执行。运算的次序可以用圆括号“()”来改变。LINGO函数1.2逻辑运算符LINGO具有9种逻辑运算符:#not#否定该操作数的逻辑值,#not#是一个一元运算符#eq#若两个运算数相等,则为true;否则为flase#ne#若两个运算符不相等,则为true;否则为flase#gt#若左边的运算符严格大于右边的运算符,则为true;否则为flase#ge#若左边的运算
4、符大于或等于右边的运算符,则为true;否则为flase#lt#若左边的运算符严格小于右边的运算符,则为true;否则为flase#le#若左边的运算符小于或等于右边的运算符,则为true;否则为flase#and#仅当两个参数都为true时,结果为true;否则为flase#or#仅当两个参数都为false时,结果为false;否则为true这些运算符的优先级由高到低为:高#not##eq##ne##gt##ge##lt##le#低#and##or#LINGO函数1.3关系运算符下面给出以上三类操作符的优先级:高#no
5、t#﹣(取反)^﹡/﹢﹣#eq##ne##gt##ge##lt##le##and##or#低<==>=LINGO函数2数学函数LINGO提供了大量的标准数学函数:@abs(x)返回x的绝对值@sin(x)返回x的正弦值,x采用弧度制@cos(x)返回x的余弦值@tan(x)返回x的正切值@exp(x)返回常数e的x次方@log(x)返回x的自然对数@lgm(x)返回x的gamma函数的自然对数@sign(x)如果x<0返回-1;否则,返回1@floor(x)返回x的整数部分。当x>=0时,返回不超过x的最大整数;当x<0
6、时,返回不低于x的最大整数。@smax(x1,x2,…,xn)返回x1,x2,…,xn中的最大值@smin(x1,x2,…,xn)返回x1,x2,…,xn中的最小值LINGO函数3金融函数目前LINGO提供了两个金融函数。1.@fpa(I,n)返回如下情形的净现值:单位时段利率为I,连续n个时段支付,每个时段支付单位费用。若每个时段支付x单位的费用,则净现值可用x乘以@fpa(I,n)算得。@fpa的计算公式为净现值就是在一定时期内为了获得一定收益在该时期初所支付的实际费用。2.@fpl(I,n)返回如下情形的净现值:单
7、位时段利率为I,第n个时段支付单位费用。@fpl(I,n)的计算公式为。LINGO函数。5变量界定函数变量界定函数实现对变量取值范围的附加限制,共4种:@bin(x)限制x为0或1@bnd(L,x,U)限制L≤x≤U@free(x)取消对变量x的默认下界为0的限制,即x可以取任意实数@gin(x)限制x为整数在默认情况下,LINGO规定变量是非负的,也就是说下界为0,上界为+∞。@free取消了默认的下界为0的限制,使变量也可以取负值。@bnd用于设定一个变量的上下界,它也可以取消默认下界为0的约束。LINGO函数。7集
8、循环函数集循环函数遍历整个集进行操作。其语法为1.@for该函数用来产生对集成员的约束。基于建模语言的标量需要显式输入每个约束,不过@for函数允许只输入一个约束,然后LINGO自动产生每个集成员的约束。2.@sum该函数返回遍历指定的集成员的一个表达式的和。3.@min和@max返回指定的集成员的一个表达式的最小值
此文档下载收益归作者所有