LINDO、LINGO软件的使用方法.pptVIP

  • 15
  • 0
  • 约1.44万字
  • 约 69页
  • 2019-12-02 发布于湖北
  • 举报
例1: 解: LINDO程序为: 第4、5部分的数据 第4部分数据的分析 第5部分数据的分析 一、LINGO软件的一些规定 LINGO软件的一些规定(2) LINGO软件的一些规定(3) LINGO软件的一些规定(4) LINGO软件的一些规定(5) 用lingo编写的程序为: 练习: 二、lingo的优点 lingo中的灵敏性分析数据 通过修改选项得到灵敏性分析数据的步骤 激活全局最优求解程序的步骤 三、 运算符及优先级 2、运算符的优先级 四、常用的函数 2、集合循环函数 集合循环 (1) @for (2) @sum 但是如果作下列修改: (3) @min 或@max 关于循环的一些细节问题 3、变量定界函数 五、lingo计算输出结果 六、关于lingo程序中的段 1、集合段(sets): 2、数据段(data): 3、目标和约束段: 例如: 例5 用求和形式表示的模型 讨论用集合表示的模型: 讨论用集合表示的模型: 上述数学模型用集合编写的求解程序为: 用集合表示的程序为: 利用软件计算可知, (2) 该规划问题用求和形式表示的模型为: 该规划问题用集合编写的程序为: 用集合表示的程序为: 利用软件计算可知, 1、运算符 (1)算术运算符: +加 -减 *乘 /除 ^乘方 (开方) (2)逻辑运算符: 逻辑运算结果只有真与假,在lingo中用1和0表示,逻辑运算符(表达式)通常作为过滤条件使用。 ① #and# 与,#or# 或,#not# 非 ② #eq#等于, #ne#不等于, #gt#大于, #ge#大于等于, #lt#小于, #le#小于等于 即:g —大于, e —等于, l —小于, t —不等于 (3)关系运算符 (或=) = (或=) #not# (负号) ^ * / + (减法) #eq#,#ne#,#gt#,#ge#,#lt#,#le# #and# 与,#or# = 高 低 在Lingo中,所有的系统函数都必须是以“@”开头。 1、数学函数 @abs(x) 求绝对值函数, 返回x的绝对值 @cos(x) 求余弦函数,返回x的余弦值, x的单位是弧度 @exp(x) 计算e x 的值 @log(x) 计算lnx 的值 @pow(x,y) 计算x y 的值 @sqr(x) 计算x的平方 @sqr(x,y) 计算x的y次方 集合循环函数是指对集合中的所有元素(下标)进行循环操作的函数,如@sum,@for等。 具体的使用格式: @循环函数(循环变量所在的集 (循环变量)│过滤条件:循环(如求和)表达式) 其中,如果在操作过程中没有过滤条件,可以省略过滤条件;如果表达式是对集合的所有循环变量进行操作,循环变量也可以省略。 @for 是对集合的每个元素独立地操作一次表达式 , 通常是优化问题的约束条件; @sum 是求集合中表达式的和; @prod 是求集合中表达式的乘积; @max 是求集合中表达式的最大值; @min 是求集合中表达式的最小值; 但如果是求目标函数的最大、最小值,则是用 “max=目标函数表达式”, “min=目标函数表达式”, 而不用写@。 该函数用来产生对集成员的约束。 @for函数允许只输入一个约束条件,然后由lingo自动产生每个集成员的约束条件。 例1 产生序列{ 1,4,9,16,25 } model: sets: number/1..5/:x; endsets @for(number(i): x(i)=i^2); end (产生一种类型的变量x,该变量x有5个下标 对所有的下标i,分别求 i 2) 该函数返回遍历指定的集成员的一个表达式的和。 例2 求向量[ 5,1,3,4,6,10 ]前5个数的和. model: data: N=6; enddata sets: number/1..N/:x; endsets data: x = 5 1 3 4 6 10; enddata s=@sum(number(i) | i #le# 5: x(i)); end 过滤条件 model: data: N=6; enddata s

文档评论(0)

1亿VIP精品文档

相关文档