logo

多次元マップのリアプノフ数とその数値計算法 📂動力学

多次元マップのリアプノフ数とその数値計算法

定義 1

スムーズなマップ$\mathbf{f} : \mathbb{R}^{m} \to \mathbb{R}^{m}$と初期値$\mathbf{v}_{0} \in \mathbb{R}^{m}$について、$J_{n} := D \mathbf{f}^{n} ( \mathbf{v}_{0}) \in \mathbb{R}^{m \times m}$としよう。$k = 1 , \cdots , m$において、$m$次元単位球$N := \left\{ \mathbf{x} \in \mathbb{R}^{m} : \left\| \mathbf{x} \right\|_{2} = 1 \right\}$の楕円体$J_{n} N$の軸の長さで、$k$番目に長い軸の長さを$r_{k}^{(n)}$とする。今、$\mathbf{v}_{0}$の$k$番目のリアプノフ数$L_{k}$を以下のように定義する。 $$ L_{k} := \lim_{n\to\infty} \left( r_{k}^{(n)} \right)^{1/n} $$ $\mathbf{v}_{0}$の$k$番目のリアプノフ指数は$h_{k} := \ln L_{k}$と同じように定義される。


  • $r_{k}^{(n)}$の上付き文字$(n)$はべき乗や微分回数ではなく、マップ$\mathbf{f}$を$n$回適用したことを意味する。
  • 当然ながら定義で$L_{1} \ge L_{2} \ge \cdots \ge L_{m}$であり、$h_{1} \ge h_{2} \ge \cdots \ge h_{m}$であり、通常は最も大きい$h_{1}$のみが意味を持ち、$0$との比較が行われる。これは$L_{1}$を$1$と比較することと同じだが、リアプノフ指数(Lyapunov Exponent)で考慮するのは符号だけで済むため、やや面倒であまり使われない。もちろん、概念を学ぶときにはリアプノフ数(Lyapunov Number)の方が直感的で役に立つ。

説明

多次元マップのリアプノフ数は文字通り、$1$次元マップのリアプノフ数を拡張したもので、楕円体の軸を使って定義される。マップ$\mathbf{f}^{n}$のヤコビアンで作られる楕円体の軸というのは、簡単に言えば$\mathbf{f}^{n}$がその軸の方向へ点を移動させているということだ。この軸の大きさが$1$より大きいとは、その軸の方向への膨張を意味し、小さいとはその軸の方向への収縮を意味する。$1$次元マップのリアプノフ数が微分の大きさが$1$より大きいか小さいか、つまり増減で定義されたことを考えると、この非線形マップまで含む一般化は十分妥当だと言えるだろう。

一方で、リアプノフ数を数値的に計算する観点から再考すると、楕円体を考える上で行列の特異値分解が避けられないが、$n$が大きくなるほど、$J_{n}^{T} J_{n}$は非常に大きい特異値$\sigma_{1}$と非常に小さい特異値$\sigma_{m}$を両方持つことになる。人間と違い、コンピュータはこうした数値を保存することに限界があり、それに$J_{n} = D \mathbf{f}^{n} ( \mathbf{v}_{0})$を計算すること自体が難題でもある。だから、一般的には$J_{n}N$を直接計算することは避けた方が良く、数値的にもっと賢い方法を使う。

公式

$$ h_{k} \approx {{ 1 } \over { n }} \sum_{i=1}^{n} \ln \left\| \mathbf{y}_{k}^{(i)} \right\|_{2} $$


導出

ある$U^{(i)}$に対して、楕円体$J_{n} N$と$J_{n} U^{(i)}$の軸の大きさが同じなら、$J_{n} U^{(i)}$を計算しても構わない。連鎖律により、 $$ J_{n} U^{(0)} = D \mathbf{f}(\mathbf{v}_{n-1}) \cdots D \mathbf{f}(\mathbf{v}_{0}) N $$ こちらは右側の項$D \mathbf{f}(\mathbf{v}_{0}) N$から順に計算して左へ進む。$N$が単位球であるため、$N$を直交基底$N = \left[ \mathbf{w}_{1}^{(0)} \cdots \mathbf{w}_{m}^{(0)} \right]$とすると、 $$ \mathbf{z}_{1} = D \mathbf{f}(\mathbf{v}_{0}) \mathbf{w}_{1}^{(0)} \\ \vdots \\ \mathbf{z}_{m} = D \mathbf{f}(\mathbf{v}_{0}) \mathbf{w}_{m}^{(0)} $$ について $$ J_{n} U^{(0)} = D \mathbf{f}(\mathbf{v}_{n-1}) \cdots D \mathbf{f}(\mathbf{v}_{1}) \left[ \mathbf{z}_{1} \cdots \mathbf{z}_{m} \right] $$ が成り立つ。得られた$\left[ \mathbf{z}_{1} \cdots \mathbf{z}_{m} \right]$にグラム-シュミット直交化を適用すると、直交基底$\left[ \mathbf{y}_{1}^{(1)} \cdots \mathbf{y}_{m}^{(1)} \right]$を得る。あまりにも大きな値を持たないようにという意味で、$\left[ \mathbf{w}_{1}^{(1)} \cdots \mathbf{w}_{m}^{(1)} \right] := \left[ {{ \mathbf{y}_{1}^{(1)} } \over { \left\| \mathbf{y}_{1}^{(1)} \right\|_{2} }} \cdots {{ \mathbf{y}_{m}^{(1)} } \over { \left\| \mathbf{y}_{m}^{(1)} \right\|_{2} }} \right]$とすると、ある$U^{(1)}$に対して $$ J_{n} U^{(1)} = D \mathbf{f}(\mathbf{v}_{n-1}) \cdots D \mathbf{f}(\mathbf{v}_{1}) \left[ \mathbf{w}_{1}^{(1)} \cdots \mathbf{w}_{m}^{(1)} \right] $$ このような計算を繰り返すことで $$ J_{n} U^{(n)} = \left[ \mathbf{w}_{1}^{(n)} \cdots \mathbf{w}_{m}^{(n)} \right] $$ となる。したがって、楕円体$J_{n} N$の$k$番目の軸の長さは$\left\| \mathbf{w}_{k}^{(n)} \right\|_{2}^{1/n}$に近い値となる。一方、$\left\| \mathbf{y}_{k}^{(i)} \right\|_{2}$は反復ごとに$k$番目の方向への増減を示しているため、軸の長さは$r_{k}^{(n)} \approx \left\| \mathbf{y}_{k}^{(1)} \right\|_{2} \cdots \left\| \mathbf{y}_{k}^{(n)} \right\|_{2}$となる。従って、充分に大きな$n$において $$ \begin{align*} h_{k} =& \ln \lim_{n\to\infty} \left( r_{k}^{(n)} \right)^{1/n} \\ \approx& \ln\left( r_{k}^{(n)} \right)^{1/n} \\ \approx& \ln\left( \left\| \mathbf{y}_{k}^{(1)} \right\|_{2} \cdots \left\| \mathbf{y}_{k}^{(n)} \right\|_{2} \right)^{1/n} \\ =& {{ 1 } \over { n }} \sum_{i=1}^{n} \ln \left\| \mathbf{y}_{k}^{(i)} \right\|_{2} \end{align*} $$

関連項目

1次元マップのリアプノフ数


  1. Yorke. (1996). CHAOS: An Introduction to Dynamical Systems: p195. ↩︎