目录
Lingo可以用来求解线性和非线性问题。
前提:在该软件下,有几个默认条件。
①LINGO默认所有变量是非负的。
②LINGO中没有严格的<
和>
,<
代表<=
,>
代表>=
。
③LINGO不区分变量的大小写。
④LINGO的注释用!引出,用;
结尾。
1.软件的基本操作
如果不是自己写代码的话,软件的使用并没有那么复杂。
2.软件的基本函数
(1)数字函数
(2)集合操作函数
(3)变量定界函数
@bin(x) 限制 x 只能取 0 或 1,0-1规划中经常使用。
@gin(x) 限制 x 为整数,在整数规划中特别有用。gin 谐音哽塞的哽。
@bnd(l,x,r) 限制 l <= x <= r ,推荐直接替换两个约束条件。(@bnd(l, x. r) 比 x >= l, x <= r 不论是速度还是约束条件,都要强。)
@free(x) 取消对变量 x 非负的限制,使其定义域自由。
注:可以使用 for 循环对大量的变量使用变量定界函数。
更多函数可以参照这篇文章:Lingo 函数
3.常见例子
(1)线性规划
model:
min=2*x1+3*x2;
x1+x2>350;
x1>100;
2*x1+x2<600;
end
运行代码后可以看到
(2)非线性规划
model:
min=(x1)^2+(x2)^2+8;! 目标函数;
x1^2-x2>=0;
-x1-x2^2+2=0;
x1>=0;
x2>=0;! 约束条件;
end
运行后获得结果。
(3)整数规划
这里记得给自变量加上整数的约束,也就是@gin(x) 。
这里补充一个代码的讲解,一个比较典型的代码