logo

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

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

定義 1

スムーズなマップf:RmRm\mathbf{f} : \mathbb{R}^{m} \to \mathbb{R}^{m}と初期値v0Rm\mathbf{v}_{0} \in \mathbb{R}^{m}について、Jn:=Dfn(v0)Rm×mJ_{n} := D \mathbf{f}^{n} ( \mathbf{v}_{0}) \in \mathbb{R}^{m \times m}としよう。k=1,,mk = 1 , \cdots , mにおいて、mm次元単位球N:={xRm:x2=1}N := \left\{ \mathbf{x} \in \mathbb{R}^{m} : \left\| \mathbf{x} \right\|_{2} = 1 \right\}楕円体JnNJ_{n} Nの軸の長さで、kk番目に長い軸の長さをrk(n)r_{k}^{(n)}とする。今、v0\mathbf{v}_{0}kk番目のリアプノフ数LkL_{k}を以下のように定義する。 Lk:=limn(rk(n))1/n L_{k} := \lim_{n\to\infty} \left( r_{k}^{(n)} \right)^{1/n} v0\mathbf{v}_{0}kk番目のリアプノフ指数hk:=lnLkh_{k} := \ln L_{k}と同じように定義される。


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

説明

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

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

公式

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


導出

あるU(i)U^{(i)}に対して、楕円体JnNJ_{n} NJnU(i)J_{n} U^{(i)}の軸の大きさが同じなら、JnU(i)J_{n} U^{(i)}を計算しても構わない。連鎖律により、 JnU(0)=Df(vn1)Df(v0)N J_{n} U^{(0)} = D \mathbf{f}(\mathbf{v}_{n-1}) \cdots D \mathbf{f}(\mathbf{v}_{0}) N こちらは右側の項Df(v0)ND \mathbf{f}(\mathbf{v}_{0}) Nから順に計算して左へ進む。NNが単位球であるため、NNを直交基底N=[w1(0)wm(0)]N = \left[ \mathbf{w}_{1}^{(0)} \cdots \mathbf{w}_{m}^{(0)} \right]とすると、 z1=Df(v0)w1(0)zm=Df(v0)wm(0) \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)} について JnU(0)=Df(vn1)Df(v1)[z1zm] 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] が成り立つ。得られた[z1zm]\left[ \mathbf{z}_{1} \cdots \mathbf{z}_{m} \right]グラム-シュミット直交化を適用すると、直交基底[y1(1)ym(1)]\left[ \mathbf{y}_{1}^{(1)} \cdots \mathbf{y}_{m}^{(1)} \right]を得る。あまりにも大きな値を持たないようにという意味で、[w1(1)wm(1)]:=[y1(1)y1(1)2ym(1)ym(1)2]\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)U^{(1)}に対して JnU(1)=Df(vn1)Df(v1)[w1(1)wm(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] このような計算を繰り返すことで JnU(n)=[w1(n)wm(n)] J_{n} U^{(n)} = \left[ \mathbf{w}_{1}^{(n)} \cdots \mathbf{w}_{m}^{(n)} \right] となる。したがって、楕円体JnNJ_{n} Nkk番目の軸の長さはwk(n)21/n\left\| \mathbf{w}_{k}^{(n)} \right\|_{2}^{1/n}に近い値となる。一方、yk(i)2\left\| \mathbf{y}_{k}^{(i)} \right\|_{2}は反復ごとにkk番目の方向への増減を示しているため、軸の長さはrk(n)yk(1)2yk(n)2r_{k}^{(n)} \approx \left\| \mathbf{y}_{k}^{(1)} \right\|_{2} \cdots \left\| \mathbf{y}_{k}^{(n)} \right\|_{2}となる。従って、充分に大きなnnにおいて hk=lnlimn(rk(n))1/nln(rk(n))1/nln(yk(1)2yk(n)2)1/n=1ni=1nlnyk(i)2 \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. ↩︎