第7章 分形维数应用与MATLAB实现

合集下载

如何利用Matlab技术进行多维数组操作

如何利用Matlab技术进行多维数组操作

如何利用Matlab技术进行多维数组操作Matlab技术是一种强大的工具,可以用于处理和分析多维数组。

在科学和工程领域,多维数组是一种重要的数据结构,可以用于存储和处理各种类型的数据,例如图像、信号、矩阵等。

一、什么是多维数组多维数组是将数据组织成多个维度的数据结构。

在Matlab中,多维数组可以是二维、三维或更高维的。

例如,一幅图像可以表示为一个二维数组,其中每个元素代表一个像素的亮度值。

在Matlab中,可以使用矩阵操作来处理和修改图像的像素值。

二、创建多维数组在Matlab中,可以使用多种方式创建多维数组。

最简单的方法是使用赋值语句。

例如,可以使用以下语句创建一个3x3的矩阵:A = [1 2 3; 4 5 6; 7 8 9];这个语句创建了一个3x3的矩阵A,并给每个元素赋予了相应的值。

除了赋值语句外,还可以使用内置函数来创建多维数组。

例如,可以使用以下语句创建一个3x3的单位矩阵:B = eye(3);这个语句使用了Matlab中的内置函数"eye"来创建一个3x3的单位矩阵B。

三、访问和修改多维数组一旦创建了多维数组,就可以使用索引操作符来访问和修改数组中的元素。

在Matlab中,数组的索引从1开始。

例如,可以使用以下语句访问矩阵A的第一个元素:A(1,1);这个语句返回了矩阵A第一行第一列的元素。

可以使用相同的方法修改数组中的元素的值。

例如,可以使用以下语句将矩阵A的第二行第二列的元素设置为10:A(2,2) = 10;四、多维数组的运算Matlab提供了丰富的函数和运算符来进行多维数组的操作。

以下是一些常用的操作:1. 矩阵加法和减法:可以使用"+"和"-"运算符来对两个矩阵进行逐元素的加法和减法。

例如,可以使用以下语句计算两个矩阵的和:C = A + B;这个语句将矩阵A和B的对应元素相加,结果存储在矩阵C中。

2. 矩阵乘法:可以使用"*"运算符来进行矩阵乘法。

Matlab实验报告:分形迭代

Matlab实验报告:分形迭代

数学实验报告:分形迭代练习11.实验目的:绘制分形图案并分析其特点。

2.实验内容:绘制Koch曲线、Sierpinski三角形和树木花草图形,观察这些图形的局部和原来分形图形的关系。

3.实验思路:利用函数反复调用自己来模拟分形构造时的迭代过程,当迭代指标n为0时运行作图操作,否则继续迭代。

4.实验步骤:(1)Koch曲线function koch(p,q,n) % p、q分别为koch曲线的始末复坐标,n为迭代次数if (n==0)plot([real(p);real(q)],[imag(p);imag(q)]);hold on;axis equalelsea=(2*p+q)/3; % 求出从p 到q 的1/3 处端点ab=(p+2*q)/3; % 求出从p 到q 的2/3 处端点bc=a+(b-a)*exp(pi*i/3);%koch(p, a, n-1); % 对pa 线段做下一回合koch(a, c, n-1); % 对ac 线段做下一回合koch(c, b, n-1); % 对cb 线段做下一回合koch(b, q, n-1); % 对bq 线段做下一回合end(2)Sierpinski三角形function sierpinski(a,b,c,n) % a、b、c为三角形顶点,n为迭代次数if (n==0)fill([real(a) real(b) real(c)],[imag(a) imag(b) imag(c)],'b');% 填充三角形abchold on;axis equalelsea1=(b+c)/2;b1=(a+c)/2;c1=(a+b)/2;sierpinski(a,b1,c1,n-1);sierpinski(a1,b,c1,n-1);sierpinski(a1,b1,c,n-1);end(3)树木花草function grasstree(p,q,n) % p、q分别为树木花草始末复坐标,n为迭代次数plot([real(p);real(q)],[imag(p);imag(q)]);hold on;axis equalif(n>0)a=(2*p+q)/3;b=(p+2*q)/3;c=a+(b-a)*exp(pi*i/6);%d=b+(q-b)*exp(-pi*i/6);%grasstree(a,c,n-1);grasstree(b,d,n-1);endend5.主要输出:指令:koch(0,1,5); soerpinski(0,1,exp(pi*i/3),5); grasstree(0,i,5);Koch曲线Sierpinski三角形树木花草6.实验结论:以上图案的局部形状与原本图形用某种自相似性,这正是分形的特点。

煤焦SEM图像的表面孔洞分形维数的Matlab实现_张杰

煤焦SEM图像的表面孔洞分形维数的Matlab实现_张杰

收稿日期:2006-11-06作者简介:张杰(1962-),男,天津人,教授,主要从事煤的清洁燃烧技术方面的教学与研究工作。

文章编号:1673-9469(2007)02-0040-05煤焦SEM 图像的表面孔洞分形维数的Matlab 实现张 杰,张蕊蕊,胡卜元,白素芳,徐 璇(河北工程大学城建学院,河北邯郸 056038)摘要:利用Matlab 软件对煤焦燃烧过程中的SEM 图像进行分析处理,得到了煤焦表面孔的二值化图像及其对应矩阵,并针对二值化数字图像的特点,借助分形理论详细论述了计盒维数计算SPFD 的原理及方法,为研究燃烧过程中煤焦表面结构变化提供了一种计算方法。

关键词:Matlab ;SPFD ;SE M ;计盒维数中图分类号:TK16 文献标识码:AStudy on surface pore fractal dimension of charSE M photographs by MatlabZHANG Jie ,ZHANG Rui -rui ,HU Bu -yuan ,B AI Su -fang ,XU Xuan(College of Urban Construction ,Hebei University of En gineering ,Handan 056038,China )Abstract :The overall process of the complex chemical reaction in the coal combustion can be learned bystudying the changes of SPFD .The 2-value digital image and matrix about the surface por e wer e studied by applying Matlab to analyze the SE M photographs of char samples during combustion .In accordance of the property of 2-value digital image ,the principle and method of calculating SPFD adopting box -counting di -mension wer e minutely discussed basing on the fractal theory .This article provides a kind of calculating method for the study of the surface structure changing in char combustion process .Key words :Matlab ;SPFD ;SE M ;box -counting dimension 煤炭是中国的基础能源,目前煤在中国能源结构中所占比重为70%左右。

第7章 分形维数应用与MATLAB实现

第7章  分形维数应用与MATLAB实现

第七章
MATLAB优化算法案例分析与应用
•7.1 分形盒维数概述
分形盒维数分为以下几类。 (1)相似维数:若某图形是由把全体缩小成 1/a的b个相似形所组成,由于 ,则有 。 (2)Kolmogorov容量维数:用半径为 的d维球包覆某d维图形集合时,假定 是球的个数的最小值。容量维数 可用下式来定义: (3)盒子维数(box-counting dimension):在双对数坐标纸上画出 对 的曲 线,其直线部分的斜率就是此分形对象的盒子孙维数 。 是小盒子的边长, 为 盒子数。 (4)信息维数(information dimension):把小盒子编号,如果知道分形中 的点落入第i只盒子的概率是 ,定义“信息维数” , 。 (5)关联维数(correlation dimension):如果把在空间随机分布的某量坐 标X处中的密度记为 ,则关联函数 , 表示平均。可以是全体平均,也可以是 空间平均。1983年,P. Grassberger和J. Procassia给出了关联维数的定义 。 (6)广义维数:H. G. E. Hentschel等提出了广义维数的概念,其定义是: ,其中 是 阶Renyi信息, 叫作q阶广义维数,有时也叫Renyi信息维数。 分形盒维数应用较广泛,在用数字图像盒维数法求得分维值时增大图像的 大小可以降低分维值计算的误差。信号时域短时分形盒维数进行低信噪比的带 噪信号的计算机仿真表明,该方法能较准确地检测低信噪比下的语音端点,并 且其算法也相对简单。
第七章
MATLAB优化算法案例分析与应用
•7.2 二维图像分形盒维数分析
图7- 1 大树分形计算
第七章
MATLAB优化算法案例分析与应用
Rmax=sqrt((M-1)^2+(N-1)^2); %求最大距离 Nr=zeros(1,floor(Rmax)); for k=1:floor(Rmax) for i=1:M for j=1:N for m=1:M for n=1:N if k==1 TotalGary=TotalGary+double(abs(I(i,j)-I(m,n))); end if k<=sqrt((i-m)^2+(j-n)^2)&sqrt((i-m)^2+(j-n)^2)<(k+1) Nr(k)=Nr(k)+1; end end; end; end; end; end; k=[1:floor(Rmax)]; E=2.*TotalGary.*ones(1,floor(Rmax))./Nr(1,floor(Rmax)); [P ,s]=polyfit(log(k),log(E),1); D=3-P(1);

Matlab基础及其应用-数值微积分与常微分方程求解

Matlab基础及其应用-数值微积分与常微分方程求解

6
6
6
1 −19
6 −19
6
7.2 数值积分
MATLAB基础与应用教程
7.2.1 数值积分的原理
基本思想是将整个积分区间[a,b]分成n个子区间[xi,xi + 1], i = 1,2,…,n,其中x1 = a,xn + 1 = b。这样求定积分问题
就分解为下面的求和问题:
矩形法是用矩形面积近似曲边梯形的面积,如图7.2(aБайду номын сангаас所 示;梯形法是用斜边梯形面积近似曲边梯形的面积,如图 7.2(b)所示;而辛普生法是用抛物线近似曲边。
7.1 数值微分
MATLAB基础与应用教程
【例7.1】设f(x) = sinx,用不同的方法求函数f(x)的数值 导数,并在同一个坐标系中绘制f '(x)的三种方法所得导数
曲线。
x=0:pi/24:pi; %用5次多项式p拟合f(x),并对拟合多项式p求导数dp在假设点的函数值 p=polyfit(x,sin(x),5); dp=polyder(p); dpx=polyval(dp,x); %直接对sin(x)求数值导数 dx=diff(sin([x,pi+pi/24]))/(pi/24); %求函数f的导函数g在假设点的导数 gx=cos(x); plot(x,dpx,'b-',x,dx,'ko',x,gx,'r+');
的形式,即形参t为时间参量,形参y为待求解问题的自变量。
tspan指定求解区间,用二元向量[t0 tf ]表示。 y0是初始状态列向量。
options用于设置积分求解过程和结果的属性。
7.4 常微分方程的数值求解

MATLAB环境下图像分形维数的计算

MATLAB环境下图像分形维数的计算
根据图像计盒维数的计算过程,编写程序对二 值图进行网格划分与统计(程序流程见图1),可以 得到一系列“网格大小”与相应“覆盖网格数”的数 据对,即子矩阵阶数与包含图像点(像素点为o)的 子矩阵个数的数据对;然后在双对数坐标系下绘出 数据点,进行线性回归分析,如能得到一条线性相 关的直线,直线斜率的负值即为图像的计盒维 数.
也有采用递减序列进行像素点覆盖,递减序列 的构造有多种方法,普遍使用的是二等分序列,也 就是将图像逐次二等分.所采用的序列的最大值都 将取决于图像的大小.网格的最小值始终为1,这 是划分网格的极限.
根据分形维数的定义,块的尺寸越小,计算出 的图像的维数越精确,但对于存储在计算机内的分 形图像,只能分割到像素点尺寸,就不能再继续分 割下去了.因此,当讨论图像的分形性质时,可以取 一个像素点的尺寸作为尺度下限,为了避免奇异情 形的发生,在计算分形维数的过程中,要求有适当 多的测试点,至于尺度上限可根据具体情况和具体 要求进行确定.
(1.中国矿业大学资源与安全工程学院,北京100083;2.中原工学院数理系,河南郑州450007)
摘要:利用MATLAB的图像处理和数值计算功能,对大气可吸入颗粒物的场发射电镜
(FESEM)图像进行处理,得到颗粒物边界的二值图像;编制MATLAB程序,统计一系列以不同
像素数量为边长的正方形块覆盖二值图像时的个数,根据像素数量和正方形块个数之间的关系,
确定图像的计盒维数.结果表明:MATLAB对分形图像的处理简单、方便,通过科赫曲线、谢宾
斯基填料等有规分形图形分形维数的计算表明该方法计算出的结果准确、可靠.对大气颗粒物的
分形维数的计算表明,不同不规则程度的颗粒物有不同的分形维数,可以通过颗粒物分形维数的
计算分析颗粒物的来源和输运过程.

分形维数--matlab

分形维数--matlab

一维曲线分形维数的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!')endL=length(y);%输入样点的个数y_min=min(y);%移位操作,将y_min移到坐标0点y_shift=y-y_min;%重采样,使总点数等于cellmax+1x_ord=[0:L-1]./(L-1);xx_ord=[0:cellmax]./(cellmax);y_interp=interp1(x_ord,y_shift,xx_ord);%按比例缩放y,使最大值为2^^cys_max=max(y_interp);factory=cellmax/ys_max;yy=abs(y_interp*factory);t=log2(cellmax)+1;%叠代次数for e=1:tNe=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;%累加每一段覆盖曲线的格子数endN(e)=Ne;%记录每e下的N(e)end%对log(N(e))和log(k/e)进行最小二乘的一次曲线拟合,斜率就是Dr=-diff(log2(N));%去掉r超过2和小于1的野点数据id=find(r<=2&r>=1);%保留的数据点Ne=N(id);e=NumSeg(id);P=polyfit(log2(e),log2(Ne),1);%一次曲线拟合返回斜率和截距D=P(1);。

matlab用结构函数法计算分形维数程序__理论说明

matlab用结构函数法计算分形维数程序__理论说明

matlab用结构函数法计算分形维数程序理论说明1. 引言1.1 概述本文旨在介绍使用结构函数法计算分形维数的程序和相关理论。

分形维数是描述自然界和人工物体中不规则结构复杂程度的重要指标之一,它能够定量衡量对象的自相似性和尺度变换特征。

而结构函数法是一种计算分形维数的常用方法,它通过测量对象的尺度不变性来实现对分形维数的求解。

1.2 文章结构本文共分为四个部分;引言部分即本章首先对文章进行概述和简介;接着第二部分将介绍分形维数的基本概念以及与结构函数法计算之间的关系;第三部分将详细介绍如何在Matlab环境下使用结构函数法来计算分形维数,并给出具体示例数据和结果展示;最后,第四部分将给出总结,回顾研究目的,总结各种方法并展望改进和应用前景。

1.3 目的本文旨在向读者介绍使用Matlab编写程序进行结构函数法计算分形维数的方法,并通过具体数据案例展示其有效性。

通过本文的阅读,读者将了解到什么是分形维数以及在实际研究中如何使用结构函数法来计算分形维数。

同时,本文还将讨论该方法的优缺点,并探究其未来的应用前景和改进方向。

以上是关于“1. 引言”部分的详细内容,希望能对您撰写长文提供帮助。

2. 正文:2.1 分形维数的基本概念分形维数是描述分形对象复杂程度的重要指标。

分形是一类特殊的几何结构,具有自相似性和无限细节等特征。

分形维数通常用于量化描述分形对象的粗糙程度和层级结构。

2.2 结构函数法与分形维数计算的关系结构函数法是一种常用于计算分形维数的方法,其基本思想是通过结构函数来测量物体在不同尺度下的信息量。

结构函数可以通过计算物体上不同区域内对应尺度上像素值差异的平均值来得到。

分析这些差异可以揭示出物体在不同尺度下的内在结构规律,从而计算出其分形维数。

2.3 Matlab中使用结构函数法计算分形维数的程序步骤在Matlab中使用结构函数法计算分形维数需要以下步骤:步骤1: 读取并预处理图像或数据集。

首先将图像或数据集转换为灰度图像,并进行必要的预处理操作(如噪声去除、平滑等),以便更好地提取其结构信息。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

第七章
MATLAB优化算法案例分析与应用
•7.1 分形盒维数概述
分形盒维数分为以下几类。 (1)相似维数:若某图形是由把全体缩小成 1/a的b个相似形所组成,由于 ,则有 。 (2)Kolmogorov容量维数:用半径为 的d维球包覆某d维图形集合时,假定 是球的个数的最小值。容量维数 可用下式来定义: (3)盒子维数(box-counting dimension):在双对数坐标纸上画出 对 的曲 线,其直线部分的斜率就是此分形对象的盒子孙维数 。 是小盒子的边长, 为 盒子数。 (4)信息维数(information dimension):把小盒子编号,如果知道分形中 的点落入第i只盒子的概率是 ,定义“信息维数” , 。 (5)关联维数(correlation dimension):如果把在空间随机分布的某量坐 标X处中的密度记为 ,则关联函数 , 表示平均。可以是全体平均,也可以是 空间平均。1983年,P. Grassberger和J. Procassia给出了关联维数的定义 。 (6)广义维数:H. G. E. Hentschel等提出了广义维数的概念,其定义是: ,其中 是 阶Renyi信息, 叫作q阶广义维数,有时也叫Renyi信息维数。 分形盒维数应用较广泛,在用数字图像盒维数法求得分维值时增大图像的 大小可以降低分维值计算的误差。信号时域短时分形盒维数进行低信噪比的带 噪信号的计算机仿真表明,该方法能较准确地检测低信噪比下的语音端点,并 且其算法也相对简单。
第七章
MATLAB优化算法案例分析与应用
•7.3 基于短时分形维数的语音信号检测
3.5 3
2.5
赋值
2
1.5
1
100
200
300
400
500 t
600
700
800
900
1000
图7- 2 信号为正方形网格所覆盖
第七章 分形维数计算如式(7.2)所示。
MATLAB优化算法案例分析与应用
log N dF log log C
第七章
MATLAB优化算法案例分析与应用
•7.2 二维图像分形盒维数分析
图7- 1 大树分形计算
第七章
MATLAB优化算法案例分析与应用
Rmax=sqrt((M-1)^2+(N-1)^2); %求最大距离 Nr=zeros(1,floor(Rmax)); for k=1:floor(Rmax) for i=1:M for j=1:N for m=1:M for n=1:N if k==1 TotalGary=TotalGary+double(abs(I(i,j)-I(m,n))); end if k<=sqrt((i-m)^2+(j-n)^2)&sqrt((i-m)^2+(j-n)^2)<(k+1) Nr(k)=Nr(k)+1; end end; end; end; end; end; k=[1:floor(Rmax)]; E=2.*TotalGary.*ones(1,floor(Rmax))./Nr(1,floor(Rmax)); [P ,s]=polyfit(log(k),log(E),1); D=3-P(1);
短时分形盒维数
log Nk log Nk 2 Dk dF 1 log2 log 2 Dk 2
% 求一维信号分形维数 clc,clear,close all % 清屏、清工作区、关闭窗口 warning off % 消除警告 feature jit off % 加速代码执行 data = csvread('lod78.csv'); samplerate = 365; % 采样率 freqsol = 400; % 频率分辨率 timesol = 800; % 时间分辨率 df = dbox(data,samplerate); % 分形维数 disp(['分形维数为: ',num2str(df)])
第七章
MATLAB优化算法案例分析与应用
•第7章 •分形维数应用与MATLAB实现
第七章
MATLAB优化算法案例分析与应用
被誉为大自然的几何学的分形(Fractal)理论,是现代数学 的一个新分支,但其本质却是一种新的世界观和方法论。分 形维数反映了复杂形体占有空间的有效性,它是复杂形体不 规则性的量度。分形理论在现在图像处理和信号分析处理领 域应用越来越广泛,本章主要借助分形维数理论,对二维图 像和语音信号进行分析计算,让读者真正掌握分形盒维数的 计算。
1.5
Frequency
1
0.5
0
1
2
3
4 Time
5
6
7
图7- 4 时频分析
第七章
MAT形盒维数反应数据的细微特征的变化 ,能够从数据的局部反应数据的整体趋势,因此分形盒维数在图像和信号处 理领域广泛应用。本章基于分形盒维数计算,针对二维图像盒维数计算和语 音信号的盒维数计算展开讨论,并在MATLAB辅以验证,有助于广大读者进 行分形盒维计算的理解。
第七章
MATLAB优化算法案例分析与应用
•7.3 食品价格趋势预测
24、胡萝卜 0.2727 0 0.2727 0 0.4545 0.2876 0.1091 0.1785 0.1636 0.2612 0.2833 0.0932 0.1303 0.1741 0.3191 0.2766 0.0827 0.1380 0.1642 0.3385 0.2773 0.0829 0.1434 0.1617 0.3347 0.2779 0.0841 0.1431 0.1627 0.3322 0.2779 0.0842 0.1424 0.1630 0.3324 25、青椒 0.5000 0.0833 0 0.1667 0.2500 0.4077 0.0417 0.1276 0.1218 0.3013 0.3783 0.0659 0.0927 0.1143 0.3488 0.3614 0.0547 0.1055 0.1167 0.3617 0.3606 0.0565 0.1019 0.1159 0.3652 0.3596 0.0555 0.1027 0.1163 0.3660 0.3597 0.0556 0.1024 0.1162 0.3660
第七章
MATLAB优化算法案例分析与应用
Original Signal 0.5 0.4 0.3 0.2 0.1 0 -0.1 -0.2 -0.3 -0.4
0
1
2
3
4
5
6
7
8
图7- 3 原始信号
第七章
x 10 2
4
MATLAB优化算法案例分析与应用
Spectrogram of Original Signal
相关文档
最新文档