曼德博集合

曼德博集合（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}]]
```