マンデルブロ集合の計算方法
マンデルブロ集合の計算方法について、なるべく簡単に説明します。
マンデルブロ集合の計算は、次の式を繰り返し計算するだけです。
Zn+1 = Zn * Zn + C
式の意味:n回目の計算結果であるZnを2回掛けてCを足したものを
(n+1)回目の計算結果Zn+1とする。
手順:適当な数Cを決める。初期値のZ0は0と決まっているので、
上の式を使って、Z0→Z1→Z2→・・・→Zn→Zn+1と、順番に計算する。
以上です。とても単純な計算ですね。
このZという数は、Cによって、どんどん大きくなっていくケース、大きくなったり小さくなったりするケースと、いろいろなパターンがあります。
延々と計算してもキリが無いのでどこかで中断するのですが、先人の研究により、
Zの大きさが 2 を超えると発散する(どんどん大きくなってしまう)ことがわかっているので、2より大きくなったら中断し、
その時の繰り返し数nをCに対する計算結果の値とします。
また、繰り返し数の上限(Loop Max)をあらかじめ決めておき、上限回数まで計算しても、Zの大きさが2を越えなかったら、そこで中断します。
その場合も、繰り返し数n(上限値 Loop Max)をCに対する計算結果の値とします。
計算例: C=0.9の場合
Z0 = 0 初期値なので、いつもゼロからスタートします。
Z1 = Z0 * Z0 + C = 0 * 0 + 0.9 = 0.9
Z2 = Z1 * Z1 + C = 0.9 * 0.9 + 0.9 = 1.71
Z3 = Z2 * Z2 + C = 1.71 * 1.71 + 0.9 = 3.8241
3回目の計算 Z3 で、2より大きくなったので、C=0.9に対する値は3となります。
このCの値に応じて、赤や青の色を割り当てると、不思議な模様が出現するのです。
実際にはCやZは複素数なので、もう少しだけ複雑な計算となります。
色を割り当てて模様を描くには、複素平面上でCを少しずつズラしていき、各Cに対して上記の繰り返し計算を行い、色を割り当てて、平面を埋めて行くと1枚の画像になります。
単純な繰り返し計算ですが、画像の横dot数 * 縦dot数の各点で、Loop Maxを1,000とか100,000とかに設定して計算するので、膨大な計算量になります。
バリエーション:上記はZを2回掛ける基本型ですが、
3回、4回・・・としても、同様に不思議な模様が描けます。
Zn+1 = Zn * Zn * Zn + C
Zn+1 = Zn * Zn * Zn * Zn + C
【マンデルブロ集合】
追記:
マンデルブロ集合とは?、またその計算方法については、ネットにいろいろな方が書いているので、詳しくはそちらを参照願います。
マンデルブロ集合の不思議な世界 (sakura.ne.jp)