配色: 字号:
利用数学软件Mathematica制作分形几何图形
2012-08-13 | 阅:  转:  |  分享 
  
收稿日期:2011—02—10

作者简介:罗平(1983—),女,(回族),云南昆明人,兴义民族师范学院数学系教师,硕士研究生,

主要从事分形几何方面的研究。

在我们生活的大千世界里,除了有像房屋建

筑、公路桥梁、汽车、飞机、轮船以及各种劳动生活

工具等这些人造的形态规则的几何体之外,更广

泛地充满了诸如花草树木、山川河流、烟雾云彩等

形态极不规则的几何体。如何研究这些不规则图

形的几何特性成为数学界关注的一个课题。1967

年美国科学家B.Mandelbrot在美国权威的《科学》

杂志上发表了题为《英国的海岸线有多长?》的著

名论文。海岸线作为曲线,其特征是极不规则、极

不光滑的,呈现极其蜿蜒复杂的变化。我们不能从

形状和结构上区分这部分海岸与那部分海岸有什

么本质的不同,这种几乎同样程度的不规则性和

复杂性,说明海岸线在形貌上是自相似的,也就是

局部形态和整体形态的相似。在没有建筑物或其

他东西作为参照物时,在空中拍摄的100公里长

的海岸线与放大了的10公里长海岸线的两张照

片,看上去会十分相似。事实上,具有自相似性的

形态广泛存在于自然界中,如:连绵的山川、飘浮

的云朵、岩石的断裂口、布朗粒子运动的轨迹、树

冠、花菜、大脑皮层……。B.Mandelbrot把这些部分

与整体以某种方式相似的形体称为分形(fractal)。

1975年,他创立了分形几何学(fractalgeometry)。在

利用数学软件Mathematica制作分形几何图形

罗平

(兴义民族师范学院,贵州兴义562400)

摘要:利用Mathematica软件的数值计算功能、符号运算功能和图形程序设计功能,以简单的程序

实现了迭代分形算法成功绘制了分形几何中的Koch曲线和Sierpinski三角形,并且给Mathematica程

序及运行结果,体现了Mathematica软件在实现分形算法方面的优越性。

关键词:分形几何;Koch曲线;Sierpinski三角形;Mathematica软件

文章编号:1009—0673(2010)03—0093—03中图分类号:TP391.41文献标识码:

MakingUseofMathematicatoDrawFractalGeometryFigure

LUOPing

(XingyiNormalUniversityforNationalities,Xingyi,Guizhou562400,China)

Abstract:WehavesuccessfullydrawnseveralfractalfiguresandgiventherelevantprogramsKochcurveandSierpinski

trianglebyusingtheMathematica''sfunctionsinnumericalcomputation,symboliccalculationandprogramming,thusrealizediterate

algorithmsbysimpleprogram,andgaveMathematicaprogramandpresentedtheresults,thispapershowstheadvantageof

Mathematicainrealizingfractalalgorithms.

Keywords:fractalgeometry;Kochcurve;Sierpinskitriangle;Mathematica

2011年6月兴义民族师范学院学报June2011

第3期JournalofXingyiNormalUniversityforNationalitiesNo.3

93··

此基础上,形成了研究分形性质及其应用的学科,

称为分形理论(fractaltheory)。分形几何学把自然形

态看作是具有无限嵌套层次的精细结构,并且在

不同尺度下保持某种相似的属性,于是在简单的

迭代过程中就可以得到复杂的自然形态的有效方

法。

典型的分形集一般具有如下几个特征:(1)具

有精细的结构,即有任意小比例的细节;(2)分形

是如此的不规则以至它的整体和局部都不能用传

统的几何语言来描述;(3)具有某种自相似的形

式,可能是近似的或是统计的;(4)通过递归、迭代

等简单的方式产生;(5)其分形维数大于拓扑维

数。实际上,分形体系内任何一个相对独立的部

分,在一定程度上都是整体的再现和缩影。构成分

形整体的相对独立的部分称为生成元或分形元。

任何一个分形,都具有无穷多个分形元。对整体的

无限细分,所形成的无数分形元,构成了分形图形

的整体。通常分形都是极度对称的,对称到完美的

地步,但生成这种图形不需要复杂的程序,因为他

们具有无限的细节表面,可以使用递归的算法来

实现。

Mathematica是Wolfram公司研制开发的数

学软件。它的使用者是从事教育数学研究和应用,

数学教学和理论研究的数学工作者和其它科研人

员,也包括工程技术人员和数学及科技爱好者。

Mathematica的主要特点:(1)友好的操作和编辑

界面:Mathematica提供了较完善的数学符号模块

及函数功能。(2)较强的数值计算功能:能解决教

育数学及数学各科中高精度的计算问题。(3)较强

的图形和多媒体功能:能根据表达式和预先设定

的制图要求,自动生成彩色的一维、二维、三维图

形及动画和声音。(4)很好的符号计算功能:符号

计算功能,也称为计算机代数功能.计算机处理数

据后的结果可以是符号表达式。(5)较好的编程系

统:具有比较丰富的程序流程、循环结构、控制函

数与控制结构,适于编制各种教育数学课件和开

发数学软件,并能解决某些科学计算和难题。本文

研究用Mathematica软件编程制作Koch曲线和

Sierpinski三角形。

一、Koch曲线

给定一条直线段,将该直线三等分,并将中间

的一段用以该线段为边的等边三角形的另外两条

边替代,得到图形(如图1所示)。然后,在对图形

中的每一小段都按照上述方式修改,以致无穷。则

最后得到的极限曲线即是所谓的Koch曲线。

图1第一次迭代

图2第二次迭代

图3第三次迭代

图4第四次迭代

这种迭代继续下去可得Koch分形曲线,图1

所示的简单曲线被称为Koch曲线的生成元,在

迭代过程中,曲线最终显示细节的多少将取决于

迭代次数和显示系统的分别率。

Mathematica程序实现:

redokoch[ptlist_List]:=

Block[{tmp={},i,pnum=Length[ptlist]},

For[i=1,i
ptlist[[i]]2/3+ptlist[[i+1]]/3,

(ptlist[[i]]+ptlist[[i+1]])/

2+{ptlist[[i]][[2]]-ptlist[[i+1]][[2]],

ptlist[[i+1]][[1]]-ptlist[[i]][[1]]}Sqrt[3]/6,

ptlist[[i]]/3+ptlist[[i+1]]2/3,

ptlist[[i+1]]}]];tmp]

Inko01={{0,0},{1,0}};

Show[Graphics[Line[Nest[redokoch,Inko01,5]],

2011年兴义民族师范学院学报第3期

94··

AspectRatio→Sqrt[3]/6]]

程序运行后可得到如下图形:

可以发现经无穷多次迭代的Koch曲线是处

处连续,且处处不可微的,并具有局部形状与整体

形状自相似的明显特征。

二、Sierpinski三角形

俄罗斯数学家Sierpinski构造了一批千窗百

孔的平面与立体图形,它们分别称之为Sierpinski

三角形、地毯及海绵等。Sierpinski三角形的构造

方法是取一个等边三角形,将其四等分,得到四个

较小的三角形。然后舍去中间一个三角形,保留周

围的三个三角形。此后再将这三个较小的三角形

按上述分割与舍去法则,进一步操作下去,得到一

种介于线段与面之间的几何图形。

Sierpinski三角形Mathematica程序实现:

redosierpinski[ptlist_List]:=

Block[{tmp={},i,pnum=Length[ptlist]/3},

For[i=0,i
(ptlist[[3i+1]]+ptlist[[3i+2]])/2,

(ptlist[[3i+1]]+ptlist[[3i+3]])/2,

(ptlist[[3i+1]]+ptlist[[3i+2]])/2,

ptlist[[3i+2]],

(ptlist[[3i+2]]+ptlist[[3i+3]])/2,

(ptlist[[3i+1]]+ptlist[[3i+3]])/2,

(ptlist[[3i+2]]+ptlist[[3i+3]])/2,

ptlist[[3i+3]]}]];

tmp]

showsierpinski[ptlist_List]:=

Block[{tmp={},i,pnum=Length[ptlist]/3},

For[i=0,i
AppendTo[tmp,

Polygon[{ptlist[[3i+1]],

ptlist[[3i+2]],ptlist[[3i+3]]}]]];

Show[Graphics[tmp],AspectRatio→1/GoldenRatio]

]po1={{-1,0},{1,0},{0,Sqrt[3]}};

showsierpinski[Nest[redosierpinski,po1,4]]

以下是迭代次数k=1,2,3,4得到的图形:

图5

图6

图7

图8

分形几何还有许多经典的图形如:龙曲线、

Hilbert曲线等,从事分形创作的人要研究产生这

些图形的算法,这些算法产生的图形是无限的。通

过这些图形人们发现客观自然界中许多事物,具

有自相似的“层次”结构,在理想情况下,甚至具有

无穷层次。适当的放大或缩小几何尺寸,整个结构

并不改变。不少复杂的物理现象,背后就是反映着

这类层次结构的分形几何学。

参考文献:

[1]FalconerK.J.分形几何—数学基础及其应

用[M].曾文曲,刘世耀,戴连贵和高占阳译.沈阳:

东北大学出版社,1991.

[2]李尚志,陈发来等.数学实验[M].高等教育

出版社,1999.

责任编辑:王家鑫

2011年罗平利用数字软件Mahtematica制作分形几何图形第3期

95··

献花(0)
+1
(本文系逍遥游1212首藏)