根据计盒维数原理求一维曲线分形维数的matlab程序
分形插值曲面的MATLAB程序[1]!
2 分形插值曲面 MATLAB 程序
根据分形插值曲面的数学公式, 运用 MATLAB 语言研制了模拟粗糙曲面的计算机程序, 并绘制了分形 插值曲面。 2.1 变量说明
d:\sun\fp 为存放数据文件的路径名; s 为存放原始数据文件名变量; sp 为存放插值数据文件名变量; af 为公式( 5) 中决定分形插值曲面分形维数( 粗糙程度) 的自由参数 αn, m 的值; n, m 分别为 x, y 方向插值结点数 N, M; nn, mm 分别为 x, y 方向插值后的结点数; x( n×1) , y( m×1) 分别存放 x, y 方向步长值( Δx) , ( Δy) ; z( n×m) 存放插值结点上的原始数据; zz( nn×mm) 存放插值后结点上的值; a( n×1) , b( n×1) , c( m×1) , d( m×1) 分别存放公式( 4) 中的 an, bn, cm, dm; cc( n×m) , bb( n×m) , dd( n×m) , kk( n×m) 分别存放公式( 6) 中的 en, m, fn, m, gn, m, kn, m。 2.2 源程序 % This is a F3PT1.m program (fractal surface interpolation). bds=input('Input your file name please ','s')W af=input('Input argument af == ')W
( 5)
式 中 , an,m( n∈<1, 2, ..., N=, m∈<1, 2, ..., M=) 为 决 定 分 形 插 值 曲 面 分 形 维 数 ( 粗 糙 程 度 ) 的 自 由 参 数 , 且 满 足
0≤an, m<1, 称为垂直比例因子。
matlab 极值连分式法 一维
文章主题:使用 MATLAB 实现极值连分式法解决一维问题一、介绍在数学和工程领域,极值连分式法是一种重要的数值计算方法。
它广泛应用于计算机模拟、信号处理、图像处理等方面。
本文将使用MATLAB 来介绍极值连分式法在一维问题中的应用。
二、极值连分式法原理极值连分式法是一种递归算法,用于计算给定连分式的收敛值。
在一维问题中,极值连分式法可用于求解函数的极值点、最大值、最小值等。
通过不断迭代求解,极值连分式法可以准确地找到函数的极值点,具有很高的精度和稳定性。
三、MATLAB 实现在 MATLAB 中,可以通过编写函数来实现极值连分式法。
定义需要求解的一维函数,并确定迭代的终止条件。
利用循环或递归的方式,不断更新函数的极值点,直到满足终止条件为止。
需要注意的是,在MATLAB 中,可以利用向量化的操作来提高计算效率,减少迭代次数,并且可以通过图形界面直观地展示极值点的迭代过程。
四、示例分析以求解一维函数 f(x) = x^3 - 2x^2 + 3x - 1 的极小值点为例,我们可以通过 MATLAB 来实现极值连分式法。
定义该一维函数,并设置迭代终止条件。
利用循环或递归的方式,不断更新函数的极小值点,直到满足终止条件。
通过绘图表现,展示极小值点的迭代过程,并得到最终的极小值点。
五、个人观点极值连分式法作为一种重要的数值计算方法,在一维问题中具有广泛的应用。
MATLAB 提供了丰富的数学函数和绘图工具,使得实现极值连分式法变得简单而高效。
通过学习和掌握 MATLAB 中极值连分式法的实现,可以更好地理解和应用这一数值计算方法,为解决实际问题提供了有力的工具。
六、总结通过本文的介绍,我们了解了极值连分式法在一维问题中的原理和实现方法。
借助 MATLAB 的强大功能,我们可以轻松地求解一维函数的极值点,为数值计算和工程应用提供了便利。
通过实际示例的分析,我们可以更直观地感受极值连分式法的迭代过程和收敛效果。
matlab绘图(一维、二维、三维)
Matlab 二维作图
数学实验
基本形式(续)
plot(y): 绘制向量 y 中元素的线性图 以下标为横坐标,元素值为纵坐标,等价于:
x=[1:length(y)];plot(x,y);
例:>> y=[0,0.48,0.84,1,0.91,6.14];
>> plot(y); >> figure(2); plot([1:length(y)], y)
数学实验
图形的其他属性
标题 title(’text’)
例:
数学实验
可以指定文本的属性 title('text', 'Property1', value1, ' Property2', value2, ...)
Property: linewidth, markersize, fontsize, fontweight, fontname, …
Matlab 二维作图
数学实验
基本形式
plot(x,y)
✓ x, y 都是向量,则以 x 中元素为横坐标, y 中元素为 纵坐标作平面曲线。此时 x, y 必须具有相同长度。 ✓ x, y 都是矩阵,则将 x 的列和 y 中相应的列相组合, 绘制多条平面曲线。此时 x, y 必须具有相同的大小。 ✓ x 是向量, y 是矩阵,若 x 的长度与 y 的行数相等, 则将 x 与 y 中的各列相对应,绘制多条平面曲线;否 则,若 x 的长度与 y 的列数相等,则将 x 与 y 中的各 行相对应,绘制多条平面曲线。此时 x 的长度必须等 于 y 的行数或列数。
数学实验
空间曲面作图举例
例:绘制边界面屏蔽 meshz
MATLAB环境下图像分形维数的计算
也有采用递减序列进行像素点覆盖,递减序列 的构造有多种方法,普遍使用的是二等分序列,也 就是将图像逐次二等分.所采用的序列的最大值都 将取决于图像的大小.网格的最小值始终为1,这 是划分网格的极限.
根据分形维数的定义,块的尺寸越小,计算出 的图像的维数越精确,但对于存储在计算机内的分 形图像,只能分割到像素点尺寸,就不能再继续分 割下去了.因此,当讨论图像的分形性质时,可以取 一个像素点的尺寸作为尺度下限,为了避免奇异情 形的发生,在计算分形维数的过程中,要求有适当 多的测试点,至于尺度上限可根据具体情况和具体 要求进行确定.
(1.中国矿业大学资源与安全工程学院,北京100083;2.中原工学院数理系,河南郑州450007)
摘要:利用MATLAB的图像处理和数值计算功能,对大气可吸入颗粒物的场发射电镜
(FESEM)图像进行处理,得到颗粒物边界的二值图像;编制MATLAB程序,统计一系列以不同
像素数量为边长的正方形块覆盖二值图像时的个数,根据像素数量和正方形块个数之间的关系,
确定图像的计盒维数.结果表明:MATLAB对分形图像的处理简单、方便,通过科赫曲线、谢宾
斯基填料等有规分形图形分形维数的计算表明该方法计算出的结果准确、可靠.对大气颗粒物的
分形维数的计算表明,不同不规则程度的颗粒物有不同的分形维数,可以通过颗粒物分形维数的
计算分析颗粒物的来源和输运过程.
matlab中关于线性规划一维搜索的理论与应用举例
x1, x3 上必有极小值点。
y
O
x1 x2 x*
x3
x
一维搜索的实施步骤
确定搜索区间
根据上面的分析,确定搜索区间的进退法的基本思路就是按照一定的规律给出若干个试探点, 依次比较各试探点的函数值的大小,直到找到函数按“高-低-高”分布的单峰区间为止。 例如给定初始点 x1 和步长 h ,确定搜索区间 a, b 的方法为:首先计算 f x1 和 f x1 h ,可能 出现如下两种情况: (1) f x1 f x1 h 表明极小点在试探点的右侧,从 x1 h 出发,将步长 h 加倍变为 2h 向右搜索,计算 f x1 3h , 如果 f x1 h f x1 3h , 则搜索区间可以设置为 x1 , x1 3h。 否则的话, 说明极小点在 x1 h 的右侧,从 x1 3h 出发,步长再加倍向右搜索,计算 f ( x1 7 h) ,然后重复上述的判断和计算过 程 (2) f x1 f x1 h 表明极小点在试探点的左侧,试探方向错误,故此时应将步长 h 调整为 h ,从 x1 出发向左搜索 计算 f x1 h ,如果 f x1 f x1 h ,说明极小点在 x1 h 的右侧,则搜索区间可以设置为
x1 h, x1 h 。如果 f x1 f x1 h ,则从 x1 h 出发,步长加倍向左搜索,方法和(1)中相同。
一维搜索的实施步骤
确定搜索区间的算法图示
输入初始值x1 和步长值h x2=x1+h计算 f(x1)和f(x2) Y h=-h
matlab用结构函数法计算分形维数程序__理论说明
matlab用结构函数法计算分形维数程序理论说明1. 引言1.1 概述本文旨在介绍使用结构函数法计算分形维数的程序和相关理论。
分形维数是描述自然界和人工物体中不规则结构复杂程度的重要指标之一,它能够定量衡量对象的自相似性和尺度变换特征。
而结构函数法是一种计算分形维数的常用方法,它通过测量对象的尺度不变性来实现对分形维数的求解。
1.2 文章结构本文共分为四个部分;引言部分即本章首先对文章进行概述和简介;接着第二部分将介绍分形维数的基本概念以及与结构函数法计算之间的关系;第三部分将详细介绍如何在Matlab环境下使用结构函数法来计算分形维数,并给出具体示例数据和结果展示;最后,第四部分将给出总结,回顾研究目的,总结各种方法并展望改进和应用前景。
1.3 目的本文旨在向读者介绍使用Matlab编写程序进行结构函数法计算分形维数的方法,并通过具体数据案例展示其有效性。
通过本文的阅读,读者将了解到什么是分形维数以及在实际研究中如何使用结构函数法来计算分形维数。
同时,本文还将讨论该方法的优缺点,并探究其未来的应用前景和改进方向。
以上是关于“1. 引言”部分的详细内容,希望能对您撰写长文提供帮助。
2. 正文:2.1 分形维数的基本概念分形维数是描述分形对象复杂程度的重要指标。
分形是一类特殊的几何结构,具有自相似性和无限细节等特征。
分形维数通常用于量化描述分形对象的粗糙程度和层级结构。
2.2 结构函数法与分形维数计算的关系结构函数法是一种常用于计算分形维数的方法,其基本思想是通过结构函数来测量物体在不同尺度下的信息量。
结构函数可以通过计算物体上不同区域内对应尺度上像素值差异的平均值来得到。
分析这些差异可以揭示出物体在不同尺度下的内在结构规律,从而计算出其分形维数。
2.3 Matlab中使用结构函数法计算分形维数的程序步骤在Matlab中使用结构函数法计算分形维数需要以下步骤:步骤1: 读取并预处理图像或数据集。
首先将图像或数据集转换为灰度图像,并进行必要的预处理操作(如噪声去除、平滑等),以便更好地提取其结构信息。
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.实验结论:以上图案的局部形状与原本图形用某种自相似性,这正是分形的特点。
基于MATLAB对混凝土SEM分形维数的计算
Ab s t r a c t : I n t h e s t u d y o f f r a c t a l s c i e n c e , t h e c a l c u l a t i n g me t h o d o f f r a e t a l d i me n s i o n h a s b e e n p a i d a t t e n t i o n t o a s i t i mp a c t s d i r e c t l y t h e s o l v i n g ma n e u v e r a b i l i t y a n d t h e r e s u l t s a c c u r a c y . Us i n g MA T L AB i ma g e p r o c e s s i n g a n d n u me ic r a l c a l c u l a t i o n f u n c t i o n , t h e f r a c t a l
中图分类号 : T Q1 7 2 . 6 ; T U5 2 8 . 1
文献标识码 : A
文章编号 : 1 0 0 7 — 0 3 8 9 ( 2 0 1 4 ) 0 5 — 5 9 — 0 4
基于 MAT L AB对混凝 土 S E M 分形维数 的计算
余 志龙 , 赵利 军, 孟 凡 皓
( 长安大学 道路施工技术与装备教育部重点实验室 , 陕西 西安 7 1 0 0 6 4 )
摘
Байду номын сангаас
粗集料表面纹理曲线图形分形维数MATLAB算法研究
sz( it — i+1) i w d h sz )); : )
e d n
集料表 面纹理维 数越 大 ,则粗 糙程度 越复 杂 ,因此为 面层 石料的优选 提 『 址了新 的方法和 指标 。 关键词 : 粗集 料 ; 形 ; 子法 ; 分 盒 维数 中图分 类号 :4 62 U1. 文献标识 码 : A 文章编 号 : 0 2 4 8 ( 0 0 0 — 1 3 0 1 0— 76 2 1 ) 7 0 4 — 3
Ke wor s:a g e a e;fa tl o — o n ig y d g rg t rca ;b x c u tn me h d;d me so to i nin
0 引言
车 速 提 高 而 衰减 的 幅 度 ,所 谓 糙 是 指 微 观 构 造 可 形 容 为 细 砂 纸 ,而 它决 定 了 各 种 车 速 下 路 面 抗 滑 力 的 总 体 水 平 。 因 此 ,在 优 化 沥 青 路 面 的抗 滑 能 力设 计 时 ,首 先 应 考 虑 的 是 粗
形 特 征 是 在 不 同 尺 度 下 均 具 备 自相 似 性 的 构 造 ,并 提 出 了维
路 基 稳 定 ,完 全 达 到 设 计 及 施 m g 安 全 要 求 ,为 砂 砾 垫 层 处 q
理 软 基 的应 用 提供 了 一 个 非 常 成 功 的 经 验 。 实 践 证 明 , 这 一
■●
-
粗集料表面纹理曲线图形分形维数
刘 肖云
( 西省高 等级公 路管理 局质 量监督 站 ,江西 南 昌 3 0 4 江 3 0 6)
摘要 : 对粗集 料表 面纹理 曲线 采用 M TA 平 台编 程计算 备轮廓 线 的分 形维 数 ,根据 实测 结果确认 采用 计盒维 数法可 靠并可行 。粗 A LB
岩石表面裂纹的计盒分形维数matlab计算程序
岩石表面裂纹的计盒维数的matlab算法分形几何的产生源于两个数学问题,一是函数的可微性问题.另一个是维数问题,它的基本概念是分数维数,数字特征是幂律关系,几何或物理特征是自相似性。
它适用于描述自然界中一切不规则的、杂乱无章的现象,并提出了一种定量化的描述方法。
分形几何是一门以不规则几何形态为研究对象的几何学。
自然界中普遍存在着不规则现象,所以分形几何学又可以被称为描述大自然的几何学。
分形几何学建立以后,引起了各个学科领域的关注。
分形几何不仅在理论上,而且在实用上都具有重要价值。
分形理论是法国数学家Mamlelbort在20世纪70年代创建的一门研究学科,主要以不规则、复杂无序而又存在某种内在联系的几何形态为研究对象,与传统几何中的整形概念相对,是在传统几何空间基础上的一个重大提升。
它可以更加准确地描述自然界中物体、现象的特点、本质。
Mamlelbort提出:自然界中大多数几何对象都以分形的形式存在,不存在绝对意义的整形。
自相似性是分形理论的重要特性,系统的自相似性是:根据不同的时间尺度和空间尺度,自然界中结构、过程的特征都存在相似性。
具体表现在,某系统(某结构)的局部性质与整体性质相似,另外,部分与部分间也会存在自相似。
自相似的表现形式相对复杂,并不是对局部进行一定倍数的放大后和整体全部重合,这改变的只是系统的外部表现形式,系统(结构)的形态、复杂性、不规则程度,不会因为放大或者缩小等行为而产生变化。
分形可以依照自相似性的程度,来划分为:有规分形和无规分形,有规分形是指描述对象的自相似性程度非常高,能够通过数学模型来描述;无规分形是具有统计学意义上的分形。
维数是几何中重要的参量,用来表示空间中某一点所处位置所用到的独立坐标数目。
传统的欧式几何中一般采用整数来表示维数,例如:直线用一维表示,平面用二维表示,空间用三维表示。
分形几何中维数不一定用整数来表示,可以是分数。
虽然分形对象变化多样,但它们有着共同的特征存在,也就是可以通过分形维数来表征研究对象的不规则程度。
常用方法MATLAB求解(好)
由图可看出可用二次多项式拟合。 再输入命令 : >> p=polyfit(x,y,2) p= 0.5614 0.8287 1.1560 即二次拟合多项式为 f ( x) 0.5614x2 0.8287 x 1.1560
3
画出离散点及拟合曲线: 输入命令 : >> x1=0.5:0.05:3.0; >> y1=polyval(p,x1); >> plot(x,y,'*r',x1,y1,'-b') 结果见图5.4
Pn ( x ) L i ( x ) y i
i 0
n
其中Li(x) 为n次多项式:
( x x 0 )( x x 1 ) ( x x i 1 )( x x i 1 ) ( x x n ) L i (x) ( x i x 0 )( x i x 1 ) ( x i x i 1 )( x i x i 1 ) ( x i x n )
mesh(x0,y0,temps) 结果见图5.6
分别用线性性插值和三次样条插值求已知点的温度。
输入命令 :
19
>> t=interp2(x0,y0,temps,[1.5 2 2.5 3.5],[1.5 1.6 2 4.5],'liner')
t=
76.2500 70.2000 62.0000 T= NaN
f ( x j ) y j ( j 0,1,n)
再用
f ( x) 计算插值,即 y f ( x ).
* *
y1 y0
y
*
x0 x1 x*
xn
结构函数法计算分形维数的matlab程序代码_概述说明
结构函数法计算分形维数的matlab程序代码概述说明1. 引言1.1 概述本文旨在介绍结构函数法用于计算分形维数的Matlab程序代码的实现过程。
分形维数是一种用于描述不规则对象复杂度和粗糙度的数学概念,具有广泛的应用领域,包括图像处理、地质学、生物学等。
结构函数法是一种常用的计算分形维数的方法,通过对信号数据进行结构函数的计算和分析来获取其分形特征。
1.2 文章结构本文首先介绍了文章的背景和目标,概述了结构函数法计算分形维数的基本原理和流程。
然后详细介绍了Matlab程序代码的实现步骤和方法。
接着通过实际案例验证了程序代码的准确性,并进行了结果展示和分析。
最后总结文章所取得的主要研究成果,并提出存在问题与改进方向以及后续研究展望。
1.3 目的本文旨在提供一个完整而详尽的指南,帮助读者理解并掌握使用结构函数法计算分形维数的Matlab程序代码编写与实现过程。
通过该程序代码,读者可以快速而准确地计算各种信号数据的分形维数,并据此分析其复杂度和粗糙度特征。
本文的目标是为读者提供一个清晰、可操作的实践指南,以便他们能够在相关领域开展深入研究和应用。
2. 结构函数法计算分形维数2.1 分形维数简介分形维数是衡量分形结构复杂度的一种重要指标,用于描述物体在不同尺度下的自相似性。
在自然界和工程领域中,很多现象都具有分形特征,如云朵、山脉、树枝等。
分形维数可以帮助我们理解和研究这些复杂系统。
2.2 结构函数法原理结构函数法是一种常用的计算分形维数的方法。
其基本思想是通过测量数据集在不同尺度范围内的方差来估计分形维数。
首先,将原始数据按照一系列长度为r 的间隔进行划分,并计算每个间隔内数据值之差的平方和作为方差。
然后,对所有间隔长度r对应的方差进行统计处理,得到一个关于尺度r的函数D(r)。
最后,通过对D(r)进行线性回归拟合或使用其他方法来估计数据集的分形维数。
2.3 数据预处理在应用结构函数法计算分形维数之前,需要对原始数据进行预处理。
一维有限元matlab程序
一维有限元matlab程序
一维有限元Matlab程序的基本原理是,通过分割整体有限元模型,将其划分为多个包含有限个单元的小模型,然后求解每个单元上的局
部力学方程。
有限元技术提供了用于绘制复杂边界和非结构网格的工具,可以构建一维、二维和三维的模型。
其中,一维是最早发展的有
限元模型,也是最容易理解的系统分析工具之一。
Matlab 也提供了一维有限元程序,用于解决一维均匀有限元问题。
这些程序可以解决模态分析(振动分析)、渗流分析、弹性模量分析、气流分析、热传导分析和火焰分析等问题。
Matlab 一维有限元程序的基本步骤如下:
(1)建立单元空间,将结构节点映射到一维有限元模型上;
(2)根据单元空间,构建局部坐标系并构建单元空间;
(3)根据所采用的有限元方法,构建有限元单元函数;
(4)构建局部刚度矩阵;
(5)求解局部刚度矩阵,得到刚度矩阵;
(6)求解局部力学方程,得到分布在单元上的力量;
(7)根据定义,构建全局刚度矩阵;
(8)求解全局力学方程,得到结构上的力量;
(9)获取结果,得到有限元模型的解。
上述是Matlab一维有限元程序基本流程,其具体实现可以根据实际应
用要求更改流程中的步骤。
分形维数 matlab
分形维数 matlab分形维数是度量分形特征的重要方法。
它是通过对分形对象进行测量来确定对象的尺寸和形状复杂性的。
在matlab中,可以使用多种方法来计算分形维数。
本文将介绍matlab中计算分形维数的方法,包括盒维数、哈斯特指数和多重分形维数。
一、盒维数法盒维数法是最基本的计算分形维数的方法之一。
它通过测量覆盖分形对象所需的最小正方形数来计算分形维数。
具体计算方法为:1.将分形对象放置在一个正方形网格中。
2.选取一个长度为l的正方形框,将其移动滑动网格,去覆盖分形对象。
3.计算分形对象被框覆盖的次数,这就是盒维数的结果。
在matlab中,可以使用下面的代码计算盒维数:% 定义分形对象x = linspace(-1, 1, 100);y = x.^2;% 计算盒维数D = boxcount(x, y);disp(['盒维数:' num2str(D)]);二、哈斯特指数法1.将信号分解成一系列尺度不同的信号,即小波系数。
2.计算每个尺度下的信号的自相关函数。
% 定义信号load noisysignals.mat;[~, ~, H] = haursd(signal);三、多重分形维数法多重分形维数法是一种区间分析法,它通过对分形对象进行分割,分析分割后各段的分形特征来计算分形维数。
具体计算方法为:1.将分形对象分割为多个区间,求出每个区间的分形特征,如盒维数或哈斯特指数。
2.根据分形特征和区间的尺寸关系,计算每个区间的分形维数。
3.通过对所有区间的分形维数作图,得到分形维数的分布情况。
plot(q, fDq, 'r-');xlabel('q');title('多重分形维数');。
教你用MATLAB快速作一维、二维、三维图
精选可编辑ppt
7
• 加图例
• 给图形加图例命令为legend。该命令把图例放置在图形空 白处,用户还可以通过鼠标移动图例,将其放到希望的位 置。
• 格式:legend('图例说明','图例说明');
• 为正弦、余弦曲线增加图例,其程序为:
• x=0:pi/100:2*pi;
• y1=sin(x);
• grid on 加网格线
• text(x,y,‘string’) adds the string in quotes(引号) to the location specified by the point (x,y).
• \bullet ·
• \pi
π
• \rightarrow 右箭头
• EdgeColor -- Color of the rectangle's edge (none by
例 在[-2,2]范围内绘制函数tanh的图形
解 fplot(‘tanh’,[-2,2])
Matlab liti28
例 x 、 y 的 取 值 范 围 都 在 2 [ - 2 , ] ,
画 函 数 t a n h ( x ) , s i n ( x ) , c o s ( x ) 的 图 形
解 输入命令:
--将多条精线选可画编辑在pp一t 起
3
例 在[0,2*pi]用红线画sin(x),用绿圈画cos(x).
解 x=linspace(0,2*pi,30);
y=sin(x); z=cos(x);
Matlab liti1
plot(x,y,'r',x,z,’g0')
1
0.8
一维抛物线型方程数值解法附图及matlab程序
一维抛物线偏微分方程数值解法(1)解一维抛物线型方程(理论书籍可以参看孙志忠:偏微分方程数值解法)Ut-Uxx=0, 0<x<1,0<t<=1(Ut-aUxx=f(x,t),a>0)U(x,0)=e^x, 0<=x<=1,U(0,t)=e^t,U(1,t)=e^(1+t), 0<t<=1精确解为:U(x,t)=e^(x+t);下面给出两个matlab程序,实质一样(用的是向前欧拉格式)第二个程序由之前解线性方程组的G-S迭代法得到,迭代次数k=2(固定)function [p u e x t]=pwxywxq(h1,h2,m,n)% 解抛物线型一维方程向前欧拉格式(Ut-aUxx=f(x,t),a>0)%不用解线性方程组,由下一层(时间层)的值就直接得到上一层的值%m,n为x,t方向的网格数,例如(2-0)/0.01=200;%e为误差,p为精确解u=zeros(n+1,m+1);x=0+(0:m)*h1;t=0+(0:n)*h2;for(i=1:n+1)u(i,1)=exp(t(i));u(i,m+1)=exp(1+t(i));endfor(i=1:m+1)u(1,i)=exp(x(i));endfor(i=1:n+1)for(j=1:m+1)f(i,j)=0;endendr=h2/(h1*h1); %此处r=a*h2/(h1*h1);a=1 要求r<=1/2差分格式才稳定for(i=1:n)for(j=2:m)u(i+1,j)=(1-2*r)*u(i,j)+r*(u(i,j-1)+u(i,j+1))+h2*f(i,j);endendfor(i=1:n+1)for(j=1:m+1)p(i,j)=exp(x(j)+t(i));e(i,j)=abs(u(i,j)-p(i,j));endend或者:function [u e p x t k]=paowuxianyiweixq(h1,h2,m,n,kmax,ep)% 解抛物线型一维方程向前欧拉格式(Ut-aUxx=f(x,t),a>0)%kmax为最大迭代次数%m,n为x,t方向的网格数,例如(2-0)/0.01=200;%e为误差,p为精确解syms temp;u=zeros(n+1,m+1);x=0+(0:m)*h1;t=0+(0:n)*h2;for(i=1:n+1)u(i,1)=exp(t(i));u(i,m+1)=exp(1+t(i));endfor(i=1:m+1)u(1,i)=exp(x(i));endfor(i=1:n+1)for(j=1:m+1)f(i,j)=0;endenda=zeros(n,m-1);r=h2/(h1*h1);%此处r=a*h2/(h1*h1);a=1 要求r<=1/2差分格式才稳定for(k=1:kmax)for(i=1:n)for(j=2:m)temp=(1-2*r)*u(i,j)+r*(u(i,j-1)+u(i,j+1))+h2*f(i,j); a(i+1,j)=(temp-u(i+1,j))*(temp-u(i+1,j));u(i+1,j)=temp;endenda(i,j)=sqrt(a(i,j));if(k>kmax)break;endif(max(max(a))<ep)break;endendfor(i=1:n+1)for(j=1:m+1)p(i,j)=exp(x(j)+t(i));e(i,j)=abs(u(i,j)-p(i,j));endend在命令窗口中输入:[p u e x t]=pwxywxq(0.1,0.005,10,200);>> surf(x,t,u)>> shading interp;>> xlabel('x');ylabel('t');zlabel('u');>> title('一维抛物线方程向前欧拉法数值解');surf(x,t,p)>> shading interp;xlabel('x');ylabel('t');zlabel('p');>> title('一维抛物线方程向前欧拉法精确解')同理:plot(x,u)>> xlabel('x');ylabel('u');>> title('固定时间改变x u与x 的关系数值解')[p u e x t]=pwxywxq(0.1,0.01,10,100);surf(x,t,u)Warning: Axis limits outside float precision, use ZBuffer or Painters instead. Not renderingWarning: Axis limits outside float precision, use ZBuffer or Painters instead. Not renderingWarning: Axis limits outside float precision, use ZBuffer or Painters instead. Not renderingWarning: Axis limits outside float precision, use ZBuffer or Painters instead. Not rendering>> surf(x,t,e)Warning: Axis limits outside float precision, use ZBuffer or Painters instead. Not renderingWarning: Axis limits outside float precision, use ZBuffer or Painters instead. Not renderingWarning: Axis limits outside float precision, use ZBuffer or Painters instead. Not rendering>>所以空间步长与时间步长需要满足上面所说的关系继续减小时间步长[p u e x t]=pwxywxq(0.1,0.001,10,1000)此为欧拉向前差分法,向后差分法请参看下一篇文章:一维抛物线偏微分方程数值解法(2)(附matlab程序及图片)我近期在做这个,有兴趣可以一起学习百度账号:草随风逝。
分形曲线及matlable算法
n=m;
end
plot(p(:,1),p(:,2))
flash 制作原代码 1---------------------------------------_root.createEmptyMovieClip("fenxing",1); a=new Array(1025); b=new Array(1025); c=new Array(1025); d=new Array(1025); e=new Array(1025); f=new Array(1025); a[1]=100; b[1]=100; a[2]=500; b[2]=100; n=2; for(k=1;k<=4;k++) {with(_root.fenxing) {for(w=1;w<n;w++) {c[w]=(a[w+1]-a[w])/3; d[w]=(b[w+1]-b[w])/3; }//微分 d m=5*n-4; for(z=1;z<=n;z++) { e[z]=a[z]; f[z]=b[z]; }//差距 q h=2; for(g=6;g<=m;g=g+5) {if(h<=n) a[g]=e[h]; b[g]=f[h]; h++ } z=1; w=1; for(g=2;g<=m;g=g+5) {a[g]=e[z]+c[w]; b[g]=f[z]+d[w]; z++;
实现。 MATLAB 程序如下 clear p=[0 0;10 0];n=1; A=[cos(pi/3) -sin(pi/3);sin(pi/3) cos(pi/3)]; for k=1:5 j=0; for i=1:n q1=p(i,:); q2=p(i+1,:);
第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);
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
根据计盒维数原理求一维曲线分形维数的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;%累加每一段覆盖曲线的格子数
end
N(e)=Ne;%记录每e下的N(e)
end
%对log(N(e))和log(k/e)进行最小二乘的一次曲线拟合,斜率就是D
r=-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);。