マンデルブロー集合について

Category: 鉱物結晶図鑑  

今日は,マンデルブロー集合についてです.
鉱物とは関係ないですが,結晶図と同じ平面図ですし,結晶図同様に少し数学のテイストがあります.
実は,マンデルブロー集合については,過去にも数回トライしたんですが,理解できずに
今回やっと自分でプログラミングできました.

下図はその成果ですが,左がマンデルブロー集合の全体図で,右がその部分図です.
左図の任意の場所をクリックすると,任意の倍率で右に表示します.
右図のa,bのスライダバーで,左図の赤四角枠の位置も動きます.
(これらを反映するには,右上の再描画ボタンを押します)

mandelbrot.jpg

今回,成功した理由は,Gooサーチで有効な情報にヒットしたからです.
時代の進化を痛感しました.
せっかくなので,私が理解した内容を以下に簡単に整理しておきます.


まず,ウィキペディアには,以下のあっさりした説明が有りました.
「漸化式 Zn+1=Zn*Zn+c ,Z0=0 で定義される複素数列 {zn}n∈N が
 n → ∞ の極限で無限大に発散しないという条件を満たす複素数 c 全体が作る集合」

例によって,何のこっちゃさっぱり判りません.
そこで,他の検索結果で良さそうなここの論文を読みました.
200頁超の力作ですが,1章だけで充分理解できました.

漸化式のZにばかり気を取られていましたが,主役はc(=a+ib)でした.
論文では漸化式も複素数だけになっていまして,理解が進みます.
C0(c) = 0
C1(c) = c
C2(c) = c2+c
C3(c) = (c2+c)2+c

そして n=0,1,2・・・Nにおいて,c=0,1,i,1+iなどの場合で無限大になるかどうかを
説明しています.その結果,c=0はマンデルブロー集合に含まれ,c=1は無限大なので
含まれない.c=iは良く判らないが,プログラムで簡単に求まるとありました.
(N=1~有限回(大きいほど高精度)のループ計算で求まるらしい)

助かったのは,図1.3の画面上のピクセルと複素平面上の正方形の対応で,
これは,複素数cを,実数a=-2~2,虚数b=-2~2を正方形の
点画で現すことを示しています.
つまり,この2次元の1点(複素数cのある値)について,上記の漸化式を
計算して無限大に発散しないかどうかを調べ,発散しなければ黒色に,
発散するならば,発散条件に達した時のnの値を,決まった色(255色)に
変換して点を描画します.

上の図では500×500ドットの正方形なので,
500×500×(1~N(今回は255))回の無限大判定の処理が必要になりますが,
計算は数秒で終わります.

ここで曲者なのは,論文にも書いてあるとおり
「黒く塗りつぶした1ピクセルには,恐ろしく複雑な形状が隠されている」です.
倍率を上げていくと,a+ibが細かな値になり,特にマンデルブロー集合に含まれる部分と
含まれない部分の境界点において,見えなかった黒点やデザイン的な色図が見えてきます.


スポンサーサイト

 2013_11_11

Comments


 管理者にだけ表示を許可する


10  « 2017_11 »  12

SUN MON TUE WED THU FRI SAT
- - - 1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 - -

アクセスカウンタ

プロフィール

WG管理人

Author:WG管理人
鉱物結晶研究家

検索フォーム

ブロとも申請フォーム

QRコード

QR




pagetop