リアプノフ・フラクタル

提供: miniwiki
移動先:案内検索
ファイル:Lyapunov fractal 1.png
繰り返し列 AB の標準的なリアプノフ・フラクタル
ファイル:Lyapunov fractal 2.png
繰り返し列 AABAB のリアプノフ・フラクタル

リアプノフ・フラクタル: Lyapunov fractal)とは、個体数の成長指数 r が周期的に2つの値 ab に切り替わるロジスティック写像を拡張することで得られる分岐的フラクタルである。

リアプノフ・フラクタルは、ab について与えられた周期列の a-b 平面における安定的振る舞いとカオス的振る舞いの領域(リアプノフ指数 [math]\lambda[/math] を使って測る)の写像により構築される。掲載している図では色が付いている部分が [math]\lambda \lt 0[/math](安定)で、黒い部分が [math]\lambda \gt 0[/math](カオス)である(左上が (a,b) = (0,0))。

属性

リアプノフ・フラクタルは ab の値を [math][0,4][/math] の範囲で変化させて描画するのが一般的である。a = b の場合、単純なロジスティック関数と同じである。

初期値は反復関数の臨界点である 0.5 とするのが普通である。

リアプノフ・フラクタルを生成するアルゴリズム

リアプノフ・フラクタルを計算するアルゴリズムをまとめると、次のようになる。

  1. A と B からなる任意の自明でない長さの文字列を選ぶ(例えば、AABAB)。
  2. その文字列を必要なだけ繰り返した周期列 [math]S[/math] を構築する。
  3. (a,b) を [math](a,b) \in [0,4] \times [0,4][/math] の範囲で選ぶ。
  4. [math]S_n = A[/math] なら [math]r_n = a[/math][math]S_n = B[/math] なら [math]r_n = b[/math] となる関数を定義する。
  5. [math]x_0 = 0.5[/math] とし、[math]x_{n+1} = r_n x_n (1 - x_n)[/math] を繰り返し計算する。
  6. 次のようにリアプノフ指数を計算する:
    [math]\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)|[/math]
    実際には、適当な大きさの [math]N[/math] を選ぶことで [math]\lambda[/math] を近似的に求めることができる。
  7. [math](a,b)[/math] の色を [math]\lambda[/math] の値に従って決める。
  8. (3-7) のステップを描画範囲について繰り返す。

このアルゴリズムはMathematicaなどの言語に適しているが、低レベルなプログラミング言語には向かない。

外部リンク

  • [1] EFG's Fractals and Chaos - Lyapunov Exponents
  • [2] Lyapunov Space - The Chaos Hypertextbook by Glenn Elert

テンプレート:Fractals