1、数模论文 旧井的有效利用2012高教社杯全国大学生数学建模竞赛承 诺 书我们仔细阅读了中国大学生数学建模竞赛的竞赛规则.我们完全明白,在竞赛开始后参赛队员不能以任何方式(包括电话、电子邮件、网上咨询等)与队外的任何人(包括指导教师)研究、讨论与赛题有关的问题。我们知道,抄袭别人的成果是违反竞赛规则的, 如果引用别人的成果或其他公开的资料(包括网上查到的资料),必须按照规定的参考文献的表述方式在正文引用处和参考文献中明确列出。我们郑重承诺,严格遵守竞赛规则,以保证竞赛的公正、公平性。如有违反竞赛规则的行为,我们将受到严肃处理。我们参赛选择的题号是(从A/B/C/D中选择一项填写): B 我们的参
2、赛报名号为(如果赛区设置报名号的话): 所属学校(请填写完整的全名): 南方医科大会 参赛队员 (打印并签名) :1. 王沛沛 2. 姚慧 3. 麦金玲 指导教师或指导教师组负责人 (打印并签名): 李彬 日期: 2012年 8 月 15 日赛区评阅编号(由赛区组委会评阅前进行编号):2012高教社杯全国大学生数学建模竞赛编 号 专 用 页赛区评阅编号(由赛区组委会评阅前进行编号):赛区评阅记录(可供赛区评阅时使用):评阅人评分备注全国统一编号(由赛区组委会送交全国前编号):全国评阅编号(由全国组委会评阅前进行编号): 钻井布局的最优策略 摘 要 本文对探勘部门找矿建立了钻井布局的优化模型,充
3、分利用了旧井资源,有力的节省了钻井费用。 对于问题一,我们用了平行移动原理把十二个旧井点平移到同一个单位正方形内,而那些点相对于正方形结点的距离不变,这样问题就得到了大大的简化。为了实现平移,我们把旧井坐标去除整数部分,通过matlab软件编程实现寻求最多可利用旧井资源数为4。 对于问题二,我们假设网格的一个结点与任意某个旧井点重合,并以此旧井点为中心,以任意方向建立网格并使网格旋转,每旋转6度检查每一个旧井是否可被利用,再设其它11个旧井点重复上述判断就可找出可利用旧井数最多的网格即为所求,其结果为6。 对于问题三,我们采用了问题二一样的思想,为了将n口旧井都利用上,我们合理确定了网格的长度
4、和误差范围。此次我们以n口井中的任意一口为中心旋转,判断n口井是否可被利用。关键词:平移 旋转 网格一、问题重述探部门在某地区找矿。初步勘探时期已零散地在若干位置上钻井,取得了地质资料。进入系统勘探时期后,要在一个区域内按纵横等距的网格点来布置井位,进行“撒网式”全面钻探。由于钻一口井的费用很高,如果新设计的井位与原有井位重合(或相当接近),便可利用旧井的地质资料,不必打这口新井。因此,应该尽量利用旧井,少打新井,以节约钻探费用。比如钻一口新井的费用为500万元,利用旧井资料的 费用为10万元,则利用一口旧井就节约费用490万元。 设平面上有n个点Pi,其坐标为(ai,bi),i=1,2,n,
5、表示已有的n个井位。新布置的井位是一个正方形网格N的所有结点(所谓“正方形网格”是指每个格子都是正方形的网格;结点是指纵线和横线的交叉点)。假定每个格子的边长(井位的纵横间距)都是1单位(比如100米)。整个网格是可以在平面上任意移动的。若一个已知点Pi与某个网格结点Xi的距离不超过给定误差(=0.05单位),则认为Pi处的旧井资料可以利用,不必在结点Xi处打新井。 为进行辅助决策,勘探部门要求我们研究如下问题: 1)假定网格的横向和纵向是固定的(比如东西向和南北向),并规定两点间的距离为其横向距离(横坐标之差绝对值)及纵向距离(纵坐标之差绝对值)的最大值。在平面上平行移动网格N,使可利用的旧
6、井数尽可能大。试提供数值计算方法,并对下面的数值例子用计算机进行计算。 2)在欧氏距离的误差意义下,考虑网格的横向和纵向不固定(可以旋转)的情形,给出算法及计算结果。 3)如果有n口旧井,给出判定这些井均可利用的条件和算法(你可以任意选定一种距离)。数值例子n=12个点的坐标如下表所示: I123456789101112ai0.501.413.003.373.404.724.725.437.578.388.989.50bi2.003.501.503.515.502.006.244.102.014.503.410.802、问题分析为了节约钻探费用,就应该根据旧井的位置数据,尽可能多的利用旧井。所
7、利用的旧井数越多,模型越好。针对第一问,12个旧井的位置分布在正方形网格N的不同格子里,这样网格N移动的时候,我们要考虑所有的结点,这样显然太过复杂,所以我们想办法把12个旧井移动到同一个格子,这样的话,我们在同一个格子内就比较容易找出网格结点的距离不超过给定误差(=0.05单位)的旧井。针对第二问,利用第一问模型 2 的思想。假定网格的一个结点与任意某个旧井点重 合,以此旧井点为中心,以任意方向建立网格并使网格旋转,每旋转0.1度检查每一个旧井 ,这样即可算出最佳旋转角度和移动距离。针对问题三,我们采用了问题二一样的思想,为了将n口旧井都利用上,我们合理确定了网格的长度和误差范围。此次我们以
8、n口井中的任意一口为中心旋转,判断n口井是否可被利用。3、模型的基本假设(1)勘探地形对计算无影响。(2)网格充分大。(3)旧井都在勘探范围内。4、符号说明表示平面上的第个旧井位表示变换后的第个旧井位表示第个网格结点表示所确定的新井的位置表示可以利用的旧井位的个数表示第个旧井的坐标位置5、模型的建立与求解1. 为了节约钻探费用,就应该尽量利用旧井的数据,使可利用的旧井数尽可能多,题设条件给定单位长的网格且给定误差,这样我们就要确定网格的位置,使网格结点Xi 在旧井点的误差范围内的个数尽可能多。即满足: 公式 1的尽可能多。我们只要确定一个网格的结点既可确定该网格。模型 1:对于任意一个旧井位来
9、说,不论网格如何建立,它都将在某一个单位长的正方形网格中,将 12 个井位的坐标所有整数位变为 0,如相当于将这 12 个旧井位平行移动到同一个单位正方形 L 中,而保持旧井位与包含它的网格的四个结点的相对位置不变。图表 1根据题设定义的距离,网格结点周围以网格结点为中心,以 2E 为边长的正方形中的旧井位的数据是可利用的。故用边长为 2的小正方形 M 在 L 内作平行移动。检查在小正方形方格 M 内旧井点的个数是多少。其中包含旧井位数最多的小正方形 M 的中心即为所求的网格的一个结点。此时 M 所包含的旧井数就是我们可利用的旧井的最大个数。matlab编程完成用上述过程其结果是:可利用最多井
10、数 m=4,分别为(1.41,3.50),(3.37,3.51),(3.40,5.50), (8.38,4.50)。图一给出新井位的一种布局。为了证实我们将问题简化的这种理论是切实可行的(即把 12 个旧井位放到一个边长为 1 的单位正方形 L 内来考察)。又设计了穷举法。假设取定的坐标为(0,0)建立网格 N,使网格 N 以步长 2移动,横向每移动 0.1 时,纵向也以 0.1 为单位移动,经过 100 次移动,每次都用(1)考察旧井点是否可以利用,找出可以利用的旧井的个数最多的网格即为所求。此方法用matlab编程实现其结果与上述的结果是一致的,从而证实了我们的做法是正确的。模型 2:显然
11、我们要确定的网格最少有一个旧井的数据可被利用设为 P1,假设网格的某个结点Zi 在此旧井 P1 的误差范围内,再判断其它旧井的数据是否可以被利用。为简化模型,我们可以把网格的结点就固定在旧井位 P1 上,把它的可利用范围累加到其它的旧井位上,计算其它旧井位与网格结点的距离。当满足 公式 2时该井位可被利用。最多的网格结点的位置即为所求。此方法用 matlab编程实现其结果与模型一的结果是一致的。 利用问题(1)模型 2 的思想。假定网格的一个结点与任意某个旧井点重合,以此旧井点为中心,以任意方向建立网格并使网格旋转,每旋转 0.1度检查每一个旧井点是否可被利用,(旧井点与网格的距离是否在误差范
12、围内)。即 公式 3再对设其它 11 个旧井点重复上述判断找出可利用旧井数据最多的网格即为所求,其结果为可利用最多旧井 m=8,完成这一布局的步骤见附录。图给出此时新井位的一种布局。这一方法用matlab编程完成。同样为了进一步证实我们所采用的这种简化是合理的、结果是正确的。仍然采用穷举法验证。以F 的结点 Yi 为中心旋转 N,检查每一旧井点是否可被利用。找出可被利用旧井点数最多的中心位置和旋转角度。他们所确定的网格即为所求。其结果与上述结果一致。2. 设平面上有 n 口旧井:新井位是正方形网格R的所有结点,假定每个格子的边长为 1 单位,整个网格是可以在平面 上任意移动的。在欧氏距离的误差
13、意义下,若已知某旧井与某个网格结点的距离不超过误差则该旧井可利用。 分析:新井位不可太密,这样钻探费用太高,要将n口旧井都利用上,必须合理确定网格R的边长和误差此时我们仍取0.05单位。 1) 取网格R的边长 公式 4采用问题(2)用样的方法(但此时只要以n口井中的任意一口为中心旋转即可,而不必以 n口井的每一口为中心旋转 n 次)可判断 n 口井是否都可利用,若都可利用,则问题(3) 得以解决,否则2) 取网格R的边长 公式 5重复上述做法,判断出此是n 口井是否都可利用,否则继续: 3) 取 公式 6 公式 7直到 n 个井全都可利用。因为 d1是有限数。故有限步即可达此目的。六、模型的评
14、价参考文献1 吕显瑞等,数学建模竞赛辅导教材,长春:吉林大学出版社,2002。2 刘来福,曾文艺,数学模型与数学建模 北京:北京师范大学出版社,1997。3 陈如栋,于延荣,数学模型与数学建模,北京:国防工业出版社,2006。4 姜启源,谢金星,叶俊,数学模型(第三版),北京:高等教育出版社,2003。5 梁炼,数学建模。华东理工大学大学出版社 2005.3。6 周义仓,赫孝良,西安交通大学出版社,1998.8。7 邓俊辉9 熊慧,论人口预。附录读入数据的程序:function importfile(fileToRead1)%IMPORTFILE(FILETOREAD1)% Imports d
15、ata from the specified file% FILETOREAD1: file to read% Auto-generated by MATLAB on 15-Aug-2012 14:33:45% Import the filesheetName=Sheet1;numbers, strings = xlsread(fileToRead1, sheetName);if isempty(numbers) newData1.data = numbers;endif isempty(strings) newData1.textdata = strings;endif isempty(st
16、rings) & isempty(numbers) strRows, strCols = size(strings); numRows, = size(numbers); % Break the data up into a new structure with one field per row. if strCols = 1 & strRows = numRows newData1.rowheaders = strings(:,end); endend% Create new variables in the base workspace from those fields.vars =
17、fieldnames(newData1);for i = 1:length(vars) assignin(base, varsi, newData1.(varsi);end第一问求最大可利用旧井的个数及网格移动的方向和步数:function f,site,a,b,c,d=arte_well(ai,bi)% 这个程序输入旧钻井的横纵坐标ai,bi;% 输出site为1代表 以(0,0)为起点移动;%为2代表以(1,1)为起点移动;%为3代表以(0,1)为起点移动;%为4代表以(1,0)为起点移动;% Copyright:姚慧;% Data:2012/8/15;len=length(ai);% S
18、1:先将这些表示旧钻井的位置的点集中到以(0,0),(0,1),(1,0),(1,1)四点% 为交叉点的正方形内;for num=1:len ai(num)=ai(num)-floor(ai(num); bi(num)=bi(num)-floor(bi(num);end% 每一次移动0.01;f=zeros(4,1);% =% 以(0,0)为起点移动;firstn=zeros(201,201);for numa=0:99 for numb=0:99 for num=1:len if max(abs(ai(num)-numa*0.01),abs(bi(num)-numb*0.01)0.05 fi
19、rstn(numa+1,numb+1)=firstn(numa+1,numb+1)+1; end end endendf(1)=max(max(firstn);leng=length(find(firstn=f(1);a=zeros(leng,2);a(:,1),a(:,2)=find(firstn=f(1);% =% 以(1,1)为起点移动;firstn=zeros(201,201);for numa=0:99 for numb=0:99 for num=1:len if max(abs(1-ai(num)-numa*0.01),abs(1-bi(num)-numb*0.01)0.05 fi
20、rstn(numa+1,numb+1)=firstn(numa+1,numb+1)+1; end end endendf(2)=max(max(firstn);leng=length(find(firstn=f(2);b=zeros(leng,2);b(:,1),b(:,2)=find(firstn=f(2);% =% 以(0,1)为起点移动;firstn=zeros(201,201);for numa=0:99 for numb=0:99 for num=1:len if max(abs(1-ai(num)-numa*0.01),abs(bi(num)-numb*0.01)0.05 firs
21、tn(numa+1,numb+1)=firstn(numa+1,numb+1)+1; end end endendf(3)=max(max(firstn);leng=length(find(firstn=f(3);c=zeros(leng,2);c(:,1),c(:,2)=find(firstn=f(3);% =% 以(1,0)为起点移动;firstn=zeros(201,201);for numa=0:99 for numb=0:99 for num=1:len if max(abs(ai(num)-numa*0.01),abs(1-bi(num)-numb*0.01)1 f=f(1); e
22、nd max_f=max_f,f; end max_max_f=max(max_f); if length(max_max_f)1 max_max_f=max_max_f(1); end fmax=fmax,max_max_f;endffmax=max(fmax);if length(fmax)1 ffmax=ffmax(1);end问题2结果:11第11井0.2094旋转弧度1234BCD1043854110598510428642105986114386411160861141874211588711428743115987124387411260871244874212618712418
23、84312588813428840135988134388411360881344884213618813408943135889134189441359891442894114608914438942146189144489431462891441904414599015429041156090154390421561901541914315599115429144156091164391421661911641924316609217429243176192110.31421234ABCD5722438245195882582244824220598259224582432060825723428344205783582343834520588344834321598345834421608342844521578443844322588444844422598445844
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1