2010年国赛高教杯数学建模C题输油管的布置解题全过程文档及程序

2010年国赛高教杯数学建模

C题 输油管的布置

  某油田计划在铁路线一侧建造两家炼油厂,同时在铁路线上增建一个车站,用来运送成品油。由于这种模式具有一定的普遍性,油田设计院希望建立管线建设费用最省的一般数学模型与方法。
  1. 针对两炼油厂到铁路线距离和两炼油厂间距离的各种不同情形,提出你的设计方案。在方案设计时,若有共用管线,应考虑共用管线费用与非共用管线费用相同或不同的情形。
  2. 设计院目前需对一更为复杂的情形进行具体的设计。两炼油厂的具体位置由附图所示,其中A厂位于郊区(图中的I区域),B厂位于城区(图中的II区域),两个区域的分界线用图中的虚线表示。图中各字母表示的距离(单位:千米)分别为a = 5,b = 8,c = 15,l = 20。
在这里插入图片描述
  若所有管线的铺设费用均为每千米7.2万元。 铺设在城区的管线还需增加拆迁和工程补偿等附加费用,为对此项附加费用进行估计,聘请三家工程咨询公司(其中公司一具有甲级资质,公司二和公司三具有乙级资质)进行了估算。估算结果如下表所示:
在这里插入图片描述
  请为设计院给出管线布置方案及相应的费用。
  3. 在该实际问题中,为进一步节省费用,可以根据炼油厂的生产能力,选用相适应的油管。这时的管线铺设费用将分别降为输送A厂成品油的每千米5.6万元,输送B厂成品油的每千米6.0万元,共用管线费用为每千米7.2万元,拆迁等附加费用同上。请给出管线最佳布置方案及相应的费用。

整体求解过程概述(摘要)

  “输油管的布置”数学建模的目的是设计最优化的路线,建立一条费用最省的输油管线路,但是不同于普遍的最短路径问题,该题需要考虑多种情况,例如,城区和郊区费用的不同,采用共用管线和非公用管线价格的不同等等。我们基于最短路径模型,对于题目实际情况进行研究和分析,对三个问题都设计了合适的数学模型做出了相应的解答和处理。
  问题一:此问只需考虑两个加油站和铁路之间位置的关系,根据位置的不同设计相应的模型,我们基于光的传播原理,设计了一种改进的最短路径模型,在不考虑共用管线价格差异的情况下,只考虑如何设计最短的路线,因此只需一个未知变量便可以列出最短路径函数;在考虑到共用管线价格差异的情况下,则需要建立2个未知变量,如果带入已知常量,可以解出变量的值。
  问题二:此问给出了两个加油站的具体位置,并且增加了城区和郊区的特殊情况,我们进一步改进数学模型,将输油管路线横跨两个不同的区域考虑为光在两种不同介质中传播的情况,输油管在城区和郊区的铺设将不会是直线方式,我们将其考虑为光在不同介质中传播发生了折射。在郊区的路线依然可以采用问题一的改进最短路径模型,基于该模型,我们只需设计2个变量就可以列出最低费用函数,利用Matlab和VC++ 都可以解出最小值,并且我们经过多次验证和求解,将路径精度控制到米,费用精度控制到元。
  问题三:该问的解答方法和问题二类似,但是由于A管线、B管线、共用管线三者的价格均不一样,我们利用问题二中设计的数学模型,以铁路为横坐标,城郊交汇为纵坐标建立坐标轴,增加了一个变量,建立了最低费用函数,并且利用VC++解出了最低费用和路径坐标。

模型假设:

  1、管道均以直线段铺设,不考虑地形影响。
  2、不考虑管道的接头处费用。
  3、不考虑施工之中的意外情况,所有工作均可顺利进行。
  4、共用管线的价格如果和非公用管线不一致,则共用管线价格大于任意一条非公用管线价格,小于两条非公用管线价格之和。

问题分析:

  问题一:要考虑有和没有共用管线,还要考虑共用管线与非共用管线费用相同和不同两种情况。同时还要考虑两个工厂是否在铁路的同一侧,如果两个工厂在铁路的同一侧那么一定没有共用管线。 不在铁路的同一侧那么就要考虑有和没有共用管线这个问题。计算共用管线的长度时,用光学原理,把一个工厂当作光源发射一束光经过一个平面的反射通过另一个工厂,这样能够保证路线最短。这个平面与铁路的距离即为共用管线的长度。同时与这个平面的交点就是两厂的管线的交点。当共用管线与非共用管线费用不相同时可以通过建立方程组来解答。
  当共用管线与非共用管线费用不相同时要建立方程组来计算其最小费用从而来确定方案的可行性,共用管线与非共用管线长度作为变量来控制总费用,那么我们就可以列出一个方程组,从而在变量的约束条件下可以确定最小费用。
  问题二:把这个问题分两部分来考虑,即市区和郊区分两个部分,火车站建立在郊区费用要小得多,郊区共用管线与非共用管线的费用相同所以可以用最短路径的方法来考虑,同时又要求费用最小,可以解出最低费用及对应的铺设线路。
  问题三:通过建立坐标系设两个点的坐标,同时也是表达管线的长度,然后再与各自的费用之积确定总的费用,从而算出两点的坐标值。即确定了管线的路线。

模型的建立与求解整体论文缩略图

在这里插入图片描述

全部论文请见下方“ 只会建模 QQ名片” 点击QQ名片即可

部分程序代码:

%解方程组
syms x y b l a m n 
[x,y]=solve('x/((x^2+(y-a)^2)^(1/2))+(x-l)/(((x-l)^2+(y-b)^2)^(1/2))=0','m*((y-a)/((x^2+(y-a)^2)^(1/2))+(y-b)/(((x-l)^2+(y-b)^2)^(1/2)))+n=0','x,y');
pretty(simple(x))
pretty(simple(y))
%铺设管路长度
syms m n a b l
x =-1/4/(-4*m^2+n^2)*(-8*a*m^2+8*b*m^2-2*n^2*b+2*n^2*a+2*(4*m^2*l^2*n^2-l^2*n^4)^(1/2))*l/(-1/2/(-4*m^2+n^2)*(-8*a*m^2+8*b*m^2-2*n^2*b+2*n^2*a+2*(4*m^2*l^2*n^2-l^2*n^4)^(1/2))+a-b)y =a-1/4/(-4*m^2+n^2)*(-8*a*m^2+8*b*m^2-2*n^2*b+2*n^2*a+2*(4*m^2*l^2*n^2-l^2*n^4)^(1/2))
d=(x^2+(a-y)^2)^(1/2)+((l-x)^2+(b-y)^2)^(1/2)+y
pretty(simple(d))
syms m n a b l 
x=-1/4/(n^2-4*m^2)*(-8*m^2*a+8*m^2*b+2*n^2*a-2*n^2*b-2*(4*m^2*l^2*n^2-l^2*n^4)^(1/2))*l/(-1/2/(n^2-4*m^2)*(-8*m^2*a+8*m^2*b+2*n^2*a-2*n^2*b-2*(4*m^2*l^2*n^2-l^2*n^4)^(1/2))+a-b)y=a-1/4/(n^2-4*m^2)*(-8*m^2*a+8*m^2*b+2*n^2*a-2*n^2*b-2*(4*m^2*l^2*n^2-l^2*n^4)^(1/2))f=(x^2+(a-y)^2)^(1/2)+((l-x)^2+(b-y)^2)^(1/2)+ypretty(simple(f))
%铺设管路所需费用
syms m n a b l
x =-1/4/(-4*m^2+n^2)*(-8*a*m^2+8*b*m^2-2*n^2*b+2*n^2*a+2*(4*m^2*l^2*n^2-l^2*n^4)^(1/2))*l/(-1/2/(-4*m^2+n^2)*(-8*a*m^2+8*b*m^2-2*n^2*b+2*n^2*a+2*(4*m^2*l^2*n^2-l^2*n^4)^(1/2))+a-b)y =a-1/4/(-4*m^2+n^2)*(-8*a*m^2+8*b*m^2-2*n^2*b+2*n^2*a+2*(4*m^2*l^2*n^2-l^2*n^4)^(1/2))
e=m*(x^2+(a-y)^2)^(1/2)+m*((l-x)^2+(b-y)^2)^(1/2)+n*y
pretty(simple(e))
syms m a b lx=-1/4/(m^2-4*m^2)*(-8*m^2*a+8*m^2*b+2*m^2*a-2*m^2*b-2*(4*m^2*l^2*m^2-l^2*m^4)^(1/2))*l/(-1/2/(m^2-4*m^2)*(-8*m^2*a+8*m^2*b+2*m^2*a-2*m^2*b-2*(4*m^2*l^2*m^2-l^2*m^4)^(1/2))+a-b)y=a-1/4/(m^2-4*m^2)*(-8*m^2*a+8*m^2*b+2*m^2*a-2*m^2*b-2*(4*m^2*l^2*m^2-l^2*m^4)^(1/2))g=m*(x^2+(a-y)^2)^(1/2)+m*((l-x)^2+(b-y)^2)^(1/2)+n*ypretty(simple(g))
!目标函数Z最小;
min=7.2*(a+b+c+d)+21.424*d;
x1<15;
a^2=((x1)^2+(y1-5)^2);!a表示AP;
b^2=((x1-15)^2+(y1-y2)^2); !b表示PQ;
c=y1;   !c表示CP;
d^2=((15-20)^2+(y2-8)^2); !d表示QB;LINGO9.0运行结果:
Local optimal solution found.Objective value:                              282.3143Total solver iterations:                            46Variable           Value        Reduced CostA        6.294130          -0.4507570E-08B        11.02638            0.000000C        1.852935            0.000000D        5.040020           0.2173971E-07X1        5.450877            0.000000Y1        1.852935           0.2237103E-07Y2        7.366124            0.000000Row    Slack or Surplus      Dual Price1        282.3143           -1.0000002        9.549123            0.0000003        0.000000          -0.57196154        0.000000          -0.32648985        0.000000           -7.2000006        0.000000           -2.839671
全部论文请见下方“ 只会建模 QQ名片” 点击QQ名片即可

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/pingmian/56521.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

在线考试系统的现代化解决方案:Spring Boot与JavaWeb

3系统分析 3.1可行性分析 通过对本基于JavaWeb技术的在线考试系统设计与实现实行的目的初步调查和分析&#xff0c;提出可行性方案并对其一一进行论证。我们在这里主要从技术可行性、经济可行性、操作可行性等方面进行分析。 3.1.1技术可行性 本基于JavaWeb技术的在线考试系统设…

10 排序算法:冒泡排序与快速排序(算法原理、算法实现、时间和空间复杂度分析)

目录 1 十大常见的排序算法 1.1 算法的稳定性 2 冒泡排序 2.1 算法原理 2.2 算法实现 2.3 时间空间复杂度分析 2.3.1 时间复杂度分析 2.3.2 空间复杂度分析 3 快速排序 3.1 算法原理 3.1.1 排序思想 3.1.2 递归过程 3.2 示例 3.2.1 示例 1 3.2.2 示例 2 3.2.3 …

设计一个支持自动化测试执行的测试框架

设计一个支持自动化测试执行的测试框架 在现代软件开发中,自动化测试是确保软件质量的重要手段。一个良好的测试框架不仅可以提高测试效率,还能帮助开发团队快速发现和修复缺陷。本文将介绍如何设计一个支持自动化测试执行的测试框架,涵盖框架的基本结构、核心功能以及实现…

JAVA 中系统相关的类

System 类 代表的是当前 Java 程序运行的平台&#xff08;操作系统&#xff09;&#xff0c;该类被关键字 final 修饰&#xff0c;即该类不能够派生子类&#xff0c;同时该类的构造器被关键字 private 修饰&#xff0c;因此不能够创建 System 类型的实例对象。 System 类中定…

【数据采集工具】Sqoop从入门到面试学习总结

国科大学习生活&#xff08;期末复习资料、课程大作业解析、大厂实习经验心得等&#xff09;: 文章专栏&#xff08;点击跳转&#xff09; 大数据开发学习文档&#xff08;分布式文件系统的实现&#xff0c;大数据生态圈学习文档等&#xff09;: 文章专栏&#xff08;点击跳转&…

【DNF mysql8.0安装】DNF安装MySQL服务器教程

在基于Red Hat的Linux发行版中&#xff0c;如CentOS或Fedora&#xff0c;DNF&#xff08;Dandified Yum&#xff09;是包管理器&#xff0c;用于安装、更新和卸载软件包。以下是使用DNF安装MySQL服务器&#xff08;也称为MySQL Community Server&#xff09;的步骤&#xff1a;…

网易博客旧文----Xtreme ToolkitPro 的CommandBarsDesigner编辑生成的界面如何使用

Xtreme ToolkitPro 的CommandBarsDesigner编辑生成的界面如何使用 2013-03-04 17:22:42| 分类&#xff1a; MFC | 标签&#xff1a; |举报 |字号大中小 订阅 著名的界面开发商Codejock Software开发的MFC界面控件和BCGsoft公司开发的BCGControlBarPro界面有得一拼。 codejock…

SpringBoot整合Freemarker(一)

Freemarker和jsp一样是一个视图的引擎模板&#xff0c;其实所有的模板引擎的工作原理都是类似的&#xff0c;如下图&#xff1a; 接下来就具体讲解一下Freemarker的用法&#xff0c;参考手册&#xff1a;模板 数据模型 输出 - FreeMarker 中文官方参考手册 SpringBoot默认就…

Agentic RAG(基于智能体的检索增强生成)是检索增强生成(Retrieval-Augmented Generation,RAG)技术的一种高级形式

Agentic RAG&#xff08;基于智能体的检索增强生成&#xff09;是检索增强生成&#xff08;Retrieval-Augmented Generation&#xff0c;RAG&#xff09;技术的一种高级形式&#xff0c;它通过引入人工智能代理&#xff08;Agent&#xff09;的概念&#xff0c;为语言模型赋予了…

本地项目上传Github+Gitee上传特定分支到Linux服务器(自用)

一、本地项目上传Github 上传整个项目到一个全新的repositories 或者 上传一个文件到一个特定的分支 步骤 1: 在本地创建 Git 仓库 在项目的根目录下运行以下命令&#xff0c;初始化本地 Git 仓库&#xff1a; git init步骤 2: 添加文件到 Git 仓库 使用以下命令将所有文件…

vite server正则表达式

vite server支持正则表达式&#xff0c;这样可以在测试时将一些请求模拟转发到本地后端服务的端口。且不会出现跨域的问题。 例如下面的配置&#xff0c;解决了3个问题&#xff1a; 1&#xff09;API请求URI地址转发到本地后端服务 2&#xff09;文件资源路径转发到本地后端服…

微前端架构及其解决方案对比

微前端架构及其解决方案对比 微前端架构是一种通过将大型前端应用拆分为多个独立的、可单独部署的小型应用的设计模式。随着这种模式的流行&#xff0c;诞生了多种微前端实现方案&#xff0c;每个方案都有其独特的特点和适用场景。以下是常见的微前端解决方案及其优缺点对比&a…

Socket 网络编程与 C# 中的应用实例

一、引言 在当今数字化时代&#xff0c;网络编程成为构建各种分布式应用和实现设备间通信的关键技术。Socket 网络编程作为一种底层且强大的网络通信方式&#xff0c;为开发者提供了直接操控网络连接和数据传输的手段。从即时通讯应用到网络游戏服务器&#xff0c;从文件传输工…

智能EDA小白从0开始 —— DAY24 Pulsic

Pulsic公司简介及其革命性EDA工具Animate Preview深度解析 一、公司概览与背景 Pulsic&#xff0c;一家深耕于电子设计自动化&#xff08;EDA&#xff09;领域的精密设计自动化公司&#xff0c;自2001年1月在英国布里斯托尔成立以来&#xff0c;便致力于解决先进节点设计所面…

一些简单的汇编指令

硬件架构和汇编指令 一、硬件架构 ARM芯片属于精简指令集计算机(RISC:Reduced Instruction Set Computing)&#xff0c; 它所用的指令比较简单&#xff0c;有如下特点: ① 对内存只有读、写指令 ② 对于数据的运算是在CPU内部实现 ③ 使用RISC指令的CPU复杂度小一点&#xff0…

中国科学院大学与美团发布首个交互式驾驶世界模型数据集DrivingDojo:推进交互式与知识丰富的驾驶世界模型

中国科学院大学与美团发布首个交互式驾驶世界模型数据集DrivingDojo&#xff1a;推进交互式与知识丰富的驾驶世界模型 Abstract 驾驶世界模型因其对复杂物理动态的建模能力而受到越来越多的关注。然而&#xff0c;由于现有驾驶数据集中的视频多样性有限&#xff0c;其卓越的建…

简述RESTFul风格的API接口

目录 传统的风格API REST风格 谓词规范 URL命令规范 避免多级URL 幂等 CURD的接口设计 REST响应 响应成功返回的状态码 重定向 错误代码 客户端 服务器 RESTful的返回格式 返回格式 从上一篇文章我们已经初步知道了怎么在VS中创建一个webapi项目。这篇文章来探讨一…

外包干了2个月,技术明显退步

回望过去&#xff0c;我是一名普通的本科生&#xff0c;于2019年通过校招有幸加入了南京某知名软件公司。那时的我&#xff0c;满怀着对未来的憧憬和热情&#xff0c;投入到了功能测试的岗位中。日复一日&#xff0c;年复一年&#xff0c;转眼间&#xff0c;我已经在这个岗位上…

Git协作场景

1、日常需求开发 在日常开发中&#xff0c;研发人员通常需要从 develop 分支创建 feature 分支进行功能开发&#xff0c;并在开发完成后将其合并回 develop。常规的操作流程如下&#xff1a; 创建 feature 分支&#xff1a; 研发人员从 develop 分支创建一个新的 feature 分支…

优化SpringBoot接口:异步处理提升系统吞吐量策略

作者介绍&#xff1a;✌️大厂全栈码农|毕设实战开发&#xff0c;专注于大学生项目实战开发、讲解和毕业答疑辅导。 推荐订阅精彩专栏 &#x1f447;&#x1f3fb; 避免错过下次更新 Springboot项目精选实战案例 更多项目&#xff1a;CSDN主页YAML墨韵 学如逆水行舟&#xff0c…