リアプノフ・フラクタル

リアプノフ・フラクタルは、単純ながら複雑な振る舞いを示すことで知られるロジスティック写像を発展させて得られる美しい分岐的フラクタル図形です。通常のロジスティック写像では、系の成長率にあたるパラメータは一定ですが、リアプノフ・フラクタルではこの成長率が、周期的に二つの異なる値、aとbの間で切り替わる場合を考察します。

このフラクタルは、二次元平面上で描かれます。平面の横軸をa、縦軸をbとし、これらの値が変化する各点において、系が時間とともにどのように振る舞うかを調べます。系の振る舞いが安定的か、あるいは予測不能なカオス状態となるかは、リアプノフ指数と呼ばれる指標によって判断されます。リアプノフ指数$\lambda$(ラムダ)が負($\lambda < 0$)であれば系は安定な周期的な振る舞いを示し、正($\lambda > 0$)であればカオス的な振る舞いをします。リアプノフ・フラクタルでは、aとbの値の組に対して計算されたリアプノフ指数の値に応じて、その点が色分けされます。一般的に、安定な領域($\lambda < 0$)は様々な色で描かれ、カオス的な領域($\lambda > 0$)は黒で表示されます。

描画されるaとbの値の範囲は、通常、ロジスティック写像の安定性を考慮して、それぞれ0から4までの区間 [0, 4] が用いられます。特別な場合として、aとbが等しい(a = b)場合は、成長率が一定の通常のロジスティック関数に対応します。また、計算を開始する初期値としては、多くの場合、反復関数の性質上重要な点である0.5が用いられます。

リアプノフ・フラクタルを生成するための基本的なアルゴリズムは以下のステップから構成されます。

1. まず、AとBという二つの記号からなる任意の非自明な文字列(例えば「AABAB」)を選びます。これが成長率がaとbのどちらになるかを決める周期列の基本パターンとなります。
2. この基本文字列を必要なだけ繰り返して、計算に用いる長い周期列Sを構築します。
3. 描画したいa-b平面上の範囲(例えば [0, 4] × [0, 4] )から、計算したい点に対応する(a, b)の組を選びます。
4. 周期列Sに従って、n番目の成長率 $r_n$ を定義します。もしSのn番目の要素がAならば $r_n = a$ とし、Bならば $r_n = b$ とします。
5. 初期値 $x_0 = 0.5$ を設定し、次のロジスティック写像の式を用いて反復計算を行います。
$$ x_{n+1} = r_n x_n (1 - x_n) $$
この計算を多数回繰り返します。
6. 計算された反復列の振る舞いに基づいて、リアプノフ指数$\lambda$を計算します。リアプノフ指数は、初期値に対する微小な変動が時間とともに指数関数的に増大するか減衰するかを示す指標であり、次の式で定義されます。
$$ \lambda = \lim_{N\rightarrow \infty} {1 \over N}\sum_{n=1}^{N}\log \left|{dx_{n+1} \over dx_n}\right| = \lim_{N\rightarrow \infty} {1 \over N}\sum_{n=1}^{N}\log |r_n(1-2x_n)| $$
実際の計算では、無限回の反復は不可能であるため、十分大きなNを選んで$\lambda$を近似的に求めます。
7. 計算によって得られた$\lambda$の値に従って、選んだ点(a, b)に色を付けます。安定領域($\lambda < 0$)には特定の色を割り当て、カオス領域($\lambda > 0$)は黒などで表現します。
8. これらのステップ(3から7)を、描画範囲内の全ての点(a, b)に対して繰り返すことで、リアプノフ・フラクタル全体の画像を生成します。

このような計算は、反復や行列演算に適したMathematicaのような数式処理ソフトウェアには向いていますが、計算効率を重視する低レベルなプログラミング言語で実装する場合には、計算コストなどに注意が必要です。リアプノフ・フラクタルは、比較的単純なルールからいかに複雑で美しい構造が生まれるかを示す好例であり、力学系の安定性やカオスといった概念を視覚的に理解する上で非常に興味深い対象です。

もう一度検索

【記事の利用について】

タイトルと記事文章は、記事のあるページにリンクを張っていただければ、無料で利用できます。
※画像は、利用できませんのでご注意ください。

【リンクついて】

リンクフリーです。