分形图形的Mathematica绘制
2014-04-22闫晓芳
陈 颂 闫晓芳
(永城职业学院 基础中专部,河南 永城476600)
什么是分形几何?通俗一点说就是研究无限复杂但具有一定意义下的自相似图形和结构的几何学。“分形”一词译于英文Fractal,系分形几何的创始人曼德尔布罗特于1975年由拉丁语Frangere一词创造而成,词本身具有“破碎”、“不规则”等含义。Mandelbrot研究中最精彩的部分是1980年他发现的并以他的名字命名的集合,Mandelbrot集合图形的边界处,具有无限复杂和精细的结构。
近年来,许多专家学者投入到分形的研究之中,例如,朱华、姬翠翠[1]在分形理论及其应用中系统阐述了分形的理论知识和应用领域;高剑波[2]则针对理论如何与现实结合的问题展开了讨论。本文在现有研究的基础上,分析总结了不同的算法下,Mathematica程序编译、绘制的分形图形。本文的图形均由Mathematica绘制而成。
绘制分形图形主要有两种方法:
1 逃逸时间算法
假设有一个充分大的整数N,当未逃逸区域M中的初始点a经过小于N次迭代就达到未逃逸区域M的边界,甚至超出了边界,我们就认为点a逃逸出去了;而如果经过N次迭代后a的轨迹仍未达到M的边界,我们就认为a是A上的点。用这样的方法绘制出A的边界图形,这便是逃逸时间算法的基本思想。
以下是Mathematica用逃逸时间算法绘制M集图形的程序:
Mandelbrot[zc_]:=Module[{z=0,i=0},While[i<100&&Abs[z]<2,z=z^2+zc;i++];i];
迁安海绵城市建设思路与创新模式研究 ……………………………………………………………………………… 孙迎春(4/49)
DensityPlot[Mandelbrot[xc+I yc],{xc,-2,1},{yc,-1.5,1.5},PlotPoints->100]
我们可以看出,相对于其它软件,Mathematica非常适宜绘制分形图形,它的程序可以非常简单。绘制的图形如下:
图1 Mandelbrot集
2 迭代函数系统法
迭代函数系统(IFS Iterated Function System,IFS)是生成分形吸引子的经典方法,它所创建的分形图永远是绝对自相似的。迭代函数系统仿射变换典型的变换是移动,反射或翻转,缩放,旋转和剪切仿射变换。
谢尔宾斯基三角形(Sierpinski triangle)是一个非常有趣的图案,有着悠久的历史,在分形几何中等领域里引起了人们极大地兴趣,是用递归和随机方式定义的几何形状,在极限情况下,它所表现的性质并没有随机性。
生成算法如下:
(1)在三角形内部随机选取一个点作为初始点;
(2)在三角形的3个顶点中随机选取一个,求出该顶点与初始点连线的中点,画出该中点;
(3)将(2)中的中点作为初始点,转到(2)。
绘制谢尔宾斯基三角形的Mathematica程序如下:
With[{n=7},
Nest[(#/.poly :Polygon[pts_,___]:>
Function[p,Translate[Scale[poly,1/2,{0,0}],p/2]]/@pts)&,
Graphics[{Hue@Random[],
Polygon@{{Sqrt[3]/2,-(1/2)},{0,1},{-(Sqrt[3]/2),-(1/2)}}}],n-1]]
绘制的图形如下:
图2 谢尔宾斯基三角形
雪花曲线也是重要的分形曲线,我们列出程序,读者可以依照程序得出相应的图案:
g[l_]:=Flatten[
Replace[l,{u_->{u,Mod[u-1,6],Mod[u+1,6],u}},{1}],1];
list1={0,2,4};
ListLinePlot[
Prepend[Accumulate[
Replace[Nest[g,list1,5],{0->{1,Sqrt[3]},1->{2,0},
2->{1,-Sqrt[3]},3->{-1,-Sqrt[3]},4->
{-2,0},
5->{-1,Sqrt[3]}},{1}]],{0,0}],Axes->False,
AspectRatio->Automatic,AxesOrigin->{0,0}]
分形图形的算法有很多,而数学软件Mathematica非常适宜绘制分形图形,它的程序可以非常简单,运算速度也非常快,这种简洁、有效会给我们的学习和研究带来很大便利,也契合数学应用的精神。
[1]朱华,姬翠翠.分形理论及其应用[M].北京:科学出版社,2011.
[2]高剑波.复杂系统和涌现:理论如何与现实结合[J].力学进展,2013,43(4):359-389.
[3]林秋达.基于三维 IFS 算法的建筑分形设计[J].世界建筑,2013(9):106-109.
[4]靳晓晓;陈晨.分形开拓数字化图形设计新思路[J].包装工程,2013(22):9-12.