lingo学习笔记(1)lingo基础篇

文章目录

      • lingo软件
      • lingo运行与参数设置
      • lingo书写规范
      • lingo运算符号
      • lingo线性规划基础
      • lingo线性规划示例

lingo软件

推荐有数学建模比赛编程需求的同学安装lingo11版本,而不是lingo12版本。lingo12对非线性规划问题(0-1规划、整数规划等等)的支持并不良好,很难求得可行解,而lingo11求解的能力相对lingo12更强,大部分非线性规划问题都可以求得全局最优解或者局部最优解,但也存在无法求得可行解的情况。(可能是lingo自身求解非线性问题的优化算法不同,作者也不是很了解)

lingo运行与参数设置

运行按钮为窗口栏下的那个“红色的靶心”按钮。

参数设置–窗口栏选择LINGO–选择options–调整参数

lingo学习笔记(1)lingo基础篇

例如,可以选择Global Slover设置全局最优解。

lingo书写规范

1.注释的书写,以!开头,以;结尾

!我是注释;

2.变量约束以及命名原则

lingo默认所有参数为大于等于0的数字,因而非负约束不需要书写。(@free函数可定义一个变量的定义域为R)

lingo变量不区分大小写,不能与关键字同名,变量由、和组成,但变量必须以开头。(建议lingo编程时将变量都写成小写的)

Mm、mm、MM、mM都表示同一个变量

x、xx、x_1、max_x是合法的命名方式

1x、_x、max-x、max是非法的命名方式

3.矩阵元素的表示(后面会详细讲述)

一维数组的表示法:x(i)

二维矩阵的表示法:x(i,j)

注:在lingo编程时不可以把2*x简写为2x,lingo软件无法识别

lingo运算符号

符号 数学表示
+
*
/
取余 %
幂级 ^

lingo线性规划基础

1.一个线性规划只有一个目标函数(两个及以上的目标函数是多目标规划,lingo无法直接求解,在编写程序时应把多目标函数转换为单目标函数。

2.求目标函数的最大值或最小值分别用或来表示。

3.线性规划和非线性规划的本质是目标函数和约束条件是否线性,所以非线性和线性规划的模型编程基本一致,只是非线性规划在模型中存在非线性约束或者非线性的目标函数

0-1规划、整数规划是非线性问题

目标函数是非线性的属于非线性问题

lingo线性规划示例

m a x = 200 × x 1 + 300 × x 2 ; x 1 ≤ 100 ; x 2 ≤ 120 ; x 1 + 2 × x 2 ≤ 160 ; max = 200 times x_1 + 300 times x_2; x_1 leq 100; x_2 leq 120; x_1 + 2 times x_2 leq 160; max=200×x1?+300×x2?;x1?100;x2?120;x1?+2×x2?160;

来源:碳水化合猫

声明:本站部分文章及图片转载于互联网,内容版权归原作者所有,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!

上一篇 2020年6月8日
下一篇 2020年6月8日

相关推荐