跳转到内容

曼德博集合

本页使用了标题或全文手工转换
维基百科,自由的百科全书
如果c点属于曼德博集合M则为黑色,反之为白色

曼德博集合(英语:Mandelbrot set,或译为曼德布洛特复数集合)是一种在复平面上组成分形的点的集合,以数学家本华·曼德博的名字命名。曼德博集合与朱利亚集合有些相似的地方,例如使用相同的复二次多项式来进行迭代

定义

曼德博集合可以用复二次多项式来定义:

其中 是一个复数参数。

开始对 进行迭代

每次迭代的值依序如以下序列所示:

不同的参数 可能使序列绝对值逐渐发散到无限大,也可能收敛在有限的区域内。

曼德博集合 就是使序列不延伸至无限大的所有复数 集合

特性

  • 自相似
  • 面积为1.5065918561[1][2]

相关的定理

定理一

,则

证明:

假设 为真

第一步:

因为

由以上可得知

第二步:

假设 成立

由上式可得知

由数学归纳法可得知对于所有的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

决定颜色的一些方法

  1. 直接利用循环终止时的Repeats
  2. 综合利用z和Repeats
  3. 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

参考资料

  1. ^ Mrob.com pixel counting. [2012-01-01]. (原始内容存档于2019-08-10). 
  2. ^ Mrob.com area history. [2012-04-29]. (原始内容存档于2020-09-22).