LINGO初步介绍

LINGO是用来解决优化问题的一个特别好用的软件,可以快速求解线性规划、非线性规划、线性和非线性方程组等等,是数学建模中求优化问题的解不可缺少的工具之一。

首先让我们来看一个问题:

对于解决这种线性规划问题 ,可以采用 matlab中的库函数 linprog,但更方便的,还是采用 lingo编程,语法也十分简单

 1. max=72*x1+64*x2; 2. x1+x2<=50; 3. 12*x1+8*x2<=480; 4. 3*x1<=100;

几行代码也就算出结果,当然你可能会问,代码中为什么没有限制x1 和 x2 都要大于0,这是因为LINGO 中默认所有的变量都是非负的,在LINGO 中就不需写出对应的约束。

LINGO基本用法

(1)LINGO 的数学规划模型包含目标函数、决策变量、约束条件三个要素。
(2)在LINGO 程序中,每一个语句都必须要用一个英文状态下的分号结束,一个语句可以分几行输入。
(3)LINGO 的注释以英文状态的!开始,必须以英文状态下的分号结束;
(4)LINGO 的变量不区分字母的大小写,必须以字母开头,可以包含数字和下划线,不超过32 个字符。
(5)LINGO 程序中,只要定义好集合后,其他语句的顺序是任意的。
(6)LINGO 中的函数以“@”开头。
(7)LINGO 程序默认所有的变量都是非负的。
(8)LINGO 程序中"<“或”>"号与 ""或 " " 号功能相同。

LINGO 软件的基本语法

1.3.1 集合

集合部分的语法为
sets:
集合名称1/成员列表1/:属性1_1,属性1_2,…,属性1_n1;
集合名称2/成员列表2/:属性2_1,属性2_2,…,属性2_n2;
派生集合名称(集合名称1,集合名称2):属性3_1,…,属性3_n3;
endsets
例1.4
sets:
product/A B/;
machine/M N/;
week/1…2/;
allowed(product,machine,week):x;
endsets

1.3 .2 .2 数据

数据部分的语法为 数据部分的语法为 数据部分的语法为 数据部分的语法为
data: data:
属性 1= 数据列表; 数据列表; 数据列表;
属性 2= 数据列表; 数据列表; 数据列表;
enddata nddata

1.4 LINGO函数

1.4.1 算术运算符

^  乘方
﹡  乘
/  除
﹢  加
﹣  减

1.4.2 逻辑运算符

在 LINGO 中,逻辑运算符主要用于集循环函数的条件表达式中,来控制在函数中哪些 集成员被包含,哪些被排斥。在创建稀疏集时用在成员资格过滤器中。 LINGO 具有9种逻辑运算符

#not# 否定该操作数的逻辑值,#not#是一个一元运算符。

#eq# 若两个运算数相等,则为 true;否则为 false。

#ne# 若两个运算符不相等,则为 true;否则为 false。

#gt# 若左边的运算符严格大于右边的运算符,则为 true;否则为 false。

#ge# 若左边的运算符大于或等于右边的运算符,则为 true;否则为 false。

#lt# 若左边的运算符严格小于右边的运算符,则为 true;否则为 false。

#le# 若左边的运算符小于或等于右边的运算符,则为 true;否则为 false。

#and# 仅当两个参数都为 true 时,结果为 true;否则为 false。

#or# 仅当两个参数都为 false 时,结果为 false;否则为 true。

1.4.4 数学函数

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 函数的自然对数。

@mod(x,y)返回 x 除以 y 的余数。

@sign(x)如果 x0 时返回 1,当 x=0 时返回 0。

@floor(x)返回 x 的整数部分。当 x>=0 时,返回不超过 x 的最大整数;当 x<0 时,返回 不低于 x 的最大整数。

@smax(x1,x2,…,xn)返回 x1,x2,…,xn 中的最大值。

@smin(x1,x2,…,xn)返回 x1,x2,…,xn 中的最小值。

1.4.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 的约束。

1.4.6 集循环函数

@for:该函数用来产生对集成员的约束。

@sum:该函数返回遍历指定的集成员的一个表达式的和。

@min 和@max:返回指定的集成员的一个表达式的最小值或最大值。

例题:
以上这些都是LINGO的基本语法和函数使用的知识,接下来我用一些题目来教大家具体如何使用

1. min=(x^2+y^2+z^2)^(1/2); 2. x+y+z=1; 3. z=x^2+y^2; 4. @free(x); @free(y);

可以看出 结果和 此时自变量的取值。

再来一个例题:

代码如下:

 1. sets: 2. var/1..100/:x;3. endsets4. min=@sqrt(@sum(var(i):x(i)^2));5. @sum(var(i):x(i))=1;6. x(100)=@sum(var(i)|i#le#99:x(i)^2);7. @for(var(i)|i#le#99:@free(x(i)));


以上就是 LINGO 基本入门知识.

LINGO语法及软件操作相关推荐

  1. Mega软件操作教程

    Mega软件操作教程 001-a 进化树基本概念知识点讲解(理论讲解) 001-b 进化树原理和建树方法的选择(理论讲解) 001-c 进化树结构术语等(理论讲解) 001-d 分子系统进化分析流程( ...

  2. c++ 弹出菜单在固定的位置_固定资产管理软件操作手册(资产维修)

    资产维修:资产维修是针对固定资产的维修进行管理. 资产维修操作步骤如下(此处禁用审批流程): 1.新增资产维修信息 a.系统用户登录系统,点击"业务模块→日常管理→资产维修"菜单, ...

  3. php人员排班程序,人员排班软件操作步骤

    人员排班软件操作步骤: Section1:增加时间段,时间段主要是设置一个时段,并将其安排个一个周期里面的一天,例如将周一到周五的上班时间设为早上8点到晚上5点,周六为早上9点到下午四点 1. 用户进 ...

  4. 工具类软件操作手册_全套广联达软件学习资料合集:教程+实例讲解+操作手册,一文搞定...

    要学习并掌握好算量软件,不仅仅需要软件知识,还需要各种造价相关知识,只有精通软件及造价知识,才能大大的提高算量的速度及准确度. 一个算量的高手掌握的不单是软件操作技术,还要掌握的是造价的基础知识,你要 ...

  5. 计算机办公软件技能大赛试题,第七届计算机技能大赛办公软件操作比赛顺利举行...

    为提高广大青年的计算机应用水平,增强动手实践能力,5月5日晚七点我校第七届计算机技能大赛办公软件操作比赛分别在在计算机楼201.206.307机房举行. 来自全校各学院各个年级的五二百余名青年学子参与 ...

  6. lingo变量无限制版本_【运筹学】用Lingo求解运输问题,兼谈Lingo语法

    一. 运输模型 设有 个产地 其产量(供应量)分别为 : 个销地 , 其销量(需求量)分别为 :从产地 运往销地 的运费为 . 假设产销平衡,问如何安排运输方案能使总运费最小? 这就是经典的运输问题, ...

  7. 工具类软件操作手册_北京数字化的金蝶云团队-北京金普蝶软件科技有限公司...

    北京数字化的金蝶云团队 [rtfhkdrie] 企业典型案例石油股份湖南省分公司.湖南建工集团.中天建设.中铁五新隧装股份.湖南红星实业集团.湖南嘉德集团.湖南伊宅购股份.湖南城市英雄动漫娱乐.湖南湘 ...

  8. boost::spirit模块使用 phoenix 进行实际表达式评估的语法和语义操作的测试程序

    boost::spirit模块使用 phoenix 进行实际表达式评估的语法和语义操作的测试程序 实现功能 C++实现代码 实现功能 boost::spirit模块使用 phoenix 进行实际表达式 ...

  9. boost::spirit模块演示语法和语义操作的计算器示例

    boost::spirit模块演示语法和语义操作的计算器示例 实现功能 C++实现代码 实现功能 boost::spirit模块演示语法和语义操作的计算器示例 C++实现代码 #define BOOS ...

  10. layui导入模板数据_实物资产管理软件操作手册(数据接口)

    数据接口管理 "数据接口"功能是用于系统基础数据初始化使用的.此处提供了若干基础数据的维护模板,按照规定的要求维护好模板即可直接批量导入基础数据.基础数据模板有:人员档案.部门.存 ...

最新文章

  1. 【DFS】 HDU 3298 Contestants
  2. 5M1E,软件质量管理最佳解决方案
  3. tool vmmap 配置符号文件 symbolic file
  4. 对Url Schemes的简单了解
  5. 数据结构思维 第九章 `Map`接口
  6. Python基础-Pygame游戏框架之飞机大战
  7. 软件测试一个项目几个接口,你打开一个项目网址中间发生了什么?(软件测试面试题)...
  8. Java一亿电话号码去重_如何在有限的内存限制下实现数十亿级手机号码去重
  9. 腾讯 QQ for Linux 的安装及 tar.gz版本QQ 建立快捷方式
  10. 显卡ai性能测试软件,让AI帮助您自动超频。 Zotac RTX 2080Ti显卡性能测试
  11. Python实现同义词替换(哈工大pyltp分词)
  12. 手把手学习Vue3.0:开发工具WebStorm和Vue模板文件介绍
  13. 苹果系统备份文件服务器地址,苹果备份文件在哪里?苹果怎样恢复备份
  14. ZKT门禁机标准联接线(按键开关不经过卡机)
  15. JavaScript-PC端网页特效
  16. 关于NIST随机数测试软件报错问题的补充
  17. mac隐藏桌面图标快捷键_如何在Mac OS X桌面上隐藏图标
  18. jdbc mysql 解密_数据库配置文件jdbc.properties 实现用户名密码加密
  19. 建筑CAD《超级绘图王》简介
  20. egret 软件下载

热门文章

  1. 图解Windows下QT编程入门
  2. python函数手册pdf_Numpy函数手册(中文版).pdf
  3. Win10 安装 .NetFramework 4.7 (SourceTree)
  4. [Go实战]goFrame框架初次使用
  5. 图像转换 - base64
  6. [深度学习论文笔记][Depth Estimation] Depth Map Prediction from a Single Image using a Multi-Scale Deep Netw
  7. sd卡写保护解除工具_手把手教你快速解除vivo手机高通系列屏幕锁(附短接拆机小视频)...
  8. python画散点图分布-python中画散点图
  9. 变分模态分解(VMD)前言
  10. 象棋名手手机版2019最新版_象棋名手64核比赛冠军版2019