最近我在 Instagram 上分享的几个视频达到了一个小的里程碑,触达了超过10万个用户。它们不是普通的社交媒体内容,而是一些数学系统,特别是混沌系统的可视化结果。你可以在我的 Instagram 上看到这些内容:
这个项目源于我个人对数学可视化的一些探索,灵感来自于我在微分方程课程中发现的一些非常有意思的工作。我想在这里简单介绍一下这些图像是什么以及它们是怎样制作的。
这些“跳跃的点”是什么?
简单来说,我研究(并创建可视化)的是一些数学系统。想象一个平面上的点 ,我们对它应用一个特定的数学规则(一个方程或一组方程),从而得到一个新的点 。
现在,将新点 再次作为输入,用相同的规则得到另一个新点 。如果我们不断重复这个过程,点就会在平面上“跳跃”。用更专业的术语来说,我研究的是“二维离散动力系统”。
许多这类系统的行为是可以预测的。点可能会趋向于无穷远处,或者收敛到一个固定点,或者陷入一个简单的循环模式。这些行为在数学上很有趣,但它们未必能产生视觉上复杂的图案。
混沌之美
然而,有些系统是“混沌”的。这意味着点所经过的路径永远不会重复,并且对初始位置极其敏感。虽然控制这些跳跃的规则是确定的(非随机的),但产生的轨迹看起来却复杂且不可预测。
我创建的可视化图像就是通过追踪这些混沌系统生成的,让计算机模拟一个点在平面上的路径,迭代数十亿次。
图像是如何生成的?
这个过程基本上就是创建了一个密度图或热力图:
- 从一个初始点 开始。
- 应用系统方程得到下一个点 。
- 记录这个新点的位置。
- 将新点 再次代入方程,并重复该步骤数十亿次。
- 将二维平面划分成像素网格。
- 每个像素的颜色取决于“跳跃点”落入该像素所代表区域的次数。被访问次数越多的像素,颜色越亮或具有不同的颜色。
这种方法创造出的结果有时被称为“随机吸引子” (Random Attractors),或者更准确地说,就是这些混沌动力系统“吸引子”的可视化。
高维空间的一瞥?
特别有趣的现象来了,虽然这些系统仅在二维空间内运行,它们所生成的图案通常看起来像是来自更高维度、光滑复杂物体的投影或“阴影”。

这种奇妙的二维递归方程生成了暗示着三维甚至更高维度形态的结构。这暗示了这些离散系统可能与其他数学分支,如拓扑学(研究形状和空间)或微分几何(研究光滑曲面)等存在尚未被发掘的联系。从简单规则中涌现出的复杂性表明,这些基础方程可能编码了超越其表面维度的更高维度几何属性。
项目历程
我的这次探索的起点是 Paul Bourke 的网站。他对各种数学对象,尤其是混沌系统的可视化展示,给了我极大的启发。
于是,我决定自己尝试生成类似的可视化。我主要用Python编程,核心想法很简单:随机生成这些动力系统的参数,运行模拟,看看输出的图像是否有趣。如果结果不错,我就会渲染一个高分辨率的图像或者一个深入结构细节的视频。
为了自动化生成过程,我把Python代码打包到Docker容器中,并用AWS Lambda服务(利用其慷慨的免费套餐)每天运行两次搜索过程。如果结果非常漂亮,我就会分享到Instagram上。
这里还有一个我非常喜欢的生成结果:

致谢
我必须特别感谢 Paul Bourke,他的网站是这个项目的催化剂,我编写的代码也深受他慷慨分享的示例的启发。虽然生成我的图像的具体参数是我自己搜索找到的,但基础方法源于他的工作。
亲自尝试
这个项目最有趣的地方是,它背后的数学虽然能产生复杂的结构,但并不是高不可攀或者难以尝试的。
探索数学、代码和视觉模式的交叉点是一段真正有趣的旅程。希望了解这个过程能激发你去探索那些神秘或复杂的数学领域,它们有时能带来意想不到的美。
阅读愉快!