マンデルブロー集合とは、次のような複素数についての漸化式(点列)が、n → ∞ で発散しない(このことを有界といいます)ような、パラメータλの集合 です。λは複素数ですので、これを次のように表す(iは虚数単位)と
この集合は、横軸をa(実数軸)、縦軸をb(虚数軸)にとった平面内の図形としてあ らわされます。次の図の黒い部分がそうです。
この図形は実軸(a軸)について対象(上下対象)です。つまり、a軸は左側のへこん だ部分と右側の針の部分を結んだ線です。 この奇妙な球根を詳しく見るまえに、複素点列について意味を検討しましょう。点列 の初めの方は
となります。各zは複素数なので、
と表すことにします。 λが実数の場合(つまり b = 0)は、zの値はすべて実数値(つまり y = 0)とな ります。これを横軸をλ(つまりa)にとり縦軸をxにとって、この点列の挙動をプロ ットしましょう。漸化式を解くアルゴリズムは単純で、次の擬似コードで表現できます。
void mandel_plot(double a, double b) { double x = 0.0, y = 0.0, x1, y1; for(int n=0; n < NMAX; n++){ x1 = x * x - y * y -a; y1= 2.0 * x * y - b; if( x1*x1 + y1*y1 > 4.0 ) return; // 発散 if( n > 500 ){ 位置(a,x1)に点を打つ; } x=x1; y=y1; // 点列の更新 } } |
分岐図の実行ファイルとソースファイルのダウンロードはこちらです、
マンデルブロー集合 (1)分岐図
実行ファイルとソース・ファイル Windows 95/ 98上で動作します。 |
mandel01.lzh (73KB) |
* このソフトウェアは、SYMANTEC. NORTON AntiVirus 5.0 でウィルス検査を 行っています。 * ファイルは吉崎栄泰氏による LHA (Copyright(c)1988-92 H.Yoshizaki)を 使って圧縮しています。
Copyright(c) 2000 Yamada,K