← 首页
New Zealand (NZ) — Secondary (Years 9–10); learner level: Years 9–10

分形:简单规则如何生成无限复杂的世界

一片雪花、一棵西兰花、一条海岸线——它们有什么共同点?把其中一小块放大,你会看到和整体几乎一模一样的图案。这种"部分即整体"的几何,就是分形(Fractal)。

什么是分形?

想象你手里有一片蕨类植物的叶子。仔细看,每一片小叶子都像整片叶子的缩小版;再看小叶子上的更小部分,又是同样的形状。这种性质叫做自相似(self-similarity):图形的局部在放大后与整体相似。

传统几何研究的是直线、圆、三角形这些"光滑"的形状。但自然界中很多事物——海岸线、云朵、闪电、血管——都不是光滑的,它们粗糙、破碎、充满细节。1975 年,法国数学家曼德博(Benoît Mandelbrot)创造了"分形"这个词(来自拉丁语 fractus,意思是"破碎的"),专门描述这类形状。

分形有一个惊人的特点:它往往不能用一维、二维、三维这样的整数来衡量。一条海岸线既不完全是一维的线(它弯弯曲曲填满了平面的一部分),也不是二维的面。分形维数(fractal dimension)可以是 1.5、1.26 这样的"分数"——这正是"分形"名字的由来之一。

分形通常由一个简单的规则反复执行得到,这个过程叫迭代(iteration)。规则很简单,重复很多次之后,却产生出复杂得不可思议的图案——这就是分形最迷人的地方:简单规则,无限复杂

科赫雪花:无限长的边界

科赫雪花(Koch snowflake)是最著名的分形之一,由瑞典数学家科赫(Helge von Koch)在 1904 年提出。它的生成规则只有三条:

  1. 从一条线段开始;
  2. 把线段三等分,把中间那段替换成向外凸起的两段等长线段(形成一个"小山峰");
  3. 对现在的每一条线段重复第 2 步,永远做下去。

每迭代一次,线段总数变为原来的 4 倍,而每条线段长度变为原来的 1/3。

下面的演示让你亲手控制迭代次数。拖动滑块,观察曲线如何从一条直线长成越来越复杂的"雪花的边缘"。注意:每次迭代后,曲线的总长度如何变化?

演示 1 · s2·b6

一个违反直觉的结论:科赫雪花的周长是无限的,但它的面积却是有限的

每次迭代,总长度乘以 。迭代 次后,长度是初始长度的 ——当 时,长度趋于无穷。

但面积每次只增加一点点(增加量构成一个等比数列,公比为 ),所以总面积收敛到一个有限值。一条无限长的线,围住了一块有限的土地——这就是分形几何的魔力。

谢尔宾斯基三角形:越挖越多的洞

谢尔宾斯基三角形(Sierpiński triangle)来自波兰数学家谢尔宾斯基(Wacław Sierpiński)。它的规则同样简单:

  1. 从一个实心三角形开始;
  2. 挖去三角形正中间的小三角形(连接三边中点得到);
  3. 对剩下的每个小三角形重复第 2 步。

每一步,图形面积减半,但小三角形的个数翻三倍。

用下面的按钮逐步迭代,看看一个完整的三角形如何一步步变成"镂空的花边"。你也可以观察:第 步有多少个实心小三角形?

演示 2 · s3·b10

谢尔宾斯基三角形还有一个有趣的来源:掷骰子也能画出来!这就是著名的"混沌游戏(Chaos Game)":

  1. 在三角形内任取一点;
  2. 随机选择三个顶点之一,把当前点与该顶点的中点标出;
  3. 把中点作为新的当前点,重复成千上万次。

你可能会以为随机过程会画出一片模糊的墨迹,但结果恰恰是谢尔宾斯基三角形!随机与秩序在这里奇妙地相遇了。

分形维数:介于 1 和 2 之间的形状

我们说一条线段是 1 维、一个正方形是 2 维。怎么用数字来"计算"维数呢?

把一条线段放大 3 倍,需要 3 条原线段才能拼回去;把正方形放大 3 倍,需要 个原正方形。规律是:

其中 是放大倍数, 是需要的小块数量, 就是维数。两边取对数,得到:

现在用这个公式检验科赫曲线:放大 3 倍后,需要 4 条原曲线拼回去(因为每段变成了 4 段),所以:

科赫曲线的维数约为 1.26——比线(1 维)"厚",比面(2 维)"薄"。同样可以算出谢尔宾斯基三角形的维数:放大 2 倍需要 3 个小块,所以

这个公式不只是数学游戏。测量真实海岸线时,用不同长度的尺子去量,得到的长度不同——尺子越短,量出的海岸线越长。用这个方法可以估算出真实海岸线的分形维数,比如英国海岸线约为 1.25,挪威峡湾海岸线高达 1.52。

用下面的图表直观比较几种图形的维数:普通图形的维数是整数,分形则落在整数之间。

自然中的分形:从蕨叶到血管

分形不是数学家的玩具,它就长在大自然里:

  • 植物:一棵树的主干分出几根枝,每根枝又分出更小的枝,形状层层相似;花椰菜(Romanesco 西兰花)的每个小塔尖都是整体的缩影。
  • 地理:河流水系、山脉轮廓、闪电的分叉,都呈现分形结构。
  • 人体:气管不断分叉成支气管、细支气管;血管网络用有限的体积覆盖整个身体——分形让表面积最大化。

为什么自然偏爱分形?因为分形结构高效:用最少的材料获得最大的表面积或覆盖范围,而且生成规则简单——生物的基因不需要存储每一根枝条的精确位置,只需存储"分叉规则",重复执行即可。

下面的演示用递归(recursion)画出一棵分形树:每根树枝按同样的规则分出更小的树枝。调整角度和分支数,看看能长出什么样的"树"。

演示 3 · s5·b21

分形还有许多实际应用:计算机图形学中用分形生成逼真的山脉和云;天线工程师设计出分形天线,让一根小小的天线能接收多种频段的信号;医学上用分形维数量化分析肿瘤血管的生长异常。

小测验

检验一下你对分形的理解:

QUIZ
科赫雪花的周长在迭代次数趋于无穷时会怎样?

每次迭代总长度乘以 4/3,即变为原来的 4/3 倍,因此迭代无穷多次后长度趋于无穷大。

再试一题:

QUIZ
谢尔宾斯基三角形的分形维数是多少?

谢尔宾斯基三角形放大 2 倍后需要 3 个原三角形拼回去,所以 d = log3/log2 ≈ 1.585。

最后一题:

QUIZ
下列哪一项是分形最核心的特征?

分形的核心性质是自相似:局部放大后与整体相似,由简单规则迭代生成。

总结

这一课我们学到了:

  • 分形(fractal)具有自相似性:局部放大后与整体相似。
  • 分形由简单规则的迭代生成:科赫雪花的"三等分加凸起"、谢尔宾斯基三角形的"挖去中间"。
  • 科赫雪花周长无限、面积有限;谢尔宾斯基三角形面积趋于零。
  • 分形维数 可以是分数,如科赫曲线的
  • 自然界广泛存在分形结构——树、海岸线、血管——因为分形规则简单且高效。

分形告诉我们:复杂不必来自复杂的规则。一条三行的指令,重复足够多次,就能生成无限精细的世界。

继续探索