フラクタル図形をどこまで拡大できるか?
2020年7月27日
ロマネスコという野菜をご存知でしょうか? 料理ではピクルスなどで見かけますが, その先端にはどこまでも続く美しい螺旋模様が形成されています. この野菜のロマネスコのように, ある部分をどこまで拡大しても同じような形が見える図形のことをフラクタル図形といいます. 今回フラクタル図形の一種である, マンデルブロ集合を例として, フラクタル図形がどこまで続いているのかを検証しました. まずは, Gif動画をご覧ください.

上の動画は, 最終的に9500万倍まで拡大したものです. 境界上の点について, どこまでも自己相似性( : 同じ形が繰り返すこと)が観察できると思います.
マンデルブロ集合とは?
マンデルブロ集合(Mandelbrot set)は, 歴史上初めてフラクタル図形として定式化された複素数の集合で, 発見者としてフランスの数学者から名付けられました. マンデルブロ集合の定義としては非常にシンプルであり, 以下の漸化式
\begin{cases}
z_{n+1} = z_{n}^{2}+c\\
z_{0}=0
\end{cases}
で定義される複素数列\(z_{n}\)が\(n \rightarrow \infty \)の極限で無限大に発散しないという条件を満たす複素数c全体が作る集合です.
プログラミングの方法
上の動画では, 複素平面上の点c=a+ibで, 上の漸化式に当てはめた時, 無限大に発散しない点が青色に塗られています. プログラムを作成するにあたり, 複素数は扱いづらいので, 複素数cを実部aと虚部bにわけ, ある平面上の点(a,b)について, 以下のような漸化式を解いていきます.
\begin{cases}
x_{n+1} = x_{n}^{2}-y_{n}^2 + a\\
y_{n+1}=2 x_{n}y_{n} + b\\
x_{0}=0\\
y_{0}=0
\end{cases}
ここで, \( |z_{n}|^2 =x^2+y^2>2.0 \)であれば, zが発散することが数学的に証明されているので, \(x^2+y^2 > 2\)となるまで計算すれば良いです. 実際には\(n \rightarrow \infty \)まで計算することはできないので, ある回数\(N_{0}\)で打ち止めしています.この打ち止め回数\(N_{0}\)は, フラクタルの境界に近づけば近づくほど, 計算の収束が遅くなるため, 拡大とともに\(N_{0}\)を増やしています.
自己相似性のある点を調べる
上の動画では, フォーカスする点は目算で決めたのですが, マンデルブロ集合の境界線上で自己相似性が続く点はMisiurewicz点と呼ばれ, 数学的に導かれています. Misiurewicz点は, 多項式\(P_{c}(z)=z^2+c\)とした時,
$$P_{c}^{(k)}(z)=P_{c}^{(k+n)}(z)$$
となる方程式の根です. ここで, \(P^{(k)}\)はk階の反復合成写像です. 例えば, Misiurewicz点はk=3, n=1の時,\(M_{3,1}\)と表され,
\begin{split}
&P_{c}^{(3)}(z)=P_{c}^{(4)}(z)\\
&\leftrightarrow (c^2+c)^2+c = ((c^2+c)^2+c)^2+c\\
&\leftrightarrow c^8+4c^7+6c^6+6c^5+4c^4=0\\\\
&\therefore\ c=0,-2,-1.5437,\\
&-0.228155493653962 \pm 1.115142508039937 i
\end{split}
以下の動画は, \(M_{3,1}\)の最後の解にフォーカスを当て, 座標セルの長さが倍精度の限界値\(10^{-15}\)まで, 倍率で言うと100兆倍まで拡大したものです.
他の\(M_{k,n}\)については調べていないので, もしよかったら調べてみてください...ところで, 技術的にはどこまで拡大することができるのでしょうか?計算上の工夫をすると倍精度以上の精度を出すこともできるようで, YouTubeには\(10^{-2000}\)まで拡大させている猛者の動画も上がっていました.
他にも色々あるフラクタル図形
ここまでで記事の内容は終了ですが, フラクタル図形には, マンデルブロ集合から発展した, 様々な図形があります. 例えば, ジュリア集合はマンデルブロ集合の定義と微妙に異なり,
$$z_{n+1} = z_{n}^{2}+c$$
において, cを固定した場合に無限大に発散しないような複素数\(z_{0}\)の集合であり, これも非常に美しいフラクタルを描きます.
また, マルチブロ集合(multibrot set)は,マンデルブロ集合の定義を一般化させて
\begin{cases}
z_{n+1} = z_{n}^{d}+c\\
z_{0}=0
\end{cases}
が無限大に発散しない複素数cの集合で, これもフラクタルになることがわかっています. 芸術的にも数学的にも非常に興味深い世界ですので, もし機会があればぜひ探索してみたいところです.