根据计盒维数原理求一维曲线分形维数的matlab程序
function D=FractalDim(y,cellmax)
%求输入一维信号的计盒分形维数
%y是一维信号
if cellmaxlength(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);
ys_max=max(y_interp);
factory=cellmax/ys_max;
yy=abs(y_interp*factory);
for e=1:t
Ne=0;%累积覆盖信号的格子的总数
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和Mathematica、Maple并称为三大数学软件.它在数学类科技应用软件中在数值计算方面首屈一指.MATLAB可以进行矩阵运算、绘制函数和数据、实现算法、创建用户界面、连接其他编程语言的程序等,主要应用于工程计算、控制设计、信号处理与通讯、图像处理、信号检测、金融建模设计与分析等领域.
MATLAB的基本数据单位是矩阵,它的指令表达式与数学、工程中常用的形式十分相似,故用MATLAB来解算问题要比用C,FORTRAN等语言完成相同的事情简捷得多,并且MATLAB也吸收了像Maple等软件的优点,使MATLAB成为一个强大的数学软件.在新的版本中也加入了对C,FORTRAN,C++,JAVA的支持.
多重分形理论是目前研究十分活跃的一门新兴学科.如果说分形理论研究具有自相似性的不规则几何问题的话,那么多重分形将主要运用于定义几何体上(包括分形几何体)具有自相似或统计自相似性的某种度量或者场,比如岩石中微量元素的含量,某一区内测量的地球物理场,或者单位面积内的矿产地分布密度等.通过这种测量可将其所定义的几何体(或二维面积)分成一系列空间镶嵌的具不同特点的子几何体(或子面积),每种这样的子几何体(或子面积)会构成一种分形,而且具有其自身的分形维数.这种分形的总体将对应一种所谓分形维数谱函数.自然界中许多物理及化学过程会产生多维分形结果,比如在地球化学中具有广泛应用前景的Mulplicative Cascade过程、Diffussion limited aggregatio(DLA)、Turbu-lence、Brownian过程等.这些过程的共同特点是其所产生的结果既具有确定性又具随机性.通过多维分形的研究使数学、物理和化学中许多具有随机和确定双重性质以及奇异性的疑难问题得到了解答.这些成果必将对地质包括地球化学的各个领域产生重要影响.
①计算方法
以一网格覆盖采样区域,记采样空间坐标(x,y)的最小、最大值分别为xmin,xmax,ymin和ymax,则x和y方向的网格数nx和ny应满足:
危机矿山深部隐伏矿大比例尺定位定量预测技术研究
ci值按下式确定:
式中:Cmin为最小平均含量;Cmax最大平均含量;+为校正系数.ns为计算累计频率的分组数因元素不同而取值不一.使得ci在对数坐标下为等距,否则容易导致数据点在低含量区过稀而在高含量区过密,影响对其分布模式的总体认识.
就是一种测量距离空间(X, d)(特别是豪斯多夫空间)比如欧氏空间 Rn 中分形维数的计算方法
假设你的二值图像变量为"bw",则数值为"1"的像素个数(设变量"numVal_1")是:
numVal_1 = sum(sum(bw));
连用两次sum是将图像中数值的行和列分别加在一起,就可求出像素为1的总数.
要求数值为"0"的像素数(设变量"numVal_0")可以这样:
numVal_0 = length(find(bw==0));
其中"find(bw==0)"输出所有bw为0的像素序号,"length"函数求序号的长度,也就是所求的数值为"0"的像素个数;
比例:
numVal_1/(numVal_1+numVal_0)
或者:
clear?
close?all
%%%%%%%%%%%%%%%%%%%%%%%%%生成实验数据集
rand('state',0)
u1=[0,0];
m1=100;
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%sm1数据集
Y1=multivrandn(u1,m1,sigma_matrix1);
hold?on
title('SM1数据集')
u11=[0,0];
function?Y?=?multivrandn(u,m,sigma_matrix)
%%生成指定均值和协方差矩阵的高斯数据
n=length(u);
c?=?chol(sigma_matrix);
X=randn(m,n);
Y=X*c+ones(m,1)*u;
以上就是土嘎嘎小编为大家整理的分形维数python函数相关主题介绍,如果您觉得小编更新的文章只要能对粉丝们有用,就是我们最大的鼓励和动力,不要忘记讲本站分享给您身边的朋友哦!!