当前位置: 首页 > news >正文

Lingo软件学习(一)好学爱学

哈哈

一:基本的语法细节

(1)本文章以求解下列方程为例子:

 当我们需要利用lingo求解此线性规划方程时,可以直接将方程写进lingo文本框,但是我们在书写代码时要注意:

① Z不用写在代码中 

② 乘法要 “ * ”

③ lingo自动不识别空格,可以排版对齐利于分析问题。

③在lingo 中自变量大于(等于0)这些代码不用写(比如x1 >0)

④ 每一个语句后面要有;号。

(2)求解:

可以按ctrl +u直接运行。

 解的Z等于26 ,x1=2 ,x2=6

二,常见命令

(1)限定求解目标为整数

例如上题,我们可以在代码后加上:

@gin (x1);
@gin (x2);

三,使用集合解大型线性规划方程 

我们以下面例题为解:


根据本题,我们可以列出如下方程组:

接着,我们开始将方程写成代码;
(1) 确定变量下标:其中: a ,b ,d 属于 下标
e ,x ,y ;属于 j 下标
 c ; 属于 i , j 下标。
故第一步,我们要写定义自变量取值范围:用sets: ... endsets语法

这里的意思是S的集合是1到6,a,b,d满足此集合。

 (2)接着,我们将已知数据进行填写,利用data: ... enddata

(3) 最后,我们列方程: 

 语法结构解读:

(1)两个Σ及其对应下标分别用@sum(T(j): ...)和 @sum(S(i):...)进行表示.
注意:这里@sum的语法结构中最后有括号,而为什么min这一句最后有两个括号也是因为此语法。
这一句的语法结构即为嵌套了两个求和公式,求和项都是 c(i,j)*@sqrt((x(j)-a(i))^2+(y(j)-b(i))^2)
));

(2)对于约束条件
因为比如第一句的定义域取值是i的,而求和是j.
所以我们要用@for语句来限定说对于每个i(i=1...6)都满足约束条件: @sum(T(j): c(i,j)) = d(i)

所以本句的语法结构就是:@for(集合:约束条件;)。其中for的集合条是S(i);约束条件是@sum(T(j): c(i,j)) = d(i);其中c(i,j)求和的集合条件是T(j).


今天就学到这了,谢谢同志们~

http://www.xdnf.cn/news/1092241.html

相关文章:

  • Grafana容器化部署
  • 工业通讯网关在电子制造中的核心作用——从DeviceNet到Modbus TCP的智能转换
  • Vue响应式原理三:响应式依赖收集-类
  • 【Python】FastApi
  • 腾讯云COS,阿里云OSS对象存储服务-删除操作的响应码204
  • S7-1500——(一)西门子PLC编程从入门到精通4、SCL间接寻址
  • 项目进度受制于资源分配,如何动态调配资源
  • LeetCode 138题解 | 随机链表的复制
  • 5202年安装TensorFlow纪实
  • 向量空间 线性代数
  • 解锁HTML5页面生命周期API:前端开发的新视角
  • 超越公有云:在裸金属服务器上构建低成本、高性能的静态资源服务
  • STM32 使用HAL库获取us时间
  • 【使用Flask基于PaddleOCR3.0开发一个接口 调用时报错RuntimeError: std::exception】
  • HCIP(综合实验)
  • 代码随想录总结
  • css 设置 input 插入光标样式
  • 20250709: WSL+Pycharm 搭建 Python 开发环境
  • C++11 future、promise实现原理
  • 基于Matlab多特征融合的可视化指纹识别系统
  • 微算法科技从量子比特到多级系统,Qudits技术革新引领量子计算新时代
  • 三、Docker常用命令
  • React、Vue、Angular的性能优化与源码解析概述
  • upload-labs靶场通关详解:第19关 条件竞争(二)
  • Mysql组合索引的update在多种情况下的间隙锁的范围(简单来说)
  • 嵌入式调试LOG日志输出(以STM32为例)
  • 自建ELK vs 云商日志服务:成本对比分析
  • [Backlog] Git操作 | 任务数据结构 | Markdown 处理
  • Hugging Face Agents Course unit1笔记
  • 【科研绘图系列】R语言绘制解剖图