【数学建模】钻井问题

这篇具有很好参考价值的文章主要介绍了【数学建模】钻井问题。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

已知

  1. 12口井的坐标位置如下:
    x=[0.50,1.41,3.00,3.37,3.40,4.72,4.72,5.43,7.57,8.38,8.98, 9.50];
    y=[2.00,3.50,1.50,3.51,5.50,2.00,6.24,4.10,2.01,4.50,3.41,0.80];
  2. 设平面有n个点 P i P_i Pi(表旧井井位),其坐标为 ( a i , b i ) , i = 1 , 2 , … , n (a_i,b_i),i=1,2,…,n (ai,bi),i=1,2,,n。新置的井位是一个正方形网格 N N N的所有结点。假设每个格子的边长都是 1 1 1单位。整个网格是可以在平面上任意移动的。若一个已知点 P i P_i Pi距某个网格结点 X i X_i Xi的距离不超过给定误差 ϵ \epsilon ϵ,则认为 P i P_i Pi处的旧井井位可以利用,不必在结点处打新井。

1)假定网格的横向和纵向是固定的,并规定两点间的距离为其横向距离(横坐标之差的绝对值)及纵向距离(纵坐标之差的绝对值)的最大者,在平面上平移网格N,使可利用的旧井数尽可能大,试提供数值计算方法。

本题主要是要建立旧井可利用判断模型

首先是按照题目建立两点距离符合误差 ϵ \epsilon ϵ范围内的判断模型
若一个已知点 P i P_i Pi ( a i , b i ) (a_i,b_i) (ai,bi)距某个网格结点 X i ( x i , y i ) X_i(x_i,y_i) Xi(xi,yi)的距离不超过给定误差 ϵ \epsilon ϵ
{ ∣ a i − x i ∣ ≤ ϵ ∣ b i − y i ∣ ≤ ϵ \begin{cases} |a_i-x_i| \le \epsilon \\ |b_i-y_i| \le \epsilon \end{cases} {aixiϵbiyiϵ
或者

max ⁡ ( ∣ a i − x i ∣ , ∣ b i − y i ∣ ) ≤ ϵ \max{(|a_i-x_i|,|b_i-y_i|)}\le \epsilon max(aixi,biyi)ϵ

其次是网格平移模型,因为要研究的是网格平行对井的位置变化
设网格向右平移 x x x个单位,向上平移 y y y个单位;一个已知点 P i P_i Pi ( a i , b i ) (a_i,b_i) (ai,bi)
;网格平移后新点位置 P j ( a j , b j ) P_j(a_j,b_j) Pj(aj,bj)
{ a j = a i + x b j = b i + y \begin{cases} a_j = a_i+x \\ b_j = b_i + y \end{cases} {aj=ai+xbj=bi+y

综合上述模型和要可利用的旧井数尽可能大可得模型:

{ a n s = max ⁡ ∑ i ∈ N 1 ≤ i ≤ n f i max ⁡ ( ∣ a i + x − x i ∣ , ∣ b i + y − y i ∣ ) f i ≤ ϵ \begin{cases} ans = \max \sum_{\substack{i\in N\\1\le i\le n} }{fi} \\ \max{(|a_i+x-x_i|,|b_i + y-y_i|)f_i}\le \epsilon \end{cases} {ans=maxiN1infimax(ai+xxi,bi+yyi)fiϵ

现在还剩下一个问题某个网格结点 X i ( x i , y i ) X_i(x_i,y_i) Xi(xi,yi)是哪个网格点
这里问题就可以变成一个已知点 P j P_j Pj ( a j , b j ) (a_j,b_j) (aj,bj)求距离其最近的网格点 X j ( x j , y j ) X_j(x_j,y_j) Xj(xj,yj)
将一个小格子划分为四个区域观察规律可得
{ x j = ⌊ a j + 0.5 ⌋ y j = ⌊ b j + 0.5 ⌋ \begin{cases} x_j = \lfloor a_j+0.5 \rfloor \\ y_j = \lfloor b_j+0.5 \rfloor \end{cases} {xj=aj+0.5yj=bj+0.5

将这个式子带入我们的模型中可得
{ a n s = max ⁡ ∑ i ∈ N 1 ≤ i ≤ n f i max ⁡ ( ∣ a i + x − ⌊ a i + x + 0.5 ⌋ ∣ , ∣ b i + y − ⌊ b i + y + 0.5 ⌋ ∣ ) f i ≤ ϵ \begin{cases} ans = \max \sum_{\substack{i\in N\\1\le i\le n} }{fi} \\ \max{(|a_i+x-\lfloor a_i+x+0.5 \rfloor|,|b_i + y-\lfloor b_i+y+0.5 \rfloor|)f_i}\le \epsilon \end{cases} {ans=maxiN1infimax(ai+xai+x+0.5,bi+ybi+y+0.5)fiϵ

给出12口井的坐标, ϵ = 0.05 \epsilon = 0.05 ϵ=0.05 , 按照问题一的要求求解

按照问题一给的模型,进行调整
{ a n s = max ⁡ ∑ i ∈ N 1 ≤ i ≤ n f i max ⁡ ( ∣ x i + x − ⌊ x i + x + 0.5 ⌋ ∣ , ∣ y i + y − ⌊ y i + y + 0.5 ⌋ ∣ ) f i ≤ 0.05 \begin{cases} ans = \max \sum_{\substack{i\in N\\1\le i\le n} }{fi} \\ \max{(|x_i+x-\lfloor x_i+x+0.5 \rfloor|,|y_i + y-\lfloor y_i+y+0.5 \rfloor|)f_i}\le 0.05 \end{cases} {ans=maxiN1infimax(xi+xxi+x+0.5,yi+yyi+y+0.5)fi0.05

LINGO求解

sets:
	aa/1..12/:a,b,f;
endsets
data:
	a=0.50,1.41,3.00,3.37,3.40,4.72,4.72,5.43,7.57,8.38,8.98,9.50;
	b=2.00,3.50,1.50,3.51,5.50,2.00,6.24,4.10,2.01,4.50,3.41,0.80;
enddata
max = @sum(aa(i):f(i));
@for(aa(i):@bin(f(i)));
@for(aa(i):@smax(@abs(a(i)+x1-@floor(a(i)+x1+0.5)),@abs(b(i)+y1-@floor(b(i)+y1+0.5)))*f(i)<=0.05);
x1<1;
y1<1;

or
{ a n s = max ⁡ ∑ i ∈ N 1 ≤ i ≤ n f i ∣ x i + x − ⌊ x i + x + 0.5 ⌋ ∣ f i ≤ 0.05 ∣ y i + y − ⌊ y i + y + 0.5 ⌋ ∣ f i ≤ 0.05 \begin{cases} ans = \max \sum_{\substack{i\in N\\1\le i\le n} }{fi} \\ |x_i+x-\lfloor x_i+x+0.5 \rfloor|f_i\le 0.05\\|y_i + y-\lfloor y_i+y+0.5 \rfloor|f_i\le 0.05 \end{cases} ans=maxiN1infixi+xxi+x+0.5fi0.05yi+yyi+y+0.5fi0.05

sets:
	aa/1..12/:a,b,f;
endsets
data:
	a=0.50,1.41,3.00,3.37,3.40,4.72,4.72,5.43,7.57,8.38,8.98,9.50;
	b=2.00,3.50,1.50,3.51,5.50,2.00,6.24,4.10,2.01,4.50,3.41,0.80;
enddata
max = @sum(aa(i):f(i));
@for(aa(i):@bin(f(i)));
@for(aa(i):@abs(a(i)+x1-@floor(a(i)+x1+0.5))*f(i)<=0.05);
@for(aa(i):@abs(b(i)+y1-@floor(b(i)+y1+0.5))*f(i)<=0.05);
x1<1;
y1<1;

答案如下文章来源地址https://www.toymoban.com/news/detail-858586.html

  Objective value:                              4.000000
  Objective bound:                              4.000000

 						  F( 1)        0.000000           -1.000000
                          F( 2)        1.000000            0.000000
                          F( 3)        0.000000           -1.000000
                          F( 4)        1.000000           -1.000000
                          F( 5)        1.000000            0.000000
                          F( 6)        0.000000           -1.000000
                          F( 7)        0.000000           -1.000000
                          F( 8)        0.000000           -1.000000
                          F( 9)        0.000000           -1.000000
                         F( 10)        1.000000            0.000000
                         F( 11)        0.000000           -1.000000
                         F( 12)        0.000000           -1.000000

到了这里,关于【数学建模】钻井问题的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Lingo数学建模基础

    #not# 否定操作数的逻辑值,一元运算符 #eq# 若两运算数相等,则为 true, 否则为 false #ne# 若两运算数 不 相等,则为 true, 否则为 false #gt# 若左边运算数严格大于右边,则为 true, 否则为 false #ge# 若左边运算数大于或等于右边,则为 true, 否则为 false #lt# 若左边运算数严格小于右边

    2024年01月23日
    浏览(37)
  • 数学建模的LINGO基础

      LINGO是Linear Interactive and General Optimizer的缩写,即“交互式的线性和通用优化求解器”,由美国LINDO系统公司(Lindo System Inc.)推出的,可以用于求解非线性规划,也可以用于一些线性和非线性方程组的求解等。   下面介绍一下我从网上总结学习到的一些lingo知识:   内置函

    2024年02月21日
    浏览(30)
  • Lingo软件入门【数学建模】

    enddata 约束条件区域 end 其中,每一个lingo程序文件都以一个model:开头,以一个end结束,中间的三个区域不是强制要求的,但对于数模中大部分涉及到lingo的题目,基本上三个区域都会使用。 II.II 集合区域 II.II.i 一维集合的定义 集合模块以sets: 开头,endsets 结尾,这是固定的格

    2024年04月11日
    浏览(32)
  • 数学建模1:lingo软件求解优化模型

    本次数学建模学习笔记系列,以代码学习为主,附带建模及论文亮点记录 由于队友为两位经济学小伙伴,因此以大数据类型题目为主要学习方向 注:论文代码资料来源网络 1、结构清晰(后附该论文前两问的目录结构) 2、lingo求解优化模型,涉及函数循环与求和 3、表格很好

    2024年02月08日
    浏览(42)
  • 数学建模——线性规划篇(lingo软件实现)

    (线性规划)习题 1.某工厂利用两种原料甲、乙生产A1,A2,A3三种产品. 每月可供应的原料数量(单位:t)、每万件产品所需各种原料的数量及每万件产品的价格如下表所示: 原料 每万件产品所需原料/t 每月原料 供应量/t A1 A2 A3 甲 4 3 1 180 乙 2 6 3 200 价格/万元 12 5 4 试制定每

    2024年02月08日
    浏览(28)
  • Lingo软件入门【数学建模】,腾讯T2大牛亲自教你

    下面的代码演示了这部分的内容: sets: supply/1…2/: s; !集合一,s是集合变量 demand/1…3/: d; !集合二,d是集合变量 link(supply,demand): road, g; !二维集合,road和g是集合变量 endsets data: road = 10,5,6,4,8,12; d = 50,70,40; s = 60,100; enddata II.IV 约束条件区域(逻辑部分) 通过一个@for函数(和@

    2024年04月09日
    浏览(37)
  • 数学建模-python递归、lingo解多元一次方程

    在了解如何用python、lingo解多元一次方程问题之前我们先了解什么是递归,因为python解多元一次方程问题是递归算法的一个经典算法习题,也是python解多元一次方程问题用到的主要算法。 简单说程序调用自身的编程技巧叫递归。递归的思想是把一个大型复杂问题层层转化为一

    2024年01月25日
    浏览(37)
  • 2023年数学建模:旅行商问题:数学建模与MATLAB实现

    目录 引言 问题定义 解决策略 MATLAB实现 数学建模案例

    2024年02月11日
    浏览(32)
  • 【数学建模】基于Matlab模拟香烟过滤嘴问题

     ✅作者简介:热爱科研的Matlab仿真开发者,修心和技术同步精进,代码获取、论文复现及科研仿真合作可私信。 🍎个人主页:Matlab科研工作室 🍊个人信条:格物致知。 更多Matlab完整代码及仿真定制内容点击👇 智能优化算法       神经网络预测       雷达通信       无

    2024年03月26日
    浏览(36)
  • 【数学建模\MATLAB】掌握用Matlab求解微分方程问题

    d y d t = a y 2 cfrac{dy}{dt}=ay^2 d t d y ​ = a y 2 结果 d 3 y d t 3 = b y cfrac{d^3y}{dt^3}=by d t 3 d 3 y ​ = b y 结果 x 2 + y + ( x − 2 y ) y ′ = 0 x^2+y+(x-2y)yprime=0 x 2 + y + ( x − 2 y ) y ′ = 0 结果: d 2 y d t 2 = a y , 初 始 条 件 为 y ( 0 ) = 5 , y ′ ( 0 ) = 1 cfrac{d^2y}{dt^2}=ay, text初始条件为y(0)=5,yprime(

    2024年02月03日
    浏览(28)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包