【数学雑学】何でそうなる?マンデルブロ集合
導入:マンデルブロ集合って?
いきなりですが、下の画像を見てください。

ちょっと不気味かもしれませんが、綺麗だと思いませんか? この画像の中の、黒くなっている部分のことをマンデルブロ集合と呼びます。 厳密には以下の様に表現されます。


  定義:マンデルブロ集合  
$n$を$0$または自然数とし、漸化式

\begin{eqnarray*} z_0=0,\ \ \ \ \ z_{n+1}=z^2_n+c \end{eqnarray*}

で定義される複素数列$\left\{z_n \right\}$を無限大に発散させない
複素数$c$全体が作る集合
を マンデルブロ集合という。



いきなり難しそうな言葉が登場してしまいました。 この後も数式が数多く出てきますが、後で画像もたくさん載せますので、 分からない方は飛ばしてもらって大丈夫です。

厳密な話は置いておき、なるべく簡単に紹介しますね。

漸化式って何?
漸化式とは、「1つ前の数から次の数を決めるルール」のこと
です。 例えば次のように数が並んでいるとしましょう。 数の並びのことを数列と呼びます。

\begin{eqnarray*} 1,\ 6,\ 11,\ 16,\ 21,\ 26,\ \cdots \end{eqnarray*}

$0$番から始めるとすると、この場合$0$番目の数は$1$で、ひとつ前の数に$5$を足すと次の数になるので、

\begin{eqnarray*} z_0=1,\ z_{n+1}=z_n+5 \end{eqnarray*}

という風に表せますね。もし初めの式で、$c=1$なら、

\begin{eqnarray*} z_{0}&=&0\\ z_{1}&=&z_{0}^2+1={0}^2+1=1\\ z_{2}&=&z_{1}^2+1={1}^2+1=2\\ z_{3}&=&z_{2}^2+1={2}^2+1=5\\ z_{4}&=&z_{3}^2+1={5}^2+1=26\\ z_{5}&=&z_{4}^2+1={26}^2+1=677\\ &\ &\vdots \end{eqnarray*}

というように計算していきます。計算していくに従って、どんどん大きくなりますね。 では$c=-1$ならどうなるのでしょうか。

\begin{eqnarray*} z_{0}&=&0\\ z_{1}&=&z_{0}^2-1={0}^2-1=-1\\ z_{2}&=&z_{1}^2-1={(-1)}^2-1=0\\ z_{3}&=&z_{2}^2-1={0}^2-1=-1\\ z_{4}&=&z_{3}^2-1={(-1)}^2-1=0\\ z_{5}&=&z_{4}^2-1={0}^2-1=-1\\ &\ &\vdots \end{eqnarray*}

となり、ずっと同じ値を繰り返していきますね。もし$c=-0.5$だと、

\begin{eqnarray*} z_{0}&=&0\\ z_{1}&=&z_{0}^2-0.2={0}^2-0.2=-0.2\\ z_{2}&=&z_{1}^2-0.2={(-0.2)}^2-0.2=-0.16\\ z_{3}&=&z_{2}^2-0.2={(-0.16)}^2-0.2=-0.1744\\ z_{4}&=&z_{3}^2-0.2={(-0.1744)}^2-0.2=-0.1695\cdots\\ z_{5}&=&z_{4}^2-0.2={(-0.1695\cdots)}^2-0.2=-0.1712\cdots\\ &\ &\vdots \end{eqnarray*}

となり、おそらく一定の値$($約$0.170820\cdots$ $)$に近づいていきます。

$\ c\ $は本来複素数ですが、実数の時はこのように計算していきます。 勿論コンピュータの力を借りて計算するのですが、 計算方法はこのようになっています。

複素数って何?
次に複素数の説明ですが、その前に
虚数単位
のお話をしなければなりません。 虚数単位$(i$で表します$)$というのは簡単で、

「2乗すると$-1$になる数」

のことです。「そんな数あるわけねぇ!」と思うかもしれませんが、
そんな数を想定しても足し算や掛け算はできるよ
っていうくらいのノリです。 今、「2乗すると$-1$になる数」を$i$と置いたので、もちろん

\begin{eqnarray*} i^2=-1 \end{eqnarray*}

ですよね。また、例えば$i$に$5$を掛けると$5i$というように決めておきましょう。 同じように$i$に5を足すと$5+i(i+5$でも構いません$)$となるとしましょう。 すると、$i$を含んだ数同士の計算をすることができます。

\begin{eqnarray*} \left( 5+i\right)+\left(2+3i \right)&=&7+4i\\ &\ &\\ \left( 5+i\right)\times\left( 2+3i\right)&=&10+15i+2i+3i^2\\ &=&10+15i+2i-3\\ &=&7+17i \end{eqnarray*}

$i^2=-1$を使えば、このように計算していけますね。 $i$は文字として扱えばよい、ということです。 このように虚数単位を含んでいても計算できる以上、 $5+i$なども数である、ということが言えると思います。

このように、
$i$を含んだ数のことを複素数
と呼びます。 冒頭に登場した$\ z_n\ $や$\ c\ $は$\ 3i\ $や$\ 5+i\ $といった複素数であるようですね。

発散って何?
分数や実数は小さいもの順に、1本の数直線上に並べることができますね。 では複素数はどうでしょうか。例えば$3i$と$2i$なら、 $3i$のほうが原点より離れている$(=$ 絶対値が大きい $)$といえそうですが、 $3+2i$と$5+i$なら一概には言えません。

実数の部分$(=$ 実部 $)$は$5+i$が大きいのに、虚数単位の部分$(=$ 虚部 $)$は$3+2i$の方が大きくなっていますので、 単純に比較はできませんね。

ですので、複素数を図で表すときは下の様に平面上に点を書きます。

このように、実部と虚部を軸にとって書いた平面を複素数平面と呼びます。 そして複素数の絶対値は原点からの距離と決めます。 例えば$3+2i$と$5+i$の絶対値は、三平方の定理を使えば

\begin{eqnarray*} \left| 3+2i \right|&=&\sqrt{3^2+2^2}=\sqrt{13}\\ \left| 5+i \right|&=&\sqrt{5^2+1^2}=\sqrt{26} \end{eqnarray*}

となりますね。 冒頭に出てきた
「無限大に発散」とはこの絶対値がどんどん大きくなっていくということ
だと考えてください。

つまり$z_n$をどんどん計算して、例えば$z_{1000}$とか$z_{999999}$を求めていったとき、 それが原点からどんどん離れないのであれば、その$\ c\ $はマンデルブロ集合の仲間だ、ということです。 そのような$\ c\ $を複素数平面上に書き足していくと、冒頭のような図になるということですね。

まとめ
「$2$乗して足す」という単純なルールのみでこのような複雑な図形ができてしまうのは、 不思議な気がします。 ジュリア集合やフラクタル等、今回お話しできなかったことはたくさんありますが、 長くなってしまうので、別の機会にお話しできればと思います。

以下に、様々な部分の拡大図を載せておきます。色の決め方や漸化式を様々に変えると、 色々な形が登場して面白いです。 興味が沸いたの方は、試しにコーディングにチャレンジしてみてはいかがでしょうか。