マンデルブロ集合




 

  • このシミュレーションは、ピンチズーム、マウスのスクロールをサポートします。
  • Chromeブラウザの使用を推奨します。(処理速度の問題)

虚数

二乗して、マイナス( – )となる数を虚数(imaginary number)と呼びます。虚数は実際には存在しないイメージという意味では、アルファベット「i」で表示します。

\[ i^{2} = -1 \]

實數(real number)は、二乗すると、無条件にプラス(+)となるので、虚数は實數とは全く別の新しい数字システムです。
虚数は現実の世界に存在することはできませんが、論理的にも矛盾がなく、コンピュータを利用しても計算が可能なので、数字(number)のシステムで使用されます。
虚数の前に實數をつけて虚数の倍率を示すことができます。つまり、「i、2i、3i、1.5i」のように表します。しかし、虚数のサイズを比較することはできません。つまり、「2i」は「i」よりも大きくありません。これは虚数がプラスでもマイナスでもないからです。

\[ (bi)^{2} = b^{2}\,i^{2} = -b^{2} \]

複素数

實數と純虚数を混ぜて「a + bi」のように表した数が複素数です。
複素数「a + bi」に「b=0」であれば、實數部分である、’a’だけが残ります。
複素数「a + bi」に「a=0」であれば、實數部分が消えて、純虚数である、「bi」だけが残ります。

複素数の表現

複素数は平面に表すことができます。つまり、x軸實數を示す軸とし、x軸と垂直なy軸虚数を表します。
その後、純粋な實數は、横軸に、純虚数は縦軸に対応し、實數と虚数が混ざった複素数は、軸ではなく、平面上の一点に対応します。

Complex number

マンデルブロ集合

マンデルブロ方程式について説明します。マンデルブロー方程式は、変数が「Z」と「C」の、二つだけの非常にシンプルな方程式です。

\[ Z_{n+1} = {Z_n}^{2} + C \]

つまり、複素数「Z」を乗し、そこに「C」を加えて、新たな「Z」を作ります。新たに作られた「Z」を再に乗し、そこに戻って「C」を加えて、再び新しい「Z」を作ります。そう、無限に繰り返します。

マンデルブロは、いくつかの「C」の値では、この方程式から出てくる「Zn」の値が増加し続けるが、別のいくつかの「C」の値は「Zn」の値が非常に小さい二虚数の間を往復することを見つけたし、コンピュータを利用して、「Zn」の値が無限に発散していないそれぞれの「C」の値を画面上に点で表現しました。その結果、正方形、三角形、円形などの純粋な幾何学的図形とは距離が遠い形が出ました。これマンデルブロ集合と呼びます。
マンデルブロは拡大を続けてみたところ、初めの形状と同じ構造が継続して出ました。

Mandelbrot Set

マンデルブロ集合の描き方

まず、コンピュータの画面の1つのピクセルに複素数座標(x、y)を設定し、その値を「C(= x、yi)」と設定します。通常「x」の値の範囲は、「-3 〜 +3」、「y」の値の初期範囲は「-2 〜 +2」に設定します。
この程度の範囲ならば、集合の全体像を遠くから眺めることができます。

Mandelbrot Set

次に、「Z n」が発散しない値を画面上に黒い点で表現すると、その結果がマンデルブロ集合になります。通常は「2〜4」の間の値よりも大きくなると、発散することとし漸化式を停止します。

Mandelbrot Set

漸化式を繰り返しほど、(つまり、「n」の値を大きくするほど)良い画像が得られます。
しかし、コンピュータの演算能力の限界のせいで、無限に計算することはできませんので、適切なレベルで停止します。多く拡大されて入ったところの様子を見るためには、「n」の値を適切に大きくします。

発散が決定された瞬間の「n」の値に応じて、画面に適切な色を着せてあげると、芸術的な絵が出てきます。現在、マンデルブロ集合は、ジュリア集合と共に、コンピュータの演算能力を活用したグラフィックスでの主な材料となります。

Mandelbrot Set