lingo 基础 程序结构,关系运算,逻辑运算,各类函数汇总 |
您所在的位置:网站首页 › lingo中的for函数 › lingo 基础 程序结构,关系运算,逻辑运算,各类函数汇总 |
☆ lingo 必知必会 文章导航 非集合语法求解问题lingo 程序结构lingo 小知识点总结关系运算符逻辑运算符变量定界函数数学函数集合操作函数 !* lingo 命名 → 包括数字字母下划线,必须以字母开头 * lingo 代码命令不区分大小写 * 每条语句以分号 “;” 结束 * lingo 以 ! 开始,以 ; 结束是注释语句; 非集合语法求解问题直接写出模型 例:解方程x^2 + x + y = 5 x + y^2 - y = 7 代码: x^2 + x + y = 5; x + y^2 - y = 7;运行结果 lingo 默认所有变量都是大于等于 0 的,如果要将 x 的定义域变为 R,则先使用 @free(x) 即可。 lingo 程序结构 model: sets: ... ! 产生矩阵; endsets data: ... ! 矩阵赋值; enddata ... ! 求解模型; end实例: 请编程求解以下模型 程序: model: sets: fac /1..6/: a; ! 产生 1 × 6 的矩阵; plant /1..8/: d; coo(fac, plant): c, x; ! 产生 6 × 8 的矩阵; endsets data: a = 60, 55, 51, 43, 41, 52; d = 35, 37, 22, 32, 41, 32, 43, 38; c = 6, 2, 6, 7, 4, 2, 5, 8, 4, 9, 5, 3, 8, 5, 8, 2, 5, 2, 1, 9, 7, 4, 3, 3, 7, 6, 7, 3, 9, 2, 7, 1, 2, 3, 9, 5, 7, 2, 6, 5, 5, 5, 2, 2, 8, 1, 4, 3; enddata ! 求解模型; min = @sum(coo: c * x); @for(fac(i) : @sum(plant(j) : x(i, j)) = ” 以及 “ 2 和 x >= 2 是一样的 若想精确地表达 x > 2 → x - e >= 2; e = 0.000001(取决于你想要的精度) 逻辑运算符定义: 运算符含义#eq#等于#ne#不等于#gt#大于#ge#大于等于#lt#小于#le#小于等于#and#与#not#非#or#或☆ 逻辑运算符一般出现的位置 for 循环和 sum 求和、if 判断 实例: 程序: x = 560; ! 给 x 一个初值; y = @if(x #le# 500, 4 * x, @if(x #gt# 1000, 1500 + 2 * x, 500 + 3 * x));结果: 变量定界函数 名称含义@bin(x)限制 x 只能取 0 / 1 (通常用在 0–1 规划中)@gin(x)限制 x 只能取整数(通常用在整数规划中)@bnd(a, x, b)限制 x 在 [a, b] 内@free(x)使其定义域变为 R 数学函数 名称含义@sin(x)返回正弦值@cos(x)返回余弦值@tan(x)返回正切值@log(x)返回 x 的自然对数值@exp(x)返回 e 的 x 次方的值@abs(x)返回 x 的绝对值@sigh(x)返回 x 的符号值,x >= 0 为 1,x < 0 为 -1@floor(x)向下取整@smax(x1, x2, x3, …, xn)返回其中的最大值@smin(x1, x2, x3, …, xn)返回其中的最小值 集合操作函数☆ 设 factory 生产 1 × 6 的矩阵。 名称含义@for(factory : a )循环@sum(factory : a)求和@prod(factory : a)求积@max(factory : a)求最大值@min(factory : b)求最小值in(factory, c)判断常数 c 是否在集合中@size(factory)返回工厂可生产矩阵的长度 |
今日新闻 |
推荐新闻 |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |