基于matlab实现分形图形的绘制论文内容摘要:

d. 一般,分形集的“分形维数”,严格大于它相应的拓扑维数。 e. 在大多数令人感兴趣的情形下,分形集由非常简单的方法定义,可能以变换的迭代产生。 分形几何观及其应用 平面上决定一条直线或圆锥曲线只需数个条件。 那么决定一片蕨叶需要多 少条件。 如果把蕨叶看成是由线段拼合而咸,那么确定这片蕨叶的条件数相当 可现,然而当人们以分形的 眼光来看这片蕨叶时,可以把它认为是一个简单的迭代函数系统的结果,而确定该系统所需的条件数相比之下要少得多.这说明用特定的分形拟合蕨叶比用折线拟合蕨叶更为有效。 分形观念的引入并非仅是一个描述手法上的改变,从根本上讲分形反映了自然界中某些规律性的东西,以植物为例,植物的生长是植物细胞按一定的遗传规律不断发育、分裂的过程,这种按规律分裂的过程可以近似地看做是递归、 迭代过程,这与分形的产生极为相似。 在此意义上,人们可以认为一种植物对应一个迭代函数系统,人们甚至可以通过改变该系统中的某些参数来模拟植物的变异过程。 分形几何还被用于海岸线的描绘及海图制作、地震预报、图象编码理论、信号处理等领域,并在这些领域内取得了个人注目的成绩。 作为多个学科的交叉,分形几何对以往欧氏几何不屑一顾(或说是无能为力)的“病态”曲线的全新解释是人类认识客体不断开拓的必然结果。 当前,人们迫切需要一种能够更好地研究、描述各种复杂自然曲线的几何学:而分形几何恰好可以堪当此用。 所以说,分形几何也就是自然几何,以分形或分形的组合的眼光来看待周围的物质世界就是自然几何观。 第三章 Koch雪花的绘制 第 8 页 von Koch 曲线简介 自从有 了函数曲线的连续与可微性质及其关系以后,是否存在一个处处连续而点点不可微的函数曲线成了研究的热门。 首先解决这个问题的是大数学家Weierstrass,他于 1872 年设计了如下的一个函数:  0 2 )2c os ()( k k xbaxW  13456 图 W(x) (a=,b=3) Weierstrass 证明了对某些 a和 b的值,该函数无处可微。 1916 年, Hardy证明了对满足上列条件的所有 a和 b的值, W(x)都是无处可微的。 W(x)的缺点是极难绘图,顾不够直观。 到 1904,瑞典数学家 von Koch 设 计了一条被称之为 Koch 曲线的图形,起设计步骤如下:设 E0 为单位区间 [0, 1],第一步,即 n=1,以 E0 的中间 1/3线段为底,向上作一个等边三角形,然后去掉区间 (1/3,2/3),得一条 4 折线段的多边形 E1。 第二步,既 n=2,对 E1 的四条折线段重复上述过程,得到一条 16折线段多边形 E2。 如图 a b 图 von Koch 曲线 Koch 雪花算法设计 不难想象,如果改变生成元 (如图 n=0),便可导至另外的曲线,图 便是一例。 利用这一生成元迭代的作下去,迭代步数记为 n,可以得到图 第 9 页 所示的结果。 当 n→∞时,生成的则是著名的 Koch 雪花。 假设生成元的顶点为 p0、 p p p3,其中 p0=p3,这样构成的等边三角形则是闭合的。 我们现在用 P=[p0 p1 p2 p3]来记录迭代过程中产生的新节点。 首先由 p0、 p1计算出 p p3, p4=ptemp* TA。 这里我们将 ptemp分解为 ptemp(1)和 ptemp(2)。 其中   )3/c os ()3/s in( )3/s in()3/c os (  A 主要算法如下: 取点 p0=(0,0),点 p1=(1,0) 如果令 P=[p0,p1],则有 p0=P(:,i)。 p1=P(:,i+1)。 下面由 p0、 p1计算其它点 p2=2*p0/3+p1/3。 p3=p0/3+2*p1/3。 ptemp=p3p2。 p4=[ptemp(1)*cos(pi/3)ptemp(2)*sin(pi/3)。 ptemp(1)*sin(pi/3)+ptemp(2)*cos(pi/3)]+p2。 由下面的 M 语句完成对过程中产生的新节点的保护工作。 Ptemp(:,flag)=p0。 Ptemp(:,flag+1)=p2。 Ptemp(:,flag+2)=p4。 Ptemp(:,flag+3)=p3。 n=0 n=1 第 10 页 n=2 n=10 图 Koch 曲线 如果改变变换矩阵中的旋转角度,将会产生另一张图形,见图。 这里我们将变换矩阵变为:   )4/c os ()4/s in( )4/s in()4/c os (  A 图 改变变换矩阵后的 Koch 雪花图 第 11 页 第四章 Frac_tree绘制 任意选定一个二维平面上的初始点坐标 (x0 ,y0 )。 假设我们可以生成一个在 [0, 1]区间上均匀分布的随机数  i ,那么根据其取值的大小,可以按下面的公式生成一个新的坐标点 (x1 ,y1 )。 )1,1( yx,)00(),00()00(),00(,01yyxxyxyyxxyxyyxxyyxiii 令新生成的点 (x1 ,y1 )为初始点 (x0 ,y0 ),可以再生成一个新的点,我们可以多次重复这样的过程,这样就可以生成一族坐标点。 假设我们想根据这样的方式产生 N个点,则可以由下面的 MATLAB 语句编写一个函数。 function [x,y]=frac_tree(x0,y0,v,N) x=[x0。 zeros(N1,1)]。 y=[y0。 zeros(N1,1)]。 for i=2:N vv=v(i)。 if vv, y(i)=*y(i1)。 elseif vv, x(i)=*(x(i1)y(i1))。 y(i)=+*(x(i1)+y(i1))。 elseif vv, x(i)=*(x(i1)+y(i1))。 y(i)=*(x(i1)y(i1))。 else, x(i)=*x(i1)。 y(i)=*y(i1)+。 end end 调用此函数,我们可以由下面的 MATLAB 命令生成 10000 个这样的点,并将这些点在 MATLAB 图形窗口中用点的形式表示出来,如图 所示。 N=10000; v=rand(N,1)。 [x,y]=frac_tree(0,0,v,N)。 h=plot(x(1:10000),y(1:10000),’ .’ ) set(h,’markersize’,4) 将 markersize 设置为 5; 第 12 页 set(h,’markersize’, 5) markersize=4 markersize=5 图 分形树。
阅读剩余 0%
本站所有文章资讯、展示的图片素材等内容均为注册用户上传(部分报媒/平媒内容转载自网络合作媒体),仅供学习参考。 用户通过本站上传、发布的任何内容的知识产权归属用户或原始著作权人所有。如有侵犯您的版权,请联系我们反馈本站将在三个工作日内改正。