曼德博集合

来自testwiki
跳转到导航 跳转到搜索

Template:Refimprove Template:NoteTA

如果c点属于曼德博集合M则为黑色,反之为白色

曼德博集合Template:Lang-en,或译為曼德布洛特复数集合)是一种在复平面上组成分形的点的集合,以數學家本華·曼德博的名字命名。曼德博集合與朱利亚集合有些相似的地方,例如使用相同的复二次多项式來进行迭代

定义

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

fc(z)=z2+c

其中 c 是一个复数參数。

z=0 开始对 fc(z) 进行迭代

zn+1=zn2+c,n=0,1,2,...
z0=0
z1=z02+c=c
z2=z12+c=c2+c

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

(0,fc(0),fc(fc(0)),fc(fc(fc(0))),)

不同的参数 c 可能使序列绝对值逐漸發散到无限大,也可能收斂在有限的區域内。

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

特性

相關的定理

定理一

|c|14,則 cM

證明:

假設 |c|14 為真

|z1|=|c|14<12

第一步:

n=2

|z2|=|z12+c|=|c2+c||c2|+|c|=|c|2+|c|

因為 |c|14

|c|2+|c|116+14<12

由以上可得知 |z2|<12

第二步:

假設 |zn|<12 成立

|zn+1|=|zn2+c||zn|2+|c|<(12)2+14=12

由上式可得知 |zn+1|<12

由數學歸納法可得知對於所有的n(n=1,2,...),|zn| 皆比 12 小。

當n趨近無限大時 |zn| 依然沒有發散,所以 cM,故得證。


定理二

cM,則 |c|2

證明:

假設 |c|>2

|z1|=|c|,|z1|>2

第一步:

n=2

|z2|=|z12+c|=|c2+c||c2||c|=|c|2|c|

|c|>2,左右同乘 |c| 再減去 |c| 可得到下式

|c|2|c|>2|c||c|=|c|

由以上可得知 |z2|>|c|

第二步:

假設 |zn|>|c| 成立,則 |zn|>2

|zn+1|=|zn2+c||zn2||c|=|zn|2|c|

因為 |zn|>|c|

|zn|2|c|>|zn|2|zn|

|zn|>2,左右同乘 |zn| 再減去 |zn| 可得到下式

|zn|2|zn|>2|zn||zn|=|zn|

由以上可得知 |zn+1|>|zn|

由數學歸納法可得知 2<|z1|<|z2|<...<|zn|<|zn+1|<|zn+2|,可看出隨著迭代次數增加 |zn| 逐漸遞增並發散。

假如|zn|不发散,则收敛于某个常数a>|c|>2,

|zn+1||zn|2|c| 再取极限得 aa2|c|a2a|c|

a2a=a(a1)a>|c|,矛盾,故|zn|发散。


所以若 |c|>2,則 cM,故得證。

定理三

cM,則 |zn|2,(n=1,2,...)

證明:

要證明若 |zn|>2,(n=1,2,...),則 cM

首先分別探討 |c|>2|c|2 兩種情形

由定理二可知道 |zn|>2,(n=1,2,...)|c|>2 時, cM

接著要證明 |c|2 時的情況:

假設 |zn|>2,因為 |c|2 ,所以 |zn|>|c| ,而

|zn+1|=|zn2+c||zn2||c|=|zn|2|c|

因為 |zn|>|c|

|zn|2|c|>|zn|2|zn|

|zn|>2,左右同乘 |zn| 再減去 |zn| 可得到下式

|zn|2|zn|>2|zn||zn|=|zn|

由以上可得知 |zn+1|>|zn|

由數學歸納法可得知 2<|zn|<|zn+1|<|zn+2|<...,可看出隨著迭代次數增加 |zn| 逐漸遞增並發散。

所以在 |zn|>2,(n=1,2,...)|c|2 的情況下也是 cM

綜合上述可得知不論 |c|為多少

|zn|>2,(n=1,2,...),則 cM,故得證。

利用定理三可以在程式計算時快速地判斷 |zn|是否會發散。

计算的方法

曼德博集合一般用计算机程序计算。对于大多数的分形软件,例如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}]]

各種圖示

Template:Commons File:Mandelbrotzoom Wiki h265 CRF04 20210412 006GANZ.webm

點擊此圖像可觀看動態影像。
最原始圖片
放大等級1
放大等級2
放大等級3
放大等級4
放大等級5
放大等級6
放大等級7
放大等級8
放大等級9
放大等級10
放大等級11
放大等級12
放大等級13
放大等級14

參考資料

Template:Reflist

Template:分形