揭秘"上帝的指纹":曼德博集合
翻译小组核心成员介绍
Alex,英语爱好者,现工作于洛阳
向海飞, 武汉市人,2002年华中理工大学应用电子技术专业本科毕业。现在洛阳工作。
文章: plus.maths.org/content/unveiling-mandelbrot-set
译者: Alex 校对: 向海飞 版面: 公理
接前一篇《"上帝的指纹" - 走进无限美妙的曼德博集合》. 上世纪七八十年代,动态系统领域的数学家们,借助电脑强大的运算能力,为研究对象作图,得到了令人震惊的结果:复杂而又美丽的类分形结构。这些结构仿佛出自上帝之手,其中曼德尔布罗特集格外引人注目,现如今它甚至在动态系统领域之外也赢得了声誉。本文带您开启曼德尔布罗特集的发现之旅,领略它极致的复杂之美。
图5:黑色区域即为曼德尔布罗特集—在黑色区域任意选取c值,则从初值0开始的函数x2+c的迭代轨迹将不趋于无穷大。曼德尔布罗特集关于x轴对称,它与x轴的交集位于区间-2到1/4之内。x轴上的原点位于主心形内,-1点位于主心形左侧的球形内。
球形和触角
Bulbs and antennas
图5初步展示了曼德博集合图像令人难以置信的复杂度。众所周知,无论曼德博集合图像被放大多少倍,它的边缘总是褶皱的。曼德博集合图像褶皱边缘的本质目前仍是数学领域尚待解决的重要问题之一。但是,我们可以肯定地说,曼德博集合图像的分形结构并非来自偶然:其每个细微之处都蕴含数学意义。
仔细观察曼德博集合图像,可见其中的主体结构像个平躺的心形。该结构由此被形象地称为“主心形”。“主心形”四周有无数的“装饰”。近距离观察会发现这些“装饰”形态各异。
<< 向左滑动查看下一张图片(共2张) >>
图6:曼德尔布罗特集“主心形”周围“装饰”的特写。2个“球形”直接和“主心形”相连。
曼德博集合中,和“主心形”直接相连的“装饰”称为“主球形”或“主装饰”。每个“主球形”都分别连接无数个更小的“球形”和类似“触角”的结构。尤其是图6中,与“球形”相连的“主触角”似乎由一些“触须”组成,且“触须”因“球形”而异。
“触角”上“触须”的数目,同函数 x² + c(c位于“主球形”之内)的迭代轨迹之间,存在奇妙联系。为看清此联系,从左图中跟“主心形”相连的大球形内选取 c 值,例如,取 c=-1.01,并设初始值为 0.0099,计算得出 x² -1.01 的迭代轨迹是一个周期为 2 的循环。
图中白色的点即为 c = -1.01。
前已论述,曼德博集合初始值0的轨迹极具代表性。此处亦取 0 为初始值,则:
像这样一直迭代。轨迹上的点越来越靠近一个周期为 2 的循环,但永远不会落在其上 — 数学家称初始值 0 的轨迹被周期为 2 的循环给“吸引”了。
不仅 c=-1.01 时如此,-1.01 所在的“球形”内的任何其他 c 值,均使函数 x² + c 的迭代轨迹以 2 为周期循环,且初始值 0 的迭代轨迹均趋近此循环。
所有主球形均存在类似结论:若 c 值位于某主球形内部,则初始值0的迭代轨迹趋于一个周期为 n 的循环。所有位于该主球形内的c值均得到相同的n值。数 n 被称该主球形的周期。要想验证此结论,请打开网站上的“曼德博集合迭代程序”(math.bu.edu/DYSYS/applets/M-setIteration.html)。这些程序由詹姆斯·丹威尔制作。在程序中点击曼德博集合,则初始值 0 的迭代轨迹将显示于左侧。你将看到,经历数次迭代后,轨迹开始循环。
<< 向左滑动查看下一张图片(共3张动图) >>
周期为 3, 4, 7 的动画
图7显示一些较大主球形的周期。网站上有程序可对此周期进行验证:只需在球形内点击选择一个 c 值,然后数循环内的点数(实为“触须”数目,下文将阐述其与球形周期间的联系)。
图7:球形周期
图8分别给出了周期为3,4,5,7的球形的特写(从左上开始顺时针方向)。请数与球形相连的最大触角的触须数量(不要漏掉主球形与触角节点之间的触须),可以看出,主球形周期和其触须数量关系密切:两者相等。
图8:不同球形及其周期。从上左开始顺时针方向:周期为3的球形,周期为4的球形,周期为5的球形,周期为7的球形。注意:球形周期等于主触角上触须数量。
对于那些没有直接与主心形相连的非主球形而言,存在相似的结论。此时,非主球形的球形周期是其触角上的触须的数量的倍数。
填充的朱利亚集
Filled Julia sets
有趣现象不只如此。有一种更形象的计算曼德博集合主球形周期的方法。为便于理解,我们引入填充的朱利亚集的概念。函数 x² + c 的填充的朱利亚集与其曼德博集合略有不同。对于曼德博集合而言,我们只计算每个 c 值初始值为 0 时的迭代轨迹,并显示其结果。若该轨迹不趋于无穷大,则该 c 值属于曼德博集合。曼德博集合是 c 平面内的一个图像。
对于填充的朱利亚集而言,我们选定一个c值,然后考察此c值下所有可用的初始值的迭代轨迹。其中轨迹不趋于无穷大的初始值构成填充的朱利亚集。正式定义如下:
选定一个 c 值后,函数 x² + c 的填充的朱利亚集是使其迭代轨迹不趋于无穷大的初始值的集合。
(注意:还有一个叫做朱利亚集(Julia set)的概念,其描述的是填充的朱利亚集(filled Julia set)的边界)
从上例可知,点 0 位于 x² + 0 的填充的朱利亚集内,因为初始值0的迭代轨迹恒定,哪儿也不去(当然不会趋于无穷大)。但是 0 却不在 x² + 1 的填充的朱利亚集内,因为其迭代轨迹趋于无穷大。
因此,不同的 c 值对应不同的填充的朱利亚集。本文以 Jc 代表 x² + c 的填充的朱利亚集。图9至12描述了不同 c 值的填充的朱利亚集。
图9:c = -1.037 + 0.17i的填充的朱利亚集,c值位于周期为2的球形内
图10:c = -0.52 + 0.57i的填充的朱利亚集,c值位于周期为5的球形内。
图11:c = 0.295 + 0.55i的填充的朱利亚集,c值位于周期为4的球形内。
图12:c = -0.624 + 0.435i的填充的朱利亚集,c值位于周期为7的球形内。
若想直观感受一下填充的朱利亚集,你可以尝试画出 c=0 的填充的朱利亚集,看看它是不是个圆盘形状。其实,若不借助计算机,大多数填充的朱利亚集不可能画得出来。
总结曼德博集合和填充的朱利亚集的差异如下:
曼德博集合
为 c 平面(亦称参数平面)内图形,
记录所有 c 值下 0 的迭代轨迹的趋势。
填充的朱利亚集
为 x 平面(动态平面)内图形,
记录定值 c 下 x² + c 的所有迭代轨迹的趋势。每个 c 值对应一个填充的朱利亚集。
(未完待续) 感谢支持遇见!