分维数的定义与计算

分维数的定义与计算,第1张

分形(B.B.Mandelbrot,1982)是其组成部分以某种方式与整体相似的形(A fractal is a shape made of parts similar to the whole in some way).它是以分维数、自相似性、统计自相似性和幂函数等为工具,研究不具有特征标度,极不规则和高度分割但具有自相似性的复杂现象(如地形起伏、云朵、水系、树的形态等),定量描述这种自相似性的参数称为“分维数”或简称“分维”,记为D,它可以是分数.

维数是一定时空的数值特征.普遍应用维数观,正是现代非线性科学获得的共识.低维与高维、有限维与无限维、整数维与分数维的转化,在探索复杂世界的物质机制中已充分显示了它的威力.

1919年数学家豪斯道夫引入豪斯道夫维.他提出连续空间的概念,也就是空间维数不是跃变的,而是连续变化的,即可以是整数,也可以是分数,通过具体计算来确定维,该维数称为豪斯道夫维,记为Df.例如,对于三维图形,考虑一个棱长为单位长度的立方体,若令每个棱边长度放大两倍,则立方体体积放大8倍,其表达式为23=8.例如,对于一个Df维的几何对象,若每个棱边长度都放大L倍,则这个几何对象相应地放大K倍,其Df、L和K三者关系应为.该式两边取对数后,则Df=lnK/lnL.对具有奇异构形的分形,这里Df一般是分数.豪斯道夫维数衍生的各种分形维数,如容量维、信息维、关联维、质量维、空隙维、相似维等等,可以从不同侧面描述客观世界的复杂现象.它们的一个共性,就是在双对数坐标系的尺度变换下,严格地或统计地保持不变.

在测量分维时,有一规律(通常称为zero-sets)是有用的.传统的欧氏几何体与一平面相交,形成图形的维数要减少一维;三维球变成二维圆;二维平面变成一维线;一维线变成零维点.分形和传统的欧氏几何体一样,统计分形体的分维是D,在与其相交的平面上进行测量,分维是D-1,在与其相交的直线上测量,分维是D-2.它们与平面相交构成的图形要减少一维;它们与直线相交形成的点集要减少二维.

不同的分维数往往刻画不同的物理类型,划分不同成因,不同性质的群体.如某些相变的发生只有在二维及以上的空间中才会出现,在一维的情况下就不行.因此,在研究某一类事物的规律时,往往需要借助于分维数的差异来帮助判别和分析.例如,将具有不同面积的平面图形放到一维坐标系中,其测度(长度)都是无穷大;放到三维空间,其测度(长度)都是无穷小;只有在二维坐标系中,它们在面积方面的差异才能显现出来.另一方面,由点到线,由线到面和由面到体,随着维数的增加,它们所刻划的客体复杂程度也相应增加,且其占领空间的能力也随之增强.因此,维数的差异直观地反映了客体复杂程度的差异.

分形的定义:设集合A∈En(En是n维欧氏空间)的豪斯道夫维为Df和拓扑维为Dt,如果公式Df≥Dt成立,则称集合A是分形集(或分形)(A fractal is by definition a set for which the Hausdorff Besicovitch dimension exceeds the topological dimension).

例如康托尔集合,Df=ln2/ln3≈0.6301,而Dt=0,有Df>Dt,故康托尔集合是一种分形.又如科曲折线,Df=ln4/ln3≈1.2618,而Dt=1,有Df>Dt,故科曲折线也是一种分形.

由于研究的具体对象(分形)不同,其分维数计算的具体形式和名称也有多种.最常见的分维数有相似维(similarity dimension)或容量维(capacity dimension)D0、信息维(information dimension)D1、关联维(correlation dimension)D2和广义维(generalized dimension)Dq.

1.相似维(similarity dimension)或容量维(capacity dimension)D0

在测量地质体边界的长度时,设测量尺度为r,覆盖整个边界的最少次数为N(r),此时将容量维数定义为:

分形混沌与矿产预测

将这一定义推广到n维空间En(En为n维Euclide空间)中,上式中的r为覆盖En中图形所需的立方体的边长或球体的直径,N(r)为所需的立方体或球体的最少数目.可以证明D0=Df(豪斯道夫维数).

2.信息维(information dimension)D1

容量维数D0只考虑了覆盖图形所需的立方体或球体的数目与其边长或直径的关系.对于那些非确定性的事物,一般是用概率的形式表示出来的,为此引入信息维数的定义:

分形混沌与矿产预测

式中Pi是覆盖概率,当用边长为r的小盒子去覆盖分形结构时,Pi是分形结构中某些点落入小盒子的概率.如果Pi=1/N(r)时,则有D1=Df.

3.关联维(correlation dimension)D2

P.Grassberger和J.Procaccia(1983)应用关联函数C(r)给出了关联维数的定义:

分形混沌与矿产预测

式中是相空间中两点之间距离小于r的概率,|Xi-Xj|为两点距离间的向量距离,r为指定的距离上限,,它是 Heavisideh函数.

4.广义维(generalized dimension)Dq

分形混沌与矿产预测

式中Pi是覆盖概率,当用边长为r的小盒子去覆盖分形结构时,Pi是分形结构中某些点落入小盒子的概率.当q取不同值时,Dq表示不同分维,如Dq=0=D0,Dq=1=D1,Dq=2=D2.应当注意上述分维数之间的关系只是形式上(或定义上)的,但在实际问题计算中,上述关系不一定成立.

5.分维Brown函数

严格的自相似性在自然界并不多见,为了描述大量自然形状,需要用统计自相似性的概念来推广分维的定义,这就要用到分维Brown函数.

设x∈En(En为n维Euclide空间),f(x)是关于点x的随机实值函数,若存在常数H(0<H<1)使得函数:

分形混沌与矿产预测

是一个与x,Δx无关的分布函数,则称f(x)为分维Brown函数,其分维值为:DB=n+1-H.

根据计盒维数原理求一维曲线分形维数的matlab程序

function D=FractalDim(y,cellmax)

%求输入一维信号的计盒分形维数

%y是一维信号

%cellmax:方格子的最大边长,可以取2的偶数次幂次(1,2,4,8...),取大于数据长度的偶数 %D是y的计盒维数(一般情况下D>=1),D=lim(log(N(e))/log(k/e)),

if cellmax<length(y)

error('cellmax must be larger than input signal!')

end

L=length(y)%输入样点的个数

y_min=min(y)

%移位 *** 作,将y_min移到坐标0点

y_shift=y-y_min

%重采样,使总点数等于cellmax+1

x_ord=[0:L-1]./(L-1)

xx_ord=[0:cellmax]./(cellmax)

y_interp=interp1(x_ord,y_shift,xx_ord)

%按比例缩放y,使最大值为2^^c

ys_max=max(y_interp)

factory=cellmax/ys_max

yy=abs(y_interp*factory)

t=log2(cellmax)+1%叠代次数

for e=1:t

Ne=0%累积覆盖信号的格子的总数

cellsize=2^(e-1)%每次的格子大小

NumSeg(e)=cellmax/cellsize%横轴划分成的段数

for j=1:NumSeg(e) %由横轴第一个段起通过计算纵轴跨越的格子数累积N(e) begin=cellsize*(j-1)+1%每一段的起始

tail=cellsize*j+1

seg=[begin:tail]%段坐标

yy_max=max(yy(seg))

yy_min=min(yy(seg))

up=ceil(yy_max/cellsize)

down=floor(yy_min/cellsize)

Ns=up-down% 本段曲线占有的格子数

Ne=Ne+Ns%累加每一段覆盖曲线的格子数

MATLAB是美国MathWorks公司出品的商业数学软件,用于算法开发、数据可视化、数据分析以及数值计算的高级技术计算语言和交互式环境,主要包括MATLAB和Simulink两大部分。

MATLAB是matrix&laboratory两个词的组合,意为矩阵工厂(矩阵实验室)。是由美国mathworks公司发布的主要面对科学计算、可视化以及交互式程序设计的高科技计算环境。它将数值分析、矩阵计算、科学数据可视化以及非线性动态系统的建模和仿真等诸多强大功能集成在一个易于使用的视窗环境中,为科学研究、工程设计以及必须进行有效数值计算的众多科学领域提供了一种全面的解决方案,并在很大程度上摆脱了传统非交互式程序设计语言(如C、Fortran)的编辑模式,代表了当今国际科学计算软件的先进水平。

MATLAB和Mathematica、Maple并称为三大数学软件。它在数学类科技应用软件中在数值计算方面首屈一指。MATLAB可以进行矩阵运算、绘制函数和数据、实现算法、创建用户界面、连接其他编程语言的程序等,主要应用于工程计算、控制设计、信号处理与通讯、图像处理、信号检测、金融建模设计与分析等领域。

MATLAB的基本数据单位是矩阵,它的指令表达式与数学、工程中常用的形式十分相似,故用MATLAB来解算问题要比用C,FORTRAN等语言完成相同的事情简捷得多,并且MATLAB也吸收了像Maple等软件的优点,使MATLAB成为一个强大的数学软件。在新的版本中也加入了对C,FORTRAN,C++,JAVA的支持。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/8102920.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-13
下一篇 2023-04-13

发表评论

登录后才能评论

评论列表(0条)

保存