曼德博集合(Mandelbrot set,或译為曼德布洛特复数集合)是一种在复平面上组成分形的点的集合,以數學家本華·曼德博的名字命名。曼德博集合與朱利亚集合有些相似的地方,例如使用相同的复二次多项式來进行迭代。
定义
曼德博集合可以用复二次多项式来定义:
其中 是一个复数參数。
从 开始对 进行迭代:
每次迭代的值依序如以下序列所示:
不同的参数 可能使序列的绝对值逐漸發散到无限大,也可能收斂在有限的區域内。
曼德博集合 就是使序列不延伸至无限大的所有复数 的集合。
相關的定理
定理一
若 ,則
證明:
假設 為真
則
第一步:
當 時
因為
由以上可得知
第二步:
假設 成立
由上式可得知
由數學歸納法可得知對於所有的n(n=1,2,...), 皆比 小。
當n趨近無限大時 依然沒有發散,所以 ,故得證。
定理二
若 ,則
證明:
假設
則
第一步:
當 時
由 ,左右同乘 再減去 可得到下式
由以上可得知
第二步:
假設 成立,則
因為
由 ,左右同乘 再減去 可得到下式
由以上可得知
由數學歸納法可得知 ,可看出隨著迭代次數增加 逐漸遞增並發散。
若不发散,则收敛于某个常数,
由 再取极限得 即 。
又 ,矛盾,故发散。
所以若 ,則 ,故得證。
定理三
若 ,則
證明:
要證明若 ,則
首先分別探討 與 兩種情形
由定理二可知道 且 時, 。
接著要證明 時的情況:
假設 ,因為 ,所以 ,而
因為
由 ,左右同乘 再減去 可得到下式
由以上可得知
由數學歸納法可得知 ,可看出隨著迭代次數增加 逐漸遞增並發散。
所以在 且 的情況下也是 。
綜合上述可得知不論 為多少
若 ,則 ,故得證。
利用定理三可以在程式計算時快速地判斷 是否會發散。
计算的方法
曼德博集合一般用计算机程序计算。对于大多数的分形软件,例如Ultra fractal,内部已经有了比较成熟的例子。下面的程序是一段伪代码,表达了曼德博集合的计算思路。
For Each c in Complex
repeats = 0
z = 0
Do
z = z^2 + c
repeats = repeats + 1
Loop until abs(z) > EscapeRadius or repeats > MaxRepeats '根據定理三,EscapeRadius可設為2。
If repeats > MaxRepeats Then
Draw c,Black '如果迭代次數超過MaxRepeats,就將c認定為屬於曼德博集合,並設為黑色。
Else
Draw c,color(z,c,repeats) 'color函數用來決定顏色。
End If
Next
決定顏色的一些方法
- 直接利用循环终止时的Repeats
- 综合利用z和Repeats
- Orbit Traps
也可以用Mathematica制作
DensityPlot[Block[{z, t = 0}, z = x + y*I; While[(Abs[z] < 2.0) && (t < 100), ++t; z = z^2 + x + y*I]; Return[t]],{x, -2, 0.8}, {y, -1.5, 1.5}, PlotPoints -> 500, Mesh -> False];
各種圖示
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
分形软件
Template:Link GA
Template:Link GA