マンデルの涙

2013 / 03 / 18 by
Filed under: AS 
Bookmark this on Delicious
[`livedoor` not found]
[`yahoo` not found]

数理科学美術館」という本で見て以来、いつかプログラムを組んでみたいものと思っていたのが、今回取り上げるフラクタルです。
「マンデルの涙」という名称は、その「数理科学美術館」に出ていたものですが、いろいろググってみたところ、英語でも Mandeldrop と呼ばれているようです。どんな形状のフラクタルかというとコレ↓

マンデルの涙 – wonderfl build flash online


「数理美術館」77ページには、以下のような記述があります。

計算によって得られたマンデルブロー集合の図を、

r' = 1 / r (r は原点からの距離)

という変換で、「原点と無限遠方を入れ替え」ているのです!

それってつまりマンデルブロ集合を反転させるってことだと思うんですが、プログラムでどう表せばいいんだろうなぁ、説明どおり、一度、全座標における漸化式の結果を保持して、その結果にこの式を反映させなきゃいけないのかなぁ、それだとすごいめんどくさいなぁ、と思っていたところ、ヒントになりそうなページに行き当たりました。

これらの記述を読むと、マンデルブロ集合の漸化式をちょびっと書き換えれば、良さそうな感じ。

上がマンデルブロ集合の漸化式で、下がマンデルの涙の漸化式になります。

zn+1 = zn^2 + c
zn+1 = zn^2 + 1 / c

実際にプログラムを実行したところ、期待どおりの結果となりました。よかったよかった。

直交座標平面で反転するときは、中心座標を決めて、単位円を描いて半径の2乗を使って計算するというめんどうくさい手順が必要。
でも複素数平面なら複素数になっている各座標値を逆数にしてそのまま漸化式を実行すればいいんだから、とっても簡単。いやぁ便利ですねぇ複素数平面って。

ところでマンデルブロ集合には、その漸化式の冪乗が2より大きい値をとるマルチブロと呼ばれるものがありますが、マンデルの涙の漸化式にマルチブロを適用すると↓のようになります。

マンデルの涙(マルチブロ) – wonderfl build flash online

ちなみに反転でない普通のマルチブロは↓

マルチブロ集合 – wonderfl build flash online

ところでこのフラクタルには、反転させるということから invert Mandelbrot という呼び方もあるようです。
以前、逆写像によるジュリア集合というものを見ましたが、同様に逆写像によるマンデルブロ集合というのも存在するらしい。逆写像は英語では inverse mapping。逆写像によるジュリア集合は英語では inverse Julia set。
今回触れたフラクタルを invert Mandelbrot と呼ぶと、逆写像によるフラクタルと紛らわしくて困るんで、そっちの情報は見なかったものとしたいと思います。

ちなみにマンデルの涙の漸化式をジュリア集合に当てはめてみると、複素数 c の値の入れ違いはありますが、その形状は全く同じなので、実に面白くない。



Comments

Tell me what you're thinking...
and oh, if you want a pic to show with your comment, go get a gravatar!





WP-SpamFree by Pole Position Marketing