欢迎来到论文网! 识人者智,自知者明,通过生日认识自己! 生日公历:
网站地图 | Tags标签 | RSS
论文网 论文网8200余万篇毕业论文、各种论文格式和论文范文以及9千多种期刊杂志的论文征稿及论文投稿信息,是论文写作、论文投稿和论文发表的论文参考网站,也是科研人员论文检测和发表论文的理想平台。lunwenf@yeah.net。
您当前的位置:首页 > 科技论文 > 计算机论文

用Mathematica7.0实现二维分形图

时间:2011-04-23  作者:秩名

论文导读:如果每次迭代时取的3次,4次,5次,6次会是什么样图形呢?会不会画出的图形混沌而没有规律呢?只要对程序中的n值进行赋值就可以了。可以用以上图5、图6所示的分形图看出。迭代,用Mathematica7.0实现二维分形图。
关键词:分形,迭代,Mandelbrot集,Julia集
 

1 分形

分形理论是当今世界十分风靡和活跃的新理论、新学科。1967年美籍科学家

Mandelbrot在美国权威的《科学》杂志上发表了题为《英国的海岸线有多长?》的著名论文。早20世纪70年代中期以前,Mandelbrot一直使用英文fractional一词来表示他的分形思想,因此,取拉丁词之头,撷英文之尾所合成的fractal,本意是不规则,破碎的,分数的。Mandelbrot是想用此词描述自然界中传统欧式几何学不能描述的一大类复杂无规的几何对象,例如:蜿蜒曲折的海岸线,起伏不定的山脉,粗糙不堪的断面,变幻无常的浮云。它们的特点:极不规则或极不光滑[1]。

1.1 分形维数

对于欧几里得几何所描述的整形来说,可以由长度、面积、体积来测度。论文发表,迭代。但用这种办法对分形的层层细节做出测定是不可能的。曼德尔布罗特放弃了这些测定而转向了维数概念。分形的主要几何特征是关于它的结构的不规则性和复杂性,主要特征量应该是关于它的不规则性和复杂性程度的度量,这可用“维数”来表征。维数是几何形体的一种重要性质,有其丰富的内涵。整形几何学描述的都是有整数维的对象:点是零维的,线是一维的,面是二维的,体是三维的。我们知道0维是点,一维是线,二维是面,三维是空间。论文发表,迭代。那么,谁能告诉我1.5维是什么? 一条直线段是一维的,由四条这样的直线段组成的正方形是二维的。六个这样的正方形组成的正方体是三维的。直线的长度数值,正方形的面积数值和立方体的体积数值都和我们测量的单位有关。测量的单位也往往是我们所能分辨的最小单位。假设我们的分辨能力增加了一倍,因此我们把直线段长度单位减小到原单位的一半,直线段长度的计量值就变为原来的两倍,正方形面积就变为原来的四倍,体积则变为原来的八倍。我们有下式:

迭代log4/log2=2

log8/log2=3

这里的二和三不是巧合,这是另一种维数的定义:测度维的概念。论文发表,迭代。为了定量地描述客观事物的“非规则”程度,1919年,数学家从测度的角度引入了维数概念,将维数从整数扩大到分数,从而突破了一般拓扑集维数为整数的界限[1]。

如果某图形是由把原图缩小为1/λ的相似的b个图形所组成,有:λ^D=k。论文发表,迭代。

D即维数:

D=logk/logλ(其中的λ为线度的放大倍数,K为“体积”的放大倍数)。

我们还可以这样推广:如果把一个物体的边长分成n个相等的小线段,结果可得到与原物形状相同的m个小物体。把m写成以n为底的指数形式:m=n^d (或d=1ogm/1ogn)则指数d=1og m/1og n称为这个物体的维数。由于1ogm/1ogn不一定是整数,因此就会出现维数为分数的情况。

例如: koch曲线,它的维数是d=1og4/1og3≈1.26。Sierpinski垫片,它的维数是d=1og3/1og2≈1.58[1]。

2 Mandelbrot集与Julia集的Mathematica实现

Mandelbrot集与Julia集都是用迭代法作出的分形图,Mandelbrot集的迭代函数是

,而Julia集的迭代函数是,其中为任意的复常数[1],使用迭代法,编写了Mandelbrot集和Julia集的Mathematica程序。Mandelbrot集非常奇特,但它的生成原理却十分简单。这也学体现了数学的简单和谐之美。对进行这样的迭代:,给定为一个初始的复常数,而对不同的,迭代序列有界的所有值构成的集合,即迭代,则称在复平面上构成的集合为Mandelbrot集[1]。

2.1 程序设计

为了更好的编程绘制Mandelbrot集与Julia集并实现其高阶的迭代,先设如下:

1、选定参数,取方程为

进行迭代。论文发表,迭代。

2、的模小于2,迭代次数不超过50。

3、对于在平面上表示时,设xx为x的初始迭代坐标,yy为y的初始迭代坐标坐标表示。

4、所取的变量范围为(cx,cy),分别为x与y的范围。

Mandelbrot集的Mathematica程序

Mandelbrot [x_, y_, cx_, cy_, n_] := Block[{z, ct = 0}, z = x + y*I;While[(Abs[z] < 2.0) && (ct < 50), ++ct; z = z^n + (cx + cy*I)*(x+ y*I)]; Return[ct]]

Fx1[cx_, cy_, n_, pu_List, po_List, pl_List]:=Block[{kok},kok = DensityPlot[Mandelbrot [xx, yy, cx, cy, n], {xx, pu[[2]],pu[[3]]},{yy, po[[2]], po[[3]]},pl,Mesh -> False, ColorFunction ->Hue];Return[kok]]

取迭代方程为Z =Z2 +C,变量范围为{x,-1.5,0.5},{y,-1.2, 1.2},并画出区域{x, 0.2, 0.4}, {y, -0.1, 0.1}

Md1=Fx1[1,0,2,{x,-1.5,0.5},{y, -1.2, 1.2},{PlotPoints->120, PlotLabel -> 'Mandelbrot'}]

Show[Md1, Graphics[Line[{{0.2, -0.1}, {0.2, 0.1}, {0.4,0.1}, {0.4, -0.1}, {0.2, -0.1}}]]]

取迭代方程为,变量范围为{x, 0.2, 0.4}, {y, -0.1, 0.1},为上图的局部放大图。

Md2=Fx1[1,0,2,{x,0.2,0.4},{y,-0.1,0.1},{PlotPoints->120,PlotLabel->''Mandelbrot'}'}]

迭代

图1 Mandelbrot集图2 前面的局部放大图

Julia集的Mathematica程序

Julia[x_,y_,cx_,cy_,n_]:=Block[{z,ct=0},z=x+y*I;While[(Abs[z] < 2.0) && (ct < 50), ++ct; z = z^n + cx +cy*I];Return[ct]; ]

Fx2[cx_,cy_,n_,pu_List,po_List,pl_List]:=Block[{kok},kok= DensityPlot[Julia[xx, yy, cx, cy, n], {xx, pu[[2]],pu[[3]]}, {yy, po[[2]], po[[3]]}, pl, Mesh -> False, ColorFunction ->Hue];Return[kok]]

Ju1=Fx2[0.27334, 0.00742,2, {x, -1, 1}, {y,-1.3, 1.3},{PlotPoints -> 120, PlotLabel -> 'Julia'}]

Show[Ju1,Graphics[Line[{{0.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}。为上图的局部放大图。

Ju2=Fx2[0.27334,0.00742,2,{x,0.4,0.8},{y,-0.3,0},{PlotPoints->120,PlotLabel->'Julia'}]

图3 Julia集图4 前面的局部放大图

程序绘出的图形非常美丽,我们进而又思考,如果每次迭代时取的3次,4次,5次,6次会是什么样图形呢?会不会画出的图形混沌而没有规律呢?只要对程序中的n值进行赋值就可以了。

对于Mandelbrot集和Julia集的Mathematica的程序中,在Fx1[cx_,cy_, n_, pu_List, po_List, pl_List]和Fx2[cx_,cy_,n_,pu_List,po_List,pl_List],对n进行不同的赋值,(cx,cy)赋于不同c值,可各式各样的Mandelbrot集和Julia集。论文发表,迭代。参数的不同,产生的图形是不同的,如果要得到更多的图形,可以进行不同的赋值。M2=Fx2[1,0,3, {x, -1, 1}, {y,-1.2, 1.2}, {PlotPoints ->120, PlotLabel -> 'Mandelbrot2'}];

M3=Fx3[1,0,4,{x,-1.3,0.9},{y,-1.2,1.2},{PlotPoints->120,PlotLabel->'Mandelbrot3'}];

M4=Fx4[1,0,5,{x,-1,1},{y,-1,1},{PlotPoints->120,PlotLabel->'Mandelbrot4'}];

 

查看相关论文专题
加入收藏  打印本文
上一篇论文:用Authorware实现CAI课件中声音的交互播放(图文)
下一篇论文:用户级软件重放工具Jockey研究
科技论文分类
科技小论文 数学建模论文
数学论文 节能减排论文
数学小论文 低碳生活论文
物理论文 建筑工程论文
网站设计论文 农业论文
图书情报 环境保护论文
计算机论文 化学论文
机电一体化论文 生物论文
网络安全论文 机械论文
水利论文 地质论文
交通论文
相关计算机论文
最新计算机论文
读者推荐的计算机论文