我的煤炭网

我的煤炭网>新闻>综合信息>选矿知识>地球化学场分形维数的计算方法及其函数实现

地球化学场分形维数的计算方法及其函数实现

地球化学场分形维数的计算方法及其函数实现 地球化学场分维的计算方法及其C++功能实现

地球化学场分维的计算方法及其C++函数实现*利用c++函数对地球化学场数据进行分维测量的方法龚庆杰1,三向输运四川2,张荣华3,韩东育1(1,中国地质大学地质与资源学院,北京100083;2.中国地质调查局发展研究中心,北京100083;3.中国地质科学院矿产资源研究所,北京100037)龚清杰1,3,向云川2,张3,1(中国地质大学地球科学与资源学院,北京100083;2中国地质调查局发展研究中心,北京100083;3中国地质科学院矿产资源研究所,北京100037

摘要地球化学场数据通常具有分形特征。本文利用C++函数,用数盒法计算空之间地球化学场剖面曲线和曲面的分维,并改进三棱柱法计算空之间曲面的分维。将上述计算方法应用于实际地球化学场的剖面曲线和空之间表面分维的计算。结果表明,地球化学场数据具有良好的分形分布规律,在计算地球化学场空之间的分维时,盒维数通常小于三棱柱维数。地球化学场分形盒维三棱柱维地球化学场中观测到的地球化学变量通常具有随机变量、确定性变量和区域变量结构的特征。分形几何是描述空之间不规则形状的有效工具,分形维数可以表示空之间不规则形状的确定性。因此,可以用分形来描述区域地球化学变量,从而揭示其局部随机性和整体确定性。分形已在一定程度上应用于地球化学场的研究(余崇文,2001;龚清杰等,2001;石俊发,2000)。如不同分形实体的形成机制可有效区分地球化学场的背景和异常,分形无标度区间的分布规律可确定合理的地球化学样品采集密度,地球化学场数据的分形特征可用于分形插值方法模拟天然地球化学场的分布特征(盛等,2000;李长江等,1999;Allegre等人,1995年;陈等,1995,1994).因此,地球化学场的分形研究对矿产资源的勘查、评价和预测具有重要的指导作用。目前,计算地球化学场分维的方法主要有规范法、数盒法、周长面积法、内容面积法、内容距离法、三棱柱法、变差函数法和关联维数法。本文用C++函数实现了计算分形维数的相对简单的数盒法,可供广大地球化学家参考,促进分形理论在地球化学研究中的应用。1.用空概念研究地球化学场剖面曲线盒维数的计算方法,一维地球化学剖面曲线空和二维地球化学曲面空最常用。地球化学场剖面曲线通常是一条不规则曲线,如图1所示。分形研究表明,不规则曲线的长度与观测尺度有关。观测尺度越小,测量长度越大,即具有分形特征。为了测量轮廓曲线的分形维数,计盒法的思想可以表述为:首先将嵌入轮廓曲线的平面空分成有一个边长的盒,统计曲线所占的盒数Na,则曲线的长度la可以近似表示为:La = Naa;然后将盒子的边长改为B,统计曲线Nb所占的盒子数,得到曲线的长度LB;所以改变盒子的边长,计算一下。如果盒子的边长为R,得到的果实满足以下关系:Lr= Nrr∝r1-D其中D是轮廓曲线的分形维数。如果对上述公式两边取对数,则有:lgNr=-Dlg(r)+C(常数),则上述剖面曲线得到的盒数和采用的盒大小在双对数坐标中呈线性分布,由拟合直线的斜率即可得到剖面曲线的分维值(D=-slope)。以上计算分形维数的思路可以用C++函数实现,其代码可以参考空之间曲面的盒维数计算方法。*国家重点基础研究发展计划(编号:G1999043215中国地质调查局项目(编号:200010200172)资助第一作者简介龚清杰,男,1972年出生,博士,讲师,主要从事地球化学教学与研究。[下一个]

图1湖南某地钨含量剖面曲线2。空之间曲面的盒维数计算方法在区域地球化学填图研究中,元素含量通常可以表示为地球化学场空之间的曲面,如图2所示。用数盒法计算曲面分形维数的思路是:首先将曲面中嵌入的三维空分成边长为3的盒,统计曲面Na所占的盒数,则曲面的面积Aa可近似表示为:Aa = Naa2;然后将盒子的边长改为B,统计曲面Nb所占的盒子数,得到曲面的面积AB;诸如此类。如果盒子的边长为R,得到的结果满足以下关系:AR = NR R2∝(R2)2–其中D是曲面的分形维数。上面两边的对数是lgA = lg (Nrr2) = (2-D)lg (r2)+C(常数)lg (Nr) = (1-D)lg (r2)+C(常数)那么从上述曲面得到的盒子数或面积和所用的盒子面积将在双对数坐标中呈线性分布,曲面的分维值(D)可以从拟合直线的斜率得到。



图2 湖南某地钴含量空间曲面

上述计算分维的思路可采用 C++函数来实现,其代码如下所示:
// Function Begin
// 输入参数:
// Data[]:网格化面积数据,其格式为按行或
// 列顺序存放,不含坐标数据;
// nColumn:表示网格化面积数据的列数;
// nRow:表示网格化面积数据的行数;
// 输出参数:
// r[]:存储所采用的盒子的面积;
// Nr[]:存储盒子边长为r时所需的盒子数;
// nPoints: 选取不同盒子边长值的个数。
void AreaDataBoxFractalDimension
(double Data[], int nColumn, int nRow,
double Nr[], double r[], int& nPoints)
{ // 将数据按给定的行与列存放
// 最多处理数据的能力
double data[100][100];
int i(0);
for(int j=0;j 

免责声明:本网部分内容来自互联网媒体、机构或其他网站的信息转载以及网友自行发布,并不意味着赞同其观点或证实其内容的真实性。本网所有信息仅供参考,不做交易和服务的根据。本网内容如有侵权或其它问题请及时告之,本网将及时修改或删除。凡以任何方式登录本网站或直接、间接使用本网站资料者,视为自愿接受本网站声明的约束。

下一篇:刍议矿工个性性格与煤矿安全教育

上一篇:安全生产教育内容