「这是我参与11月更文应战的第23天,活动概况检查:2021最后一次更文应战」。
Lingo运算符
算术运算
符号 | 解说 |
---|---|
乘方 | |
* | 乘 |
/ | 除 |
+ | 加 |
– | 减 |
逻辑运算符
符号 | 解说 |
---|---|
#not# | 否定该操作数的逻辑值,#not#是一个一元运算符 |
#eq# | 若两个运算数相等,则为true;否则为flase |
#ne# | 若两个运算符不相等,则为true;否则为flase |
#gt# | 若左面的运算符严厉大于右边的运算符,则为true;否则为flase |
#ge# | 若左面的运算符大于或等于右边的运算符,则为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#
数学函数
函数 | 解说 |
---|---|
@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时,回来不低于x的最大整数。 |
@smax(x1,x2,…,xn) | 回来x1,x2,…,xn中的最大值 |
@smin(x1,x2,…,xn) | 回来x1,x2,…,xn中的最小值 |
变量界定函数
函数 | 解说 |
---|---|
@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的束缚。
循环函数
@for
该函数用来发生对集成员的束缚。根据建模语言的标量需要显式输入
每个束缚,不过@for函数答应只输入一个束缚,然后LINGO主动发生
每个集成员的束缚。
@sum
该函数回来遍历指定的集成员的一个表达式的和。
@min和@max
回来指定的集成员的一个表达式的最小值或最大值。
输入输出函数
略
辅佐函数
略
金融函数
略
常规线性规划
例题切入:加工奶制品的生产计划
1桶牛奶有两种生产方式:(A)12小时/3公斤,获利24元/公斤;(B)8小时/4公斤,获利16元/公斤。
题目需求:50桶牛奶,480小时,至多加工100公斤A。
制定生产计划使每天获利最大。
lingo代码如下
max=72*a+64*b;!获利函数;
a+b<50;!桶数量束缚;
12*a+8*b<480;!时刻束缚;
3*a<100;!a数量束缚;
!非负束缚;
a>0;
b>0;
成果的相关注解:
对成果进行range剖析的过程
- 在lingo中ctrl+I打开option
- 点击general solveer选项卡,将dual computat属性设置为princeses&ranges
- ctrl+r进行range剖析
如图设置
range剖析的成果解说