【数学雑学】何でそうなる?マンデルブロ集合
導入:マンデルブロ集合って?
ちょっと不気味かもしれませんが、綺麗だと思いませんか?
この画像の中の、黒くなっている部分のことをマンデルブロ集合と呼びます。
厳密には以下の様に表現されます。
定義:マンデルブロ集合
\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$になる数」を$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$乗して足す」という単純なルールのみでこのような複雑な図形ができてしまうのは、
不思議な気がします。
ジュリア集合やフラクタル等、今回お話しできなかったことはたくさんありますが、
長くなってしまうので、別の機会にお話しできればと思います。
以下に、様々な部分の拡大図を載せておきます。色の決め方や漸化式を様々に変えると、
色々な形が登場して面白いです。
興味が沸いたの方は、試しにコーディングにチャレンジしてみてはいかがでしょうか。