文章目录
数学建模-Lingo学习
注意:
-
放大缩小字体:ctrl+滚轮
-
每行句子一定要加分号,否则会报错。
-
lingo的加
+
减-
乘*
除/
-
2*x不能写成2x
-
lingo的注释:
!我是注释;
-
lingo是不解析空格的
-
lingo的语句是没有逻辑先后关系的
-
for和sum中可以省略
i
,但是必须同带或者同不带 -
使用矩阵工厂创建矩阵后,整个程序需要用
model:
和end
套起来
Lingo的变量:
- Lingo默认所有变量为大于等于0的数字,因此非负的条件不必多写
- 万一一个变量可以小于0,会有一个函数叫@free,来使定义域为R.
- a和A等价,Lingo并不区分大小写,
aaa
和AaA
,AAa
都被看作一个变量(最好写小写) - 变量由字符数字下划线构成,且字母在首位,与Matlab命名相同
入门案例
输入
x+1=2;
点击运行,返回一个弹框
叉掉后 是一个文本框,内容是可以修改的
用Lingo解方程
题1(两个等式方程组成的方程组)
求解方程组
下面是图示方便理解,后面的案例会直接文字说明
结果
题2(两个等式方程和两个不等式方程组成的方程组)
求解方程组
在Lingo Model中输入
x^2+y^2+2*x=103;
2*x+y=12;
y>5;
!这里并不需要写x>0,因为lingo中默认变量大于0;
然后点击运行按钮
线性规划基础
- 一个线性规划中只含有一个目标函数.(两个以上的是多目标线性规划,Lingo无法直接解,除非利用模型将两个目标函数整合成一个目标函数)
- 求目标函数最大值或最小值分别用max=…或min=…来表示
- 线性规划和非线性规划的本质区别是目标函数是否线性,其余一致,不需要区分.但需要注意,非线性规划的求解非常困难,基本得不到全局最优解
题
在lingo窗口中输入
max = 200*x1 + 300*x2;
x1 <= 100;
x2 <= 120;
x1+2*x2 <= 160;
主要是
集合&矩阵工厂
直接上题 = =
引题
解法1 暴力枚举法
①分解