Barnsley Fractal J1 & M1

2012 / 02 / 15 by
Filed under: AS 
Bookmark this on Delicious
[`livedoor` not found]
[`yahoo` not found]

今回見るのはイギリスの数学者 Michael Barnsley によるフラクタルです。
氏の著作である "Fractals Everywhere" という書籍で紹介されているとのこと。その本の中で3つの漸化式が紹介されているらしいんですが、一部を除いて名称、総称がつけられていないようです。とりあえず総称して Barnsley Fractal と呼ぶこととします。
以下、"Fractals Everywhere" を読んでいないので、子引き、孫引きの知識で書きます。
まずはその1番目のフラクタルから。

その漸化式は以下のとおり。


Re[z] >= 0, zn+1 = c * (zn - 1)
Re[z] < 0, zn+1 = c * (zn + 1)

Re[z] というのは「[]内の複素数の実数部(Real Number)」を表す記号です。複素数 z の実数値によって分岐するという今まであまり見なかった特性がありますが、これこそが Barnsley Fractal の独自性で、他の2つも同様に特定の値で分岐します。

ちなみにこの漸化式、1つの式にできます。


zn+1 = c * (zn - sign(Re[z]))

sign というのは以前 Hopalong というフラクタルで見た「符号関数」です。
引数が正の数なら 1 を、負の数なら -1 を、0 なら 0 を返す関数です。なので厳密にいうと Barnsley Fractal では符号関数にはならないんですけどね。Re[z] = 0 のときに第3の分岐にならずに Re[z] > 0 の分岐と同じになるので。

ところで話はちょっと迂回しますが、ベーシックなマンデルブロ集合とジュリア集合の漸化式を思い出してみましょう。
マンデルブロ集合にしてもジュリア集合にしてもその漸化式は同じです。


zn+1 = zn^2 + c

式は同じなのに、なぜ全然異なった図形になるのか。それは複素数 z と複素数 c に割り当てる値が異なるからでした。

  • マンデルブロ集合では z0 = 0 + 0i、c = 走査する複素数平面の座標値
  • ジュリア集合では z0 =走査する複素数平面の座標、c = 外部から与えられた値

Barnsley Fractal でも複素数 z、複素数 c に同様に2種類の割り当てをすることにより、1つの漸化式で2つのフラクタルとしています。
Barnsley はこの漸化式のマンデルブロ型フラクタルを "M1" と名づけました。マンデルブロ型の1番目という意味なんでしょうね。
ジュリア型フラクタルには名をつけなかったようですが、"M1" に倣って "J1" とします。FractInt(フリーのフラクタルジェネレータ)でもそう扱ってるようですし(参考 ウェブページ:Barnsley Mandelbrot/Julia Sets、書籍:"Fractal Creations")。
なお、基本なのは Julia 型の方らしい。基本には名をつけずに、例外の方に名をつけたってことなんですかね。

ちなみに Wolfram Mathworld では "J1" を Barnsley’s Tree と呼んでいました。

実際どんな図形になるのかというと以下のとおりです。
まずはジュリア型。

Barnsley Fractal J1 – wonderfl build flash online

書籍では、"J1" における複素数 c の値は 0.6 + 1.1i が指定されているようです。
試してみると分りますが、実数部、虚数部どちらかひとつでも0に近づくと発散部分が大きくなって、図形としてはつまらないものになります。ほどよく 0 から離れると、複雑で見栄えのする図形になります。

次はマンデルブロ型。形状としてはいまいち萌えないかなぁ、って感じ。

Barnsley Fractal M1 – wonderfl build flash online

参考



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