曼德博集合:修订间差异
小 機器人 移除: sr:Mandelbrotov skup |
小 修正筆誤 |
||
(未显示33个用户的48个中间版本) | |||
第1行: | 第1行: | ||
{{Refimprove|time=2020-09-23T04:50:42+00:00}} |
|||
[[File:Mandelset hires.png |right|thumb|250px| 如果c点属于曼德布洛特集合M则为黑色,反之为白色]] |
|||
{{NoteTA|G1=Math|1=zh-hans:复;zh-hant:複;|2=zh-hans:迭代;zh-hant:疊代;}} |
|||
'''曼德布洛特集合'''(Mandelbrot set)是在[[复平面]]上组成[[分形]]的点的集合。 |
|||
[[File:Mandelset hires.png|right|thumb|250px| 如果c点属于曼德博集合M则为黑色,反之为白色]] |
|||
'''曼德博集合'''({{lang-en|Mandelbrot set}},或译為'''曼德布洛特复数集合''')是一种在[[复平面]]上组成[[分形]]的点的集合,以數學家[[本華·曼德博]]的名字命名。曼德博集合與[[朱利亚集合]]有些相似的地方,例如使用相同的复二次多项式來进行[[迭代]]。 |
|||
== 定义 == |
== 定义 == |
||
曼德 |
曼德博集合可以用複二次多项式来定义: |
||
:<math> |
:<math>f_c(z) = z^2 + c \,</math> |
||
其中<math>c</math>是一个复 |
其中 <math>c</math> 是一个复数參数。 |
||
从 <math>z = 0</math> 开始对 <math>f_c(z)</math> 进行[[迭代]]: |
|||
[[序列]] <math>(0, f_ c(0), f_c(f_ c(0)), f_ c(f_ c(f_ c(0))), \ldots)</math> 的值或者延伸到无限大,或者只停留在有限[[半径]]的圆盘内。 |
|||
:<math>z_{n+1} = z_n^2 + c, n=0,1,2,...</math> |
|||
曼德布洛特集合就是使以上序列不延伸至无限大的所有<math>c</math>点的集合。 |
|||
:<math>z_0 = 0 \,</math> |
|||
从数学上来讲,曼德布洛特集合是一个[[复数]]的集合。一个给定的复数<math>c</math>或者属于曼德布洛特集合<math>M</math>,或者不是。 |
|||
:<math>z_1 = z_0^2 + c = c \,</math> |
|||
:<math>z_2 = z_1^2 + c = c^2 + c \,</math> |
|||
每次迭代的值依序如以下[[序列]]所示: |
|||
<math>(0, f_c(0), f_c(f_c(0)), f_c(f_c(f_c(0))), \ldots)</math> |
|||
不同的参数 <math>c</math> 可能使[[序列]]的[[绝对值]]逐漸發散到无限大,也可能[[收斂]]在有限的區域内。 |
|||
曼德博集合 <math>M</math> 就是使[[序列]]不延伸至无限大的所有复数 <math>c</math> 的[[集合 (数学)|集合]]。 |
|||
==特性== |
|||
*自相似 |
|||
*面积为{{gaps|1.506|591|856|1}}<ref>{{Cite web |url=http://www.mrob.com/pub/muency/pixelcounting.html |title=Mrob.com pixel counting |accessdate=2012-01-01 |archive-date=2019-08-10 |archive-url=https://web.archive.org/web/20190810111304/http://www.mrob.com/pub/muency/pixelcounting.html |dead-url=no }}</ref><ref>{{Cite web |url=http://mrob.com/pub/muency/areahistory.html |title=Mrob.com area history |access-date=2012-04-29 |archive-date=2020-09-22 |archive-url=https://web.archive.org/web/20200922130536/http://mrob.com/pub/muency/areahistory.html |dead-url=no }}</ref> |
|||
== 相關的定理 == |
|||
=== 定理一 === |
|||
若 <math>|c|\leq\frac{1}{4}</math>,則 <math>c\in{M}</math> |
|||
==== 證明: ==== |
|||
假設 <math>|c|\leq\frac{1}{4}</math> 為真 |
|||
則<math>|z_1|= |c|\leq \frac{1}{4}< \frac{1}{2}</math> |
|||
===== 第一步: ===== |
|||
當 <math>n=2 \,</math> 時 |
|||
:<math>|z_2|=|z_1^2+c|=|c^2+c| \leq |c^2|+|c|= |c|^2+|c|</math> |
|||
因為 <math>|c|\leq\frac{1}{4}</math> |
|||
:<math>|c|^2+|c|\leq \frac{1}{16}+\frac{1}{4}< \frac{1}{2}</math> |
|||
由以上可得知 <math>|z_2|< \frac{1}{2}</math> |
|||
===== 第二步: ===== |
|||
假設 <math>|z_{n}|< \frac{1}{2} \,</math> 成立 |
|||
:<math>|z_{n+1}|=|z_{n}^2+c|\leq |z_{n}|^2+|c|< \left(\frac{1}{2}\right)^2 +\frac{1}{4}= \frac{1}{2}</math> |
|||
由上式可得知 <math>|z_{n+1}|< \frac{1}{2}</math> |
|||
由數學歸納法可得知對於所有的n(n=1,2,...),<math>|z_n| \,</math> 皆比 <math>\frac{1}{2} \,</math> 小。 |
|||
當n趨近無限大時 <math>|z_n| \,</math> 依然沒有發散,所以 <math>c\in{M}</math>,故得證。 |
|||
=== 定理二 === |
|||
若 <math>c\in{M}</math>,則 <math>|c|\leq{2}</math> |
|||
==== 證明: ==== |
|||
假設 <math>|c|>2 \,</math> |
|||
則 <math>|z_1|=|c|, |z_1|>2 \,</math> |
|||
===== 第一步: ===== |
|||
當 <math>n=2 \,</math> 時 |
|||
:<math>|z_2|=|z_1^2+c|=|c^2+c| \ge |c^2|-|c|= |c|^2-|c|</math> |
|||
由 <math>|c|>2 \,</math>,左右同乘 <math>|c| \,</math> 再減去 <math>|c| \,</math> 可得到下式 |
|||
:<math>|c|^2-|c|> 2|c|-|c|= |c| \,</math> |
|||
由以上可得知 <math>|z_2|>|c| \,</math> |
|||
===== 第二步: ===== |
|||
假設 <math>|z_{n}|>|c| \,</math> 成立,則 <math>|z_{n}|>2 \,</math> |
|||
:<math>|z_{n+1}|=|z_{n}^2+c|\ge |z_{n}^2|-|c|= |z_{n}|^2-|c|</math> |
|||
因為 <math>|z_{n}|>|c| \,</math> |
|||
:<math>|z_{n}|^2-|c|> |z_{n}|^2-|z_{n}| \,</math> |
|||
由 <math>|z_{n}|>2 \,</math>,左右同乘 <math>|z_{n}| \,</math> 再減去 <math>|z_{n}| \,</math> 可得到下式 |
|||
:<math>|z_{n}|^2-|z_{n}|> 2|z_{n}|-|z_{n}|= |z_{n}| \,</math> |
|||
由以上可得知 <math>|z_{n+1}|>|z_{n}| \,</math> |
|||
由數學歸納法可得知 <math>2<|{z_1}|<|{z_2}|<...<|{z_n}|<|z_{n+1}|<|z_{n+2}| \,</math>,可看出隨著迭代次數增加 <math>|z_n| \,</math> 逐漸遞增並發散。 |
|||
假如<math>|z_n| \,</math>不发散,则收敛于某个常数<math> a>|c|>2 </math>, |
|||
由<math>|z_{n+1}|\ge |z_{n}|^2-|c|</math> 再取极限得 <math>a\ge a^2-|c|</math> 即 <math>a^2-a\leq |c|</math>。 |
|||
又 <math>a^2-a=a(a-1)\ge a> |c|</math>,矛盾,故<math>|z_n| \,</math>发散。 |
|||
所以若 <math>|c|>2 \,</math>,則 <math>c\notin{M}</math>,故得證。 |
|||
=== 定理三 === |
|||
若 <math>c\in{M}</math>,則 <math>|z_n|\leq{2}, (n=1,2,...)</math> |
|||
==== 證明: ==== |
|||
要證明若 <math>|z_n|>2, (n=1,2,...) \,</math>,則 <math>c\notin{M}</math> |
|||
首先分別探討 <math>|c|>2 \,</math> 與 <math>|c|\leq2</math> 兩種情形 |
|||
由定理二可知道 <math>|z_n|>2, (n=1,2,...) \,</math> 且 <math>|c|>2 \,</math> 時, <math>c\notin{M}</math>。 |
|||
接著要證明 <math>|c|\leq2</math> 時的情況: |
|||
假設 <math>|z_{n}|>2 \,</math>,因為 <math>|c|\leq2</math> ,所以 <math>|z_{n}|>|c| \,</math> ,而 |
|||
:<math>|z_{n+1}|=|z_{n}^2+c|\ge |z_{n}^2|-|c|= |z_{n}|^2-|c|</math> |
|||
因為 <math>|z_{n}|>|c| \,</math> |
|||
:<math>|z_{n}|^2-|c|> |z_{n}|^2-|z_{n}| \,</math> |
|||
由 <math>|z_{n}|>2 \,</math>,左右同乘 <math>|z_{n}| \,</math> 再減去 <math>|z_{n}| \,</math> 可得到下式 |
|||
:<math>|z_{n}|^2-|z_{n}|> 2|z_{n}|-|z_{n}|= |z_{n}| \,</math> |
|||
由以上可得知 <math>|z_{n+1}|>|z_{n}| \,</math> |
|||
由數學歸納法可得知 <math>2<|{z_n}|<|z_{n+1}|<|z_{n+2}|<... \,</math>,可看出隨著迭代次數增加 <math>|z_n| \,</math> 逐漸遞增並發散。 |
|||
所以在 <math>|z_n|>2, (n=1,2,...) \,</math> 且 <math>|c|\leq2</math> 的情況下也是 <math>c\notin{M}</math>。 |
|||
綜合上述可得知不論 <math>|c| \,</math>為多少 |
|||
若 <math>|z_n|>2, (n=1,2,...) \,</math>,則 <math>c\notin{M}</math>,故得證。 |
|||
利用定理三可以在程式計算時快速地判斷 <math>|z_n| \,</math>是否會發散。 |
|||
== 计算的方法 == |
== 计算的方法 == |
||
曼德 |
曼德博集合一般用[[计算机程序]]计算。对于大多数的分形软件,例如[[Ultra fractal]],内部已经有了比较成熟的例子。下面的程序是一段[[伪代码]],表达了曼德博集合的计算思路。 |
||
< |
<syntaxhighlight lang="VB"> |
||
For Each |
For Each c in Complex |
||
repeats = 0 |
repeats = 0 |
||
z= |
z = 0 |
||
Do |
Do |
||
z=z^2+ |
z = z^2 + c |
||
repeats = repeats + 1 |
|||
Loop until abs(z)> |
Loop until abs(z) > EscapeRadius or repeats > MaxRepeats '根据定理三,EscapeRadius可设置为2。 |
||
If repeats > |
If repeats > MaxRepeats Then |
||
Draw c,Black '如果迭代次数超过MaxRepeats,就将c认定为属于曼德博集合,并设置为黑色。 |
|||
Draw z0,Black |
|||
Else |
Else |
||
Draw |
Draw c,color(z,c,repeats) 'color函数用来决定颜色。 |
||
End If |
End If |
||
Next |
Next |
||
</syntaxhighlight> |
|||
</source> |
|||
=== |
=== 決定顏色的一些方法 === |
||
# 直接利用循环终止时的Repeats |
# 直接利用循环终止时的Repeats |
||
# 综合利用z和Repeats |
# 综合利用z和Repeats |
||
第38行: | 第180行: | ||
=== [[Mathematica]]代码 === |
|||
<syntaxhighlight lang="VB"> |
|||
DensityPlot[Block[{z, t = 0}, z = x + y*I; While[(Abs[z] < 2.0) && (t < 100), ++t; z = z^2 + x + y*I]; Return[t]],{x, -2, 0.8}, {y, -1.5, 1.5}, PlotPoints -> 500, Mesh -> False]; |
|||
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}]] |
|||
</syntaxhighlight> |
|||
== 各種圖示 == |
== 各種圖示 == |
||
{{commons|Mandelbrot set}} |
|||
[[File:Mandelbrotzoom Wiki h265 CRF04 20210412 006GANZ.webm|thumb|270px|動畫]] |
|||
[[Image:Mandelbrot sequence new.gif|thumb|right|點擊此圖像可觀看動態影像。]] |
|||
{| border=0 |
{| border=0 |
||
|- |
|- |
||
|[[File:mandel zoom 00 mandelbrot set.jpg|120px|thumb|left|最原始圖片]] |
| [[File:mandel zoom 00 mandelbrot set.jpg|120px|thumb|left|最原始圖片]] |
||
|[[File:mandel zoom 01 head and shoulder.jpg|120px|thumb|left|放大等級1]] |
| [[File:mandel zoom 01 head and shoulder.jpg|120px|thumb|left|放大等級1]] |
||
|[[File:mandel zoom 02 seehorse valley.jpg|120px|thumb|left|放大等級2]] |
| [[File:mandel zoom 02 seehorse valley.jpg|120px|thumb|left|放大等級2]] |
||
|[[File:mandel zoom 03 seehorse.jpg|120px|thumb|left|放大等級3]] |
| [[File:mandel zoom 03 seehorse.jpg|120px|thumb|left|放大等級3]] |
||
|[[File:mandel zoom 04 seehorse tail.jpg|120px|thumb|left|放大等級4]] |
| [[File:mandel zoom 04 seehorse tail.jpg|120px|thumb|left|放大等級4]] |
||
|- |
|- |
||
|[[File:mandel zoom 05 tail part.jpg|120px|thumb|left|放大等級5]] |
| [[File:mandel zoom 05 tail part.jpg|120px|thumb|left|放大等級5]] |
||
|[[File:mandel zoom 06 double hook.jpg|120px|thumb|left|放大等級6]] |
| [[File:mandel zoom 06 double hook.jpg|120px|thumb|left|放大等級6]] |
||
|[[File:mandel zoom 07 satellite.jpg|120px|thumb|left|放大等級7]] |
| [[File:mandel zoom 07 satellite.jpg|120px|thumb|left|放大等級7]] |
||
|[[File:mandel zoom 08 satellite antenna.jpg|120px|thumb|left|放大等級8]] |
| [[File:mandel zoom 08 satellite antenna.jpg|120px|thumb|left|放大等級8]] |
||
|[[File:mandel zoom 09 satellite head and shoulder.jpg|120px|thumb|left|放大等級9]] |
| [[File:mandel zoom 09 satellite head and shoulder.jpg|120px|thumb|left|放大等級9]] |
||
|- |
|- |
||
|[[File:mandel zoom 10 satellite seehorse valley.jpg|120px|thumb|left|放大等級10]] |
| [[File:mandel zoom 10 satellite seehorse valley.jpg|120px|thumb|left|放大等級10]] |
||
|[[File:mandel zoom 11 satellite double spiral.jpg|120px|thumb|left|放大等級11]] |
| [[File:mandel zoom 11 satellite double spiral.jpg|120px|thumb|left|放大等級11]] |
||
|[[File:mandel zoom 12 satellite spirally wheel with julia islands.jpg|120px|thumb|left|放大等級12]] |
| [[File:mandel zoom 12 satellite spirally wheel with julia islands.jpg|120px|thumb|left|放大等級12]] |
||
|[[File:mandel zoom 13 satellite seehorse tail with julia island.jpg|120px|thumb|left|放大等級13]] |
| [[File:mandel zoom 13 satellite seehorse tail with julia island.jpg|120px|thumb|left|放大等級13]] |
||
|[[File:mandel zoom 14 satellite julia island.jpg|120px|thumb|left|放大等級14]] |
| [[File:mandel zoom 14 satellite julia island.jpg|120px|thumb|left|放大等級14]] |
||
|} |
|} |
||
== 參考資料 == |
|||
{{commons|Mandelbrot set}} |
|||
{{reflist}} |
|||
{{分形}} |
{{分形}} |
||
[[Category:分形]] |
[[Category:分形]] |
||
[[Category:带有伪代码示例的条目]] |
|||
[[ar:مجموعة ماندلبرو]] |
|||
[[ca:Conjunt de Mandelbrot]] |
|||
[[cs:Mandelbrotova množina]] |
|||
[[de:Mandelbrot-Menge]] |
|||
[[en:Mandelbrot set]] |
|||
[[es:Conjunto de Mandelbrot]] |
|||
[[fa:مجموعه مندلبرو]] |
|||
[[fi:Mandelbrotin joukko]] |
|||
[[fr:Ensemble de Mandelbrot]] |
|||
[[gl:Conxunto de Mandelbrot]] |
|||
[[he:קבוצת מנדלברוט]] |
|||
[[hr:Mandelbrotov skup]] |
|||
[[hu:Mandelbrot-halmaz]] |
|||
[[is:Mandelbrot mengið]] |
|||
[[it:Insieme di Mandelbrot]] |
|||
[[ja:マンデルブロ集合]] |
|||
[[ko:만델브로 집합]] |
|||
[[lv:Mandelbrota kopa]] |
|||
[[nl:Mandelbrotverzameling]] |
|||
[[no:Mandelbrotmengden]] |
|||
[[pl:Zbiór Mandelbrota]] |
|||
[[pt:Conjunto de Mandelbrot]] |
|||
[[ro:Mulțimea lui Mandelbrot]] |
|||
[[ru:Множество Мандельброта]] |
|||
[[sh:Mandelbrotov skup]] |
|||
[[simple:Mandelbrot set]] |
|||
[[sk:Mandelbrotova množina]] |
|||
[[sl:Mandelbrotova množica]] |
|||
[[sv:Mandelbrotmängden]] |
|||
[[te:మేండెల్బ్రాట్ సెట్]] |
|||
[[th:เซตมานดัลบรอ]] |
|||
[[tr:Mandelbrot kümesi]] |
|||
[[uk:Множина Мандельброта]] |
2023年6月10日 (六) 13:49的最新版本
此條目需要补充更多来源。 (2020年9月23日) |
曼德博集合(英語: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
Mathematica代码
[编辑]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}]]
各種圖示
[编辑]參考資料
[编辑]- ^ Mrob.com pixel counting. [2012-01-01]. (原始内容存档于2019-08-10).
- ^ Mrob.com area history. [2012-04-29]. (原始内容存档于2020-09-22).