分形的Mathematica实现.doc_第1页
分形的Mathematica实现.doc_第2页
分形的Mathematica实现.doc_第3页
分形的Mathematica实现.doc_第4页
分形的Mathematica实现.doc_第5页
已阅读5页,还剩3页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

分形的Mathematica实现学生姓名:贾俊锋 指导教师:李晓芬(太原师范学院数学系14023 山西太原030012)【内容提要】 本文主要叙述了分形的发展史和分形中的两类图形Mandelbrot集和Julia集及他们的Mathematica实现。第一部分为分形的发展史,着重叙述分形的几何特征。第二部分着重叙述Mandelbrot集和Julia集,以及Mathematica程序设计、运行结果。【关键词】 分形,Mandelbrot集,Julia集。分形是自然界的几何学。Mandelbrot(分形理论创始人)一、分形的发展史1.1 分形概念的提出与分形理论的建立分形在英文中为fractal,由美籍数学家Mandelbrot创造出来的,源于拉丁文(形容词)fractus,(动词)frangere它与英文的fraction(碎片)及fragment(碎片)具有相同的根。在20世纪70年代中期以前,Mandelbrot一直使用英文fractional一词来表示他的分形思想,因此,取拉丁词之头,撷英文之尾所合成的fractal ,本意是不规则、破碎的、分数的。Mandelbrot是想用此词描述自然界中传统欧氏几何学不能描述的一大类复杂无规的几何对象,例如:蜿蜒曲折的海岸线,起伏不定的山脉,粗糙不堪的断面,变幻无常的浮云。它们的特点:极不规则或极不光滑。1975年,Mandelbrot出版了他的法文专著分形对象:形、机遇与维数,标志着分形理论正式诞生。1977年,他又出版了该书的英译本。1982年Mandelbrot的另一历史著作大自然的分形几何与读者见面,该书虽然是前书的增补本,但在Mandelbrot看来却是分形理论的“宣言书”,而在分形迷的眼中,它无疑是一部“圣经”,该书从分形的角度考察了自然界中诸多现象,引起了学术界的广泛注意,Mandelbrot也因此一举成名。1.2 分形的几何特征Mandelbrot(1986年)曾经给分形下过这样一个定义:组成部分与整体部分以某种方式相似的形,也就是说:分形一般具有自相似性。然而理论发展到今天,不限于研究对象的自相似性质了,如果一个对象的部分与整体具有自仿射变换关系,我们也可以称它为分形。今后,条件可能进一步拓宽,只要部分与整体以某种规则联系起来,通过某种变换使之对应,我们可以将其看成分形,分形的本质就是标度变换下的不变性。1.2.1 自相似性自相似性便是局部与整体的相似。它的例子有Cantor 三分集、Koch 曲线、Sierpinski垫片。Cantor 三分集 大家都清楚它的构造,这里就不再叙述。Koch 曲线的构成如下:取一条欧氏长度为l的线段,将其三等分,保留两端,将中间改换为夹角为60的两个线段。对每一线段重复上述操作以至无穷,便得到一条具有自相似的折线,这就是Koch 曲线。(图1)Sierpinski垫片的构成如下:取初始图形等边三角形面。将这个等边三角形面四等分,得到4个小等边三角形面,去掉中间一个,将剩下的3个小等边三角形面分别进行四等分,再去掉中间的一个,重复以上操作直到无穷。(图2) 1.2.2 自仿射性自仿射性是自相似性的一种拓展。如果将自相似性看成是局部到整体性在各个方向上的等比例变换的结果的话,那么,自仿射性就是局部到整体在不同方向上的不等比例变换的结果,前者是自相似性变换,后者是自仿射性变换,图3表示相似变换与仿射变换的不同结果。1.2.3 精细结构分形还有一个更重要的特征:即精细结构。在理论上,Koch 曲线是按一定规则无限变化的结果,所以,如果有一个数学放大镜来看Koch 曲线的话,无论放大多少倍,都能看到里面还有与整体相似的结构。这一点,不由得使人想起了庄子天下篇中的“一尺之槌,日取其半,万世不竭”,这里我们不打算讨论物质是否无限可分,我们只是注意到分形和自然对象都具有极多层次的结构,这是分形体最基本特征,自然界中的对象与数学中的分形还是不一样的。如下图,可以看出分形的精细结构。1.2.4 分形维数对于欧几里得几何所描述的整形来说,可以由长度、面积、体积来测度。但用这种办法对分形的层层细节做出测定是不可能的。曼德尔布罗特放弃了这些测定而转向了维数概念。分形的主要几何特征是关于它的结构的不规则性和复杂性,主要特征量应该是关于它的不规则性和复杂性程度的度量,这可用“维数”来表征。维数是几何形体的一种重要性质,有其丰富的内涵。整形几何学描述的都是有整数维的对象:点是零维的,线是一维的,面是二维的,体是三维的。我们知道0维是点,一维是线,二维是面,三维是空间。那么,谁能告诉我1.5维是什么? 一条直线段是一维的,由四条这样的直线段组成的正方形是二维的。六个这样的正方形组成的正方体是三维的。直线的长度数值,正方形的面积数值和立方体的体积数值都和我们测量的单位有关。测量的单位也往往是我们所能分辨的最小单位。假设我们的分辨能力增加了一倍,因此我们把直线段长度单位减小到原单位的一半,直线段长度的计量值就变为原来的两倍,正方形面积就变为原来的四倍,体积则变为原来的八倍。我们有下式: log4/log2=2 log8/log2=3这里的二和三不是巧合,这是另一种维数的定义:测度维的概念。为了定量地描述客观事物的“非规则”程度,1919年,数学家从测度的角度引入了维数概念,将维数从整数扩大到分数,从而突破了一般拓扑集维数为整数的界限。如果某图形是由把原图缩小为1/的相似的b个图形所组成,有:D= D即维数:D=log/log (其中的为线度的放大倍数,K为“体积”的放大倍数)。我们还可以这样推广:如果把一个物体的边长分成n个相等的小线段,结果可得到与原物形状相同的m个小物体。把m写成以n为底的指数形式:m=nd (或d=1ogm/1ogn)则指数 d=1og m/1og n称为这个物体的维数。由于1ogm/1ogn不一定是整数,因此就会出现维数为分数的情况。例1 koch曲线,它的维数是d=1og4/1og31.26。例2 对于Sierpinski垫片,它的维数是d=1og3/1og21.58。1.3 分形与欧氏几何的区别 1 欧氏几何是规则的,而分形几何是不规则的。也就是说,欧氏几何一般是逐段光滑的,而分形几何往往在任何区间内都不具有光滑性。2 欧氏图形层次是有限的,而分形从数学角度讲是层次无限的。3 欧氏图形不会从局部得到整体的信息,而分形图形强调这种关系。4 欧氏图形越复杂,背后规则必定很复杂。而分形图形看上去很复杂,但是背后的规则往往很简单。5欧氏几何学描述的对象是人类创造的简单的标准物体。而分形几何学描述的对象是大自然创造的复杂是真实物。6欧氏几何学有特征长度,而分形几何学无特征长度。7欧氏几何学有明确的数学表达方式,而分形几何学用迭代语言表达。8欧氏几何学的维数是0及整数(1或2或3),而分形几何学一般是分数也可以是正整数。二、Mandelbrot集与Julia集 分形中的Mandelbrot集与Julia集的图像是美丽的,如果没有计算机,可以说,是不可能展现出分形的美。今天是网络时代,信息的发达使每个人能够获得知识,但对于分形的Mathematica程序实现方面是匮乏的,其他语言的实现可以找到,而本文是对分形的Mathematica程序实现方面做了一些工作。2.1 用到的函数其中出现的函数为Block,Abs ,DensityPlot。它们的作用如下:Blockx, y, , expr specifies that expr is to be evaluated with local values for the symbols x, y, .Absz gives the absolute value of the real or complex number zDensityPlotf, x, xmin, xmax, y, ymin, ymax makes a density plot of f as a function of x and y。空间密度画图函数,画出f(x,y)在a,b*c,d上的密度图。2.2 Mandelbrot集热情的赞赏者常常说:Mandelbrot集是最复杂的数学对象,即使用无限的时间也不足以观察它的全貌。那饰以多姿多彩荆棘的圆盘,那弯曲缠绕的螺线和细丝,那挂着微细颗粒的鳞茎,那无穷尽的斑驳的色彩,那好像是上帝葡萄藤上的累累果实。Mandelbrot集显示了分形之美。Mandelbrot集成为了分形、混沌的一种国际标志。2.2.1概念介绍Mandelbrot集图形非常地美丽,但他的生成原理却十分的简单。这也许体现了数学的简单和谐之美。对进行这样的迭代:Zn+1 =Z2n +C , 给定为一个初始的复数,而对不同的C,迭代序列Znn=0有界的所有C值构成的集合,即MZ0 =C|迭代序列Znn=0有界,则称MZ0在复平面上构成的集合为Mandelbrot集。2.2.2程序设计为了更好的编程绘制Mandelbrot集并实现其高阶的迭代,先设如下:1 选定参数Z=cx+cy*I,xmin=ymin= -1.5, xmax=ymax=1.5,取方程为Zn+1 =Znk+C*Z进行迭代。2 Z的模小于2,迭代次数不超过50。3 对于Z在平面上表示时,设xx为x的初始迭代坐标,yy为y的初始迭代坐标坐标表示。4 所取的变量范围为(cx,cy),分别为x与y的范围,迭代次数为n。 Mandelbrot集的Mathematica的程序Fx1x_, y_, cx_, cy_, n_ := Blockz, ct = 0, z = x + y*I; While(Absz 2.0) & (ct False, ColorFunction - Hue; (*图象设定*)Returnkok 取迭代方程为Z =Z2 +C,变量范围为x,-1.5,0.5,y, -1.2, 1.2,并画出区域x, 0.2, 0.4, y, -0.1, 0.1M1=Ht11,0,2,x,-1.5,0.5,y, -1.2, 1.2, PlotPoints-120, PlotLabel - Mandelbrot1;取迭代方程为Z =Z2 +C,变量范围为x, 0.2, 0.4, y, -0.1, 0.1,为上图的局部放大图。M11 = Ht11, 0, 2, x, 0.2, 0.4, y, -0.1, 0.1, PlotPoints - 120, PlotLabel - x,0.2,0.4,y,-0.1,0.1; 这是Mandelbrot集,右边为前面的局部放大图 “ ColorFunction - Hue”为着色函数,如果没有ColorFunction - Hue,图像为黑白的。2.3 Julia集2.3.1概念介绍 Graston Julia(1893-1978),法国数学家,1919年研究迭代保角变换ZN+1=ZN2+c,能产生令人眼花缭乱的图案,由于当时没有计算机,不能象今天把如此美妙绝伦的图案奉献于世界。对进行这样的迭代:Zn+1 =Z2n +C , 给定为一个初始的复数,迭代序列 Znn=0可能有界,也可能发散到无穷。令Jc是使迭代序列Znn=0有界所有构成的集合,即Jc= |迭代序列Znn=0有界,则称Jc在复平面上构成的集合为Julia集。Julia集和Mandelbrot集可以说是一对孪生兄弟。2.3.2程序设计Julia集图形的画法自然和Mandelbrot集的画法一样,只是初始条件和边界条件还有迭代变量稍有不同。Julia集实际上是Mandelbort集的子集,它对应于Mandelbort集内、集外的每个点,所以Julia集是不计其数的。Julia集绘制方法和Mandelbort集完全一样,是用同样的迭代公式实现。不同的是,Mandelbort集固定为零,变化c,考察迭代计算结果,根据结果给c点位置着色,从而绘出图形。而Julia集则是固定c,变化,同样根据迭代结果给点位置着色而绘出图形。因此根据不同的c值,可以得到形态各异的图形。为了更好的编程绘制Julia集并实现其高阶的迭代,先设如下:(1) 取方程为Zn+1 =Znk+C进行迭代。 (2) Z的模小于2,迭代次数不超过50。(3) 对于Z在平面上表示时,设xx为x的初始迭代坐标,yy为y的初始迭代坐标坐标表示。所取的变量范围为(cx,cy),分别为x与y的范围,迭代次数为n。Fx2x_,y_,cx_,cy_,n_:=Blockz,ct=0,z=x+y*I; While(Absz 2.0) & (ct False, ColorFunction - Hue; (*着色函数,如果没有ColorFunction - Hue,图像为黑白*)Returnkok取迭代方程为Z =Z2 +C,固定C值为0.27334+0.00742i变量范围为x,-1,1,y, -1.3, 1.3,并画出区域x, 0.4, 0.8, y, -0.3, 0。J1=Ht20.27334, 0.00742,2, x, -1, 1, y, -1.3, 1.3,PlotPoints - 120, PlotLabel - XShowJ1, Graphics Line0.4, -0.3, 0.4, 0, 0.8, 0, 0.8, -0.3, 0.4, -0.3 取迭代方程为Z =Z2 +C,固定C值为0.27334+0.00742i变量范围为x, 0.4, 0.8, y, -0.3, 0。Ht20.27334, 0.00742, 2, x, 0.4, 0.8, y, -0.3, 0, PlotPoints - 120, PlotLabel - x,0.4,0.8,y,-0.3,0 “ ColorFunction - Hue”为着色函数,如果没有ColorFunction - Hue,图像为黑白的。Ht2cx_,cy_,n_,pu_List,po_List,pl_List中, n为迭代的次数, (cx ,cy)为初始条件中固定c值,pu_List为复平面上x的范围,po_List为复平面上y的范围。2.4 进一步研究MZ0 =C|迭代序列Znn=0有界, Jc= |迭代序列Znn=0有界。对于这两个集,Mandelbrot 集由Jc 的参数构成,Julia集由MZ0的参数构成。也就是说,Mandelbrot 集与Julia集紧密联系着。 根据c点在Mandelbrot 集中的位置就能够预测与之相关的Julia集的外形及大小,从而可以得迭代的一般情况程序绘出的图形非常美丽,我们进而又思考,如果每次迭代时取的3次,4次,5次,6次(这样的详尽命令可在光盘中的2.1,2.2等),会是什么样图形呢?会不会画出的图形混沌而没有规律呢?只要对程序中的n值进行赋值就可以了。如果每次迭代时取的1/3次,2/3次,1次,4/3次,5/3次,7/3次会是什么样图形呢?会不会画出的图形混沌而没有规律呢?(这样的详尽命令可在光盘中的3.1,3.2等) 在Mandelbrot集的Mathematica的程序中,在Ht1cx_, cy_, n_, pu_List, po_List, pl_List;,对n进行不同赋值,可得的迭代的指数不同Mandelbrot集。对于Julia集,在它的Mathematica的程序中,在Ht2cx_, cy_, n_, pu_List, po_List, pl_List;,对n进行不同赋值,(cx ,cy)赋于不同c值,可各式各样的Julia集。参数的不同,产生的图形是不同的,如果要得到更多的图形,可以进行不同的赋值。如命令:M2=Ht11,0,3, x, -1, 1, y, -1.2, 1.2, PlotPoints -120, PlotLabel - Mandelbrot2;M3=Ht11,0,4,x,-1.3,0.9,y,-1.2,1.2,PlotPoints-120, PlotLabel-Mandelbrot3;M4=Ht11,0,5,x,-1,1,y,-1,1,PlotPoints-120,PlotLabel-Mandelbrot4;M5=Ht11,0,6,x,-1,1,y,-1.1,1.1,PlotPoints-120,PlotLabel-Mandelbrot5;J2=Ht2-0.10256, 0.70486, 2, x, -1.5, 1.5, y, -1.5, 1.5,PlotPoints - 120, PlotLabel - Hare J3=Ht20.54496, 0.45559, 3, x, -1.5, 1.5, y, -1.5, 1.5, PlotPoints - 200, PlotLabel - 龙 J4=Ht20.69455, 0.28586, 4, x, -1, 1, y, -1, 1,PlotPoints - 200, PlotLabel - HitlerJ5=Ht20.340652, 0.7033651, 5, x, -1.5, 1.5, y, -1.5, 1.5, PlotPoints - 200, PlotLabel - FlowerJ6=Ht20.73251, -0.414193, 6, x, -1.5, 1.5, y, -1.5, 1.5,PlotPoints - 200, PlotLabel - Start(Julia集的命令是参考了一些书籍中C值的参数)下面给出这些命令的图形 所以说Mandelbrot 集是一本可以查阅所有Julia集的词典从2至6阶的Mandelbrot 集与Julia集 (上方为Mandelbrot 集下方为Julia集)21世纪是信息的时代,计算机已深深的渗入我们的工作的各个方面,尤其是一些高科技方面,大量的信息处理,更离不开计算机,本文应用了计算机,并用Mathematica程序展现了一些美丽的分形图形,这是一种有益的尝试,希望能够抛砖引玉,在分形的研究方面起的发挥一些作用。 【参考文献】孙博文分形算法与程序设计北京:科学出版社 2004李水根,吴纪桃分形与小波北京:科学出版社 2002齐东旭分形与其计算机生成北京:科学出版社 1994李水根分形北京:高等教育出版

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论