lingo运行详细教程,lingo软件使用

首页 > 教育 > 作者:YD1662024-05-22 03:19:42

chapter1

LINGO是什么?

是最近很火的用来求解线性、非线性规划的软件,近年来数学建模等竞赛中使用频率很高,掌握没坏处的,尤其是数学专业,起码线代题不用Matlab了~

chapter2

说说界面:

①打开后界面会自动弹出名为“Lingo Model – Lingo 1”的窗口,用于书写代码

②在空白处写完代码后,点击红色的靶心就可以开始运行程序

③运行正确会弹出一个名为“Solution Report”的界面
④由此可解变量 x 的数值

lingo运行详细教程,lingo软件使用(1)

chapter3

用 Lingo 解方程:

① 每个方程必须以分号“;”结束。

② 注意Lingo 的所有符号都是英文格式下的符号

③ Lingo 的加减乘除分别是: − ∗ /

【特别注意】

(1)“2 ∗ x”在Lingo中不可以简写为2x,乘号不能省略。

(2)注意除号“/”的形状

【eg】求解方程组

2∗x 2∗y 1=5

3∗x−5∗y 5=3

lingo运行详细教程,lingo软件使用(2)

【易错点】

① 不写结尾的分号。

② 不写乘号。

chapter4

Lingo 的变量:

①Lingo默认所有变量为大于等于0的数字,因而非负的条件不必多写。

②万一遇到一个变量可以小于0,后面会讲到一个函数叫做@free,来使其定义域为R。

③Lingo不区分大小写,所以mmm、mMm、MMM被视作同一个变量。

④无论是C、Matlab还是Lingo,变量均由字母数字下划线组成,且字母在首位。

【eg】求解方程组:

x² y² 2*x=103

2*x y=12

x>0

y>5

lingo运行详细教程,lingo软件使用(3)

线性规划基础:

① 一个线性规划中只含一个目标函数(两个以上是多目标线性规划,Lingo 无法直接解)

② 求目标函数的最大值或最小值分别用 max = …或 min = …来表示

③ 以 !开头,以 ;结束的语句是注释语句

④ 线性规划和非线性规划的本质区别是目标函数是否线性,其余一致,故不需要区分

⑤值得注意的是,非线性规划的求解十分困难,基本得不到全局最优解。

chapter5

矩阵工厂:

㈠生产一维矩阵:

先来看看例子,当然不必在意其中的空格(Lingo 不读取空格):

sets:

A /1..6/ : a,b;

B/1..3/ : x,y;

endsets

以上程序对应:

①A和B都是制造矩阵的工厂,但它们是两家不同的工厂

②A工厂后面的 /1…6/ 说明它专门生产1 ∗ 6的矩阵。B工厂最后面出现的a和b,都是1 ∗ 6的矩阵

③A工厂后面的 /1…3/ 说明它专门生产1 ∗ 3的矩阵。B工厂最后面出现的x和y,都是1 ∗ 3的矩阵

④ 矩阵工厂的名字A是随便起的,工厂所生产行矩阵的名字a和b也是随便起的

⑤ 以上这四句话,本质是定义了四个行矩阵的大小,矩阵工厂只是中介

⑥ 生产完矩阵后,工厂和矩阵之间将脱开联系

⑦ Lingo 不是一行一行读代码的,所以用sets:和endsets表示矩阵工厂生产流程的起止

【eg】阅读以下Lingo代码,请问a和b两个矩阵有联系吗?

sets:

nanfu /1..6/ : a,b;

endsets

答:没有特殊联系,只是 a 和 b 都是一行六列的矩阵

【eg】阅读以下Lingo代码,请问代码可否简洁一点?

sets:

ctgu /1..6/ : a;

mcm /1..6/ : b;

endsets

答:a,b可以合并,如下:

sets:

easy /1..6/ : a, b;

endsets

【eg】阅读以下Lingo代码,请问有何问题?

sets:

ceshi /1..6/ : apple, Apple;

endsets

答:Lingo 不区分大小写,所以 apple 和 Apple 是同一个矩阵,应该换个名字

㈡矩阵的赋值

矩阵工厂不能只生产矩阵,还要给矩阵赋初值才行,例子如下:

sets:

factory /1..6/ : a,b;

plant /1..3/ : c,x;

endsets

data:

a = 1, 2, 3, 4, 5, 6;

b = 6.0, 5.0, 4.0, 3.0, 2.0, 1.0;

c = 10, 20, 30;

enddata

以上程序对应以下知识点:

①不是每个矩阵都要赋值,有些矩阵正是我们要求解的变量

②需要赋值的矩阵必须赋满,不能给6个元素的矩阵只赋3个数值

③Lingo中可以给矩阵赋整数,也可以赋小数

④Lingo不是一行一行读代码的,所以用data:和enddata表示矩阵赋值的起止

————————————

我写的一个完整的计算

lingo运行详细教程,lingo软件使用(4)

……

-end-

lingo运行详细教程,lingo软件使用(5)

栏目热文

文档排行

本站推荐

Copyright © 2018 - 2021 www.yd166.com., All Rights Reserved.