Lingo

Lingo入门

Lingo使用

Lingo的基本常识

  • Lingo 基本界面
    • 1.打开lingo后会弹出一个对话框,点击 Cancel 左边 的 Never Register 即可,其余内容用不到。
      2.界面自动弹出名为“Lingo Model – Lingo 1”的窗口,用于书写代码。
      3.以解方程的题目: x + 1 = 2 x+1=2 x+1=2为例,写完代码后,点击“红色的靶心”运行程序。
      首先 Lingo 会弹出一个名为“Solver Status”的对话框,它显示运行时间等信息。读取到运行时间是 0 时 0 分 0 秒,充分证明了 Lingo 的强大之处。

Lingo符号

  1. 使用Lingo求解方程时必须以 ; 结束
  2. Lingo的所有符号都是英文格式下的符号.
  3. Lingo的加减乘除分别是+ - * /.
  4. 乘号不能够省略
  5. 表示次方,使用 ^ eg:x^2
  6. lingo 不读取空格

Lingo变量

  1. Lingo默认变量为大于0
  2. 若是变量小于0使用函数 @free 使其定义域为R
  3. Lingo在变量的命名中不区分大小写
  4. 变量均为字母数字下划线组成,且字母放在首位

Lingo含义

Lingo中运行程序出现的页面含义

  • Solver Status:求解器(求解程序)状态栏

    1. Model Class:当前模型的类型:LP,QP,ILP,IQP,PILP,PIQP,NLP,INLP,PINLP(以I开头表示IP,以PI开头表示PIP)
    2. State:当前解的状态: “Global Optimum”, “LocalOptimum”, “Feasible”, "Infeasible“(不可行), "Unbounded“(无界), "Interrupted“(中断), "Undetermined“(未确定)
    3. Object:解的目标函数值
    4. Infeasibility:当前约束不满足的总量(不是不满足的约束的个数):实数(即使该值=0,当前解也可能不可行,因为这个量中没有考虑用上下界命令形式给出的约束)
    5. Iteration:目前为止的迭代次数
  • Extend Solverstatus:扩展的求解器(求解程序)状态栏

    1. Solver type:使用的特殊求解程序:
    2. Bestobj :目前为止找到的可行解的最佳目标函数值
    3. Objbound:目标函数值的界
    4. Steps:特殊求解程序当前运行步数:
    5. Active:有效步数
  • Variables:(变量数量)

    1. 变量总数(Total)
    2. 非线性变量数(Nonlinear)
    3. 整数变量数(Integer)
    4. Constraints(约束数量)
    5. 约束总数(Total)
    6. 非线性约束个数(Nonlinear)
    7. Nonzeros(非零系数数量)
    8. 总数(Total)
    9. 非线性项系数个数(Nonlinear)
  • GeneratorMemory Used(K):(使用内存量)

  • ElapsedRuntime(hh:mm:ss):(求解花费时间)

Lingo问题

  1. 没有被赋初始值的变量,可能默认不是 0,亦有可能是 1.234568。你可以手动覆盖,问题不大。出现这种情况可能是因为内部实现使用了不同的算法。
  2. Lingo 中的代码表示的是方程组,这点很重要。不能将计算机语言中的一些默认特性带入 Lingo。比如:Lingo 中不可以 “给同一个变量赋不同的值”。(之所以打双引号是因为 Lingo 中的都是方程,用变量赋值来说,在数学上不准确)

Lingo解决

  1. 解决线性规划问题的局限性质
    • 一个线性规划中只含有一个目标函数。(两个以上的多目标线性规划,Lingo无法直接解) 如果建模同学给了我们多个目标函数,直接告诉他,没办法用 Lingo 求解,需要将多目标线性规划转换成 一个目标,这其实是有方法的。
    • 求目标函数的最大值或最小值分别用 max=… 或 min=… 来表示
    • Lingo17 注释遇到分号就会终止注释语句,这一点一定要留意 : 不要在 Lingo 的注释语句中 写 matlab 矩阵格式 的矩阵
  • 0
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值