ふくろう船長が好きなもの

マンデルブロ集合、鉄道、万華鏡、たまにオーディオ

マンデルブロ集合の計算方法

マンデルブロ集合の計算方法について、なるべく簡単に説明します。

 

マンデルブロ集合の計算は、次の式を繰り返し計算するだけです。

 

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

 

マンデルブロ集合】

f:id:captain_owl:20220108001643j:plain

 

【関連ページ 色の割り当て方法】

【関連ページ 計算で使用しているハードウェア】

 

追記:

マンデルブロ集合とは?、またその計算方法については、ネットにいろいろな方が書いているので、詳しくはそちらを参照願います。

マンデルブロ集合 - Wikipedia

マンデルブロ集合の不思議な世界 (sakura.ne.jp)