所有让迭代
z_{n+1} = z_n² + c(从z₀ = 0出发)保持有界的复数c构成的集合。一句话定义,无限复杂的边界。
定义
对复数 c,考虑迭代
z₀ = 0
z_{n+1} = z_n² + c
曼德博集合 M 定义为所有使轨道 {z_n} 有界的 c:
M = { c ∈ ℂ : sup_n |z_n| < ∞ }
由于 |z| > max(|c|, 2) 之后必然发散,判据可简化为:只要某一步 |z_n| > 2,就立刻判定 c ∉ M。因此 M 包含在半径 2 的闭圆盘内,是紧集。这个”超过 2 就逃逸”的界,也是渲染算法的全部基础。
结构
M 不是一团混沌,它有极其规整的分层结构:
| 区域 | 含义 | 参数位置 |
|---|---|---|
| 主心形(main cardioid) | 吸引不动点存在的区域 | 边界 c = e^{iθ}/2 − e^{2iθ}/4 |
| 周期 2 圆盘 | 吸引 2-周期轨道 | 圆心 c = −1,半径 1/4 |
| 其余周期泡 | 周期 4、8、16… 及所有有理旋转数 | 沿 ∂M 按 Farey 序挂接 |
| 实轴切片 | M ∩ ℝ = [−2, 1/4] | 对应 logistic 映射的倍周期级联 |
实轴这一段把曼德博集合与熟悉的倍周期分岔图接了起来:c 从 0.25 向左移动,先是不动点,然后在 c ≈ −0.75 处分岔为周期 2,再是 4、8、16……分岔点间距比收敛到 Feigenbaum 常数 δ ≈ 4.669201609。这个常数与具体映射无关,是目前已知最强的普适性之一。
严格成立的性质
- 连通性:
M是连通的,且补集在黎曼球面上也连通,因此M是”满的”且单连通的(Douady–Hubbard,1982)。这个证明引入了外部射线(external rays)理论,是复动力系统的里程碑。 - 边界维数:
∂M的 Hausdorff 维数等于 2(Shishikura,1991)。维数是整数,但边界不是光滑曲线,这抵消了”维数不是整数才是分形”的常见误解。 - 面积:
M面积有限,精确值未知,数值约1.50659188。边界是否为零测度仍未解决。 - 准自相似:
M在每个边界点的任意小邻域里都包含自身的拟共形副本(无数个”小曼德博”)。但它不是严格自相似——不是迭代函数系(IFS)那种有限规则拼出来的分形。 - Julia 集判定:
c ∈ M当且仅当对应 Julia 集J_c连通;c ∉ M时J_c是 Cantor 尘(完全不连通)。M本质上是二次多项式族的连通性 locus / 分岔 locus。
仍未解决
- MLC 猜想:
M的边界是否局部连通。这是复动力系统最著名的开放问题之一。 - 双曲性稠密猜想:双曲分支(有吸引周期轨道的参数)是否在
M中稠密。MLC 可推出它。 - 面积精确值:只能数值逼近,没有闭式表达。
渲染工程
渲染曼德博集合是”规则极简、工程极难”的典型,也是 GPU 与浮点算力的经典压力测试。
逃逸时间算法(escape time)
for n in 1..N:
z = z² + c
if |z|² > 4: break # 逃逸
# n 越大,说明 c 越接近 M;n == N 视为内部
按逃逸步数着色就是最基本的图。三个关键优化:
- 光滑着色:出界后用
μ = n + 1 − log₂(log₂|z|)做连续插值,消掉条带 - 内部快速判据:直接判断
c是否落在主心形或周期 2 圆盘内,命中即跳过整个迭代,内点占比极高时提速显著 - 周期检测:迭代中缓存参考点,发现轨道成环即可提前终止
深放大:精度是硬门槛
double 只有约 15–16 位有效十进制数字,放大到 10⁻¹⁵ 量级后像素间距小于表示精度,画面会退化成块状。深放大必须解决精度问题:
| 方案 | 做法 | 代价 |
|---|---|---|
| 任意精度浮点 | MPFR/GMP,或自研定点数 | 每次运算几十到几百倍慢 |
| 扰动理论(perturbation) | 用任意精度只算一条参考轨道,其余像素用 float 算参考轨道的增量 δ | 高精度计算量与像素数解耦,是深放大的主流 |
| 级数近似 | 用低阶多项式外推参考轨道,跳过前若干次迭代 | 与扰动理论配合,进一步压缩迭代次数 |
扰动理论 + 级数近似是把曼德博集合推到 10⁻¹⁰⁰⁰ 量级放大的关键(NanoMB、Kalles Fraktaler 等实现的核心)。它本质上是一个数值稳定性重构:把”每个像素各自高精度迭代”换成”一条高精度参考轨道 + 大量低精度增量”。
性能特征
- 易并行:像素间完全独立,天然适合 GPU,共享参考轨道可放进 shared memory
- 算力受限而非访存受限:核心是稠密浮点循环,正好是 flops-estimation 里”算术强度高 → 打满 FLOPS”的那一类负载
- 迭代次数是主成本:总复杂度约
O(像素数 × 迭代上限),而迭代上限必须随放大倍数增长,否则边界细节会丢失 - 内部像素是浪费:
M内部永远不逃逸,必须靠数学判据提前识别,否则纯烧满迭代上限
因此它出现在大量 GPU 基准测试、FP64 吞吐量对比和分布式算力演示里——规则对小学生可讲清,实现却能把任意硬件压到极限。
常见误解
| 误解 | 实际 |
|---|---|
| 曼德博集合是自相似的 | 它是准自相似:包含自身的拟共形副本,但没有有限 IFS 规则 |
| 维数不是整数才算分形 | 其边界 Hausdorff 维数恰好是 2(整数) |
| 它是 Julia 集的一种 | 它是参数空间;每个 c 对应一个 Julia 集,M 是这些 Julia 集的连通性地图 |
| 只有模 2 边界算集合,颜色也算 | 集合本身只有”属于/不属于”两态,所有颜色都是可视化选择 |
| 放大到极限能看到无限细节的”最终答案” | 细节无限,但精度和迭代上限决定你能看到哪一层 |
相关页面
- category-theory — 同属数学概念页,一个研究结构如何组合,一个研究迭代如何发散
- flops-estimation — 渲染负载的算力/访存特征分析与 FLOPS 估算
- stephango-vault — 分形结构在个人知识组织里的类比用法(分形日记)