概述
【数学建模】Lingo软件介绍+常用函数总结+样例
一、语法规定
- 求目标函数的最大值或最小值分别用
MAx=...
或MIN=...
来表示 - 一行可以输入多个语句,一个语句也可以多行输入,但是每个语句必须以分号“;”结束;
- 注释语句以“!”开头,以“;“结束
- 默认情形下程序中所有的决策变量均取非负值
- Lingo模型以“model:”开头,以“end”结束
- 变量名以字母开头,后跟字母、数字或下划线
- Lingo不区分大小写,即MAX和max一致
二、Lingo的运算符
1.算术运算符:用于数与数之间的数学运算。
- +(加法)
- -(减法或负号)
- *(乘法)
- /(除法)
- ^ (求幂)
2.关系运算符:表示 “数与数之间”的大小关系。
- < (即<=,小于等于)
- = (等于)
- > (即>=,大于等于)
3.逻辑运算符
运算符 | 作用 |
---|---|
#EQ# | 若两个运算对象相等则为真,否则为假 |
#NE# | 若两个运算对象不等则为真,否则为假 |
#GT# | 若两个运算对象左边大于右边则为真,否则为假 |
#GE# | 若两个运算对象左边大于或等于右边则为真,否则为假 |
#LT# | 若两个运算对象左边小于右边则为真,否则为假 |
#LE# | 若两个运算对象左边小于或等于右边则为真,否则为假 |
#NOT# | 取反运算,使真为假,假为真 |
#AND# | 当且仅当两个运算对象都为真时为真,否则为假 |
#OR# | 当且仅当两个运算对象都为假时为假,否则为假 |
4.数学函数
函数 | 作用 |
---|---|
@abs(x) | 返回x的绝对值 |
@sqrt(x) | 返回x的平方根 |
@sin(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的整数部分 |
@smax(x1,x2,…,xn) | 返回x1,x2,…,xn中的最大值 |
@smin(x1,x2,…,xn) | 返回x1,x2,…,xn中的最小值 |
5.变量定界函数
函数 | 作用 |
---|---|
@bin(x) | 限制x为0或1 |
@bnd(L,x,R) | 限制L<=x<=R |
@free(x) | x可以取任意实数 |
@gin(x) | 限制x为整数 |
6.循环函数
- @for:该函数用来产生对成员的约束(类似C/C++中的for循环用法)
- @sum:返回遍历指定成员的一个表达式的和
- @min:返回指定成员的一个表达式的最小值
- @max:返回指定成员的一个表达式的最大值
7.其他函数
- @if(logical_condition,true_result,false_result):评价一个逻辑表达式logical_condition,如果为真返回true_ result,否则返回false_result。
三、一维数组型变量
1.段的概念:LINGO中建立的优化模型可以由六个部分组成,或称为六“段”。
- 集合段:用于定义数组型性变量
SETS: …… ENDSETS
- 数据段:用于变量赋值与数据传递
DATA: ……ENDDATA
- 目标与约束段:用于列出目标与约束唯一一个没有段的开始和结束标记
- 计算段:用于数据初始整理计算
CALC: …… ENDCALC
- 初始段:用于变量赋初值迭代寻优
INIT: ……ENDINIT
- 子模型段:用于表达子模型进行调用
@SUBMODEL mymodel:可执行语句(约束+目标)ENDSUBMODEL
2.基本集合与属性变量
- 集合 name/n1…n4/:a;
- name是集合名,n1…n4表示集合内到四个成员
- a是集合属性
- 集合定义以语句“sets:”开始,“endsets”结束,“endsets”单独成一行,后面不加标点符号
-
!举例; sets:!集合段; s/1..100/:x; endsets !目标与约束段 @sum(s(i):x(i))<90;!循环求和函数
- 缺省属性的集合:work/w1w2w3/;
- 初始集合:name、work
- 派生集合:links(name,work):b;
- links成员取name和work的所有可能组合,是一个由12个成员构成的矩阵
- 该矩阵的行数与name中的成员个数相等
- 该矩阵的列数与work中的成员个数相等
四、应用举例
最后
以上就是简单火车为你收集整理的【数学建模】Lingo软件介绍+常用函数总结+样例的全部内容,希望文章能够帮你解决【数学建模】Lingo软件介绍+常用函数总结+样例所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复