曼德博集合

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

## 定义

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

$$f_c(z) = z^2 + c \,$$

其中 $c$ 是一个复数参数。

从 $z = 0$ 开始对 $f_c(z)$ 进行迭代：

$$z_{n+1} = {z_n}^2 + c, n=0,1,2,...$$

$$z_0 = 0 \,$$

$$z_1 = {z_0}^2 + c = c \,$$

$$z_2 = {z_1}^2 + c = c^2 + c \,$$

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

$$(0, f_c(0), f_c(f_c(0)), f_c(f_c(f_c(0))), \ldots)$$

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

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

## 特性

- 自相似

## 相关的定理

### 定理一

若 $|c|\leq\frac{1}{4}$，则 $c\in{M}$

#### 证明：

假设 $|c|\leq\frac{1}{4}$ 为真

则$|z_1|= |c|\leq \frac{1}{4}< \frac{1}{2}$

##### 第一步：

当 $n=2 \,$ 时

$$|z_2|=|z_1^2+c|=|c^2+c| \leq |c^2|+|c|= |c|^2+|c|$$

因为 $|c|\leq\frac{1}{4}$

$$|c|^2+|c|\leq \frac{1}{16}+\frac{1}{4}< \frac{1}{2}$$

由以上可得知 $|z_2|< \frac{1}{2}$

##### 第二步：

假设 $|z_{n}|< \frac{1}{2} \,$ 成立

$$|z_{n+1}|=|z_{n}^2+c|\leq |z_{n}|^2+|c|< \left(\frac{1}{2}\right)^2 +\frac{1}{4}= \frac{1}{2}$$

由上式可得知 $|z_{n+1}|< \frac{1}{2}$

由数学归纳法可得知对于所有的n(n=1,2,...)，$|z_n| \,$ 皆比 $\frac{1}{2} \,$ 小。

当n趋近无限大时 $|z_n| \,$ 依然没有发散，所以 $c\in{M}$，故得证。

### 定理二

若 $c\in{M}$，则 $|c|\leq{2}$

#### 证明：

假设 $|c|>2 \,$

则 $|z_1|=|c|, |z_1|>2 \,$

##### 第一步：

当 $n=2 \,$ 时

$$|z_2|=|z_1^2+c|=|c^2+c| \ge |c^2|-|c|= |c|^2-|c|$$

由 $|c|>2 \,$，左右同乘 $|c| \,$ 再减去 $|c| \,$ 可得到下式

$$|c|^2-|c|> 2|c|-|c|= |c| \,$$

由以上可得知 $|z_2|>|c| \,$

##### 第二步：

假设 $|z_{n}|>|c| \,$ 成立，则 $|z_{n}|>2 \,$

$$|z_{n+1}|=|z_{n}^2+c|\ge |z_{n}^2|-|c|= |z_{n}|^2-|c|$$

因为 $|z_{n}|>|c| \,$

$$|z_{n}|^2-|c|> |z_{n}|^2-|z_{n}| \,$$

由 $|z_{n}|>2 \,$，左右同乘 $|z_{n}| \,$ 再减去 $|z_{n}| \,$ 可得到下式

$$|z_{n}|^2-|z_{n}|> 2|z_{n}|-|z_{n}|= |z_{n}| \,$$

由以上可得知 $|z_{n+1}|>|z_{n}| \,$

由数学归纳法可得知 $2<|{z_1}|<|{z_2}|<...<|{z_n}|<|z_{n+1}|<|z_{n+2}| \,$，可看出随着迭代次数增加 $|z_n| \,$ 逐渐递增并发散。

假如$|z_n| \,$不发散，则收敛于某个常数$a>|c|>2$,

由$|z_{n+1}|\ge |z_{n}|^2-|c|$ 再取极限得 $a\ge a^2-|c|$ 即 $a^2-a\leq |c|$。

又 $a^2-a=a(a-1)\ge a> |c|$，矛盾，故$|z_n| \,$发散。

所以若 $|c|>2 \,$，则 $c\notin{M}$，故得证。

### 定理三

若 $c\in{M}$，则 $|z_n|\leq{2}, (n=1,2,...)$

#### 证明：

要证明若 $|z_n|>2, (n=1,2,...) \,$，则 $c\notin{M}$

首先分别探讨 $|c|>2 \,$ 与 $|c|\leq2$ 两种情形

由定理二可知道 $|z_n|>2, (n=1,2,...) \,$ 且 $|c|>2 \,$ 时， $c\notin{M}$。

接着要证明 $|c|\leq2$ 时的情况：

假设 $|z_{n}|>2 \,$，因为 $|c|\leq2$，所以 $|z_{n}|>|c| \,$，而

$$|z_{n+1}|=|z_{n}^2+c|\ge |z_{n}^2|-|c|= |z_{n}|^2-|c|$$

因为 $|z_{n}|>|c| \,$

$$|z_{n}|^2-|c|> |z_{n}|^2-|z_{n}| \,$$

由 $|z_{n}|>2 \,$，左右同乘 $|z_{n}| \,$ 再减去 $|z_{n}| \,$ 可得到下式

$$|z_{n}|^2-|z_{n}|> 2|z_{n}|-|z_{n}|= |z_{n}| \,$$

由以上可得知 $|z_{n+1}|>|z_{n}| \,$

由数学归纳法可得知 $2<|{z_n}|<|z_{n+1}|<|z_{n+2}|<... \,$，可看出随着迭代次数增加 $|z_n| \,$ 逐渐递增并发散。

所以在 $|z_n|>2, (n=1,2,...) \,$ 且 $|c|\leq2$ 的情况下也是 $c\notin{M}$。

综合上述可得知不论 $|c| \,$为多少

若 $|z_n|>2, (n=1,2,...) \,$，则 $c\notin{M}$，故得证。

利用定理三可以在程式计算时快速地判断 $|z_n| \,$是否会发散。

## 计算的方法

曼德博集合一般用计算机程序计算。对于大多数的分形软件，例如Ultra fractal，内部已经有了比较成熟的例子。下面的程序是一段伪代码，表达了曼德博集合的计算思路。

```VB
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代码

```VB
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}]]
```

## 各种图示

<image>

<image>

<image>

｜

<image>

｜

<image>

｜

<image>

｜

<image>

<image>

｜

<image>

｜

<image>

｜

<image>

｜

<image>

<image>

｜

<image>

｜

<image>

｜

<image>

｜

<image>

<image>

<image>

<image>

<image>

<image>

<image>