lingo不区分大小写
变量名:字母,数字,下划线;字母开头
矩阵 x(1) 不是x1
只能解一个目标函数的线性规划
!开头;结尾 注释语句
矩阵工厂
sets:
factory/1..6/:a,b;
endsets
表示生成1行6列的矩阵
生成完矩阵,工厂和矩阵将脱开关系,即factory和a,b之间没有关系
矩阵赋值
data:
a=1,2,3,4,5,6;
enddata
矩阵赋值必须赋满,不能给6个元素的矩阵赋3个数值,可以赋整数,也可以赋小数
lingo不是一行一行读代码的,所以用data:和enddata表示矩阵赋值的起止
for循环
约束条件全部放在括号中
sum求和
1.不可以括起完整的约束条件
2.此处i可带可不带,但当二维矩阵工厂出现后,同时会出现i和j,那时必须带。
二维矩阵/工厂合并
表示生成六行八列的矩阵
赋值
注意只有最后一行打分号
例题:
lingo中默认所有变量非负,所以本例中最后一个约束条件可不写代码
运算符
1.算术运算符
2.关系运算符
三种:=、>=、<=
lingo里没有>和<,但之前的代码中输入>或<没有报错,是因为lingo忽略了=
3.逻辑运算符
出现的位置:
(1)for循环和sum运算中
(2)if判断(很少出现)
法一:
法二:
内置函数
1.if判断
if函数通常仅在分段函数处出现,一般其出现频率、使用次数十分低;
lingo中的if函数,必须自带一个else。
本题要先用@free() 使定义域自由化
if嵌套
2.变量定界函数
(1)@free
(2)@bnd
3.@bin
4.@gin
注:本题修改过题干故没有最优解,运行后代码报错是正常现象。
数学函数
注:这里其它类别中第二个函数打错了,应该是 @sign(x)
集合操纵函数