如果c点属于曼德博集合M则为黑色,反之为白色
曼德博集合(英语: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
mand = Compile[{{z0, _Complex}, {nmax, _Integer}},
Module[{z = z0, i = 1},
While[i < nmax && Abs[z] <= 2, z = z^2 + z0; i++]; i]];
ArrayPlot[
Reverse@Transpose@
Table[mand[x + y I, 500], {x, -2, 2, 0.01}, {y, -2, 2, 0.01}]]
动画
点击此图像可观看动态影像。
最原始图片
|
放大等级1
|
放大等级2
|
放大等级3
|
放大等级4
|
放大等级5
|
放大等级6
|
放大等级7
|
放大等级8
|
放大等级9
|
放大等级10
|
放大等级11
|
放大等级12
|
放大等级13
|
放大等级14
|