多次元マップのリアプノフ数とその数値計算法
📂動力学多次元マップのリアプノフ数とその数値計算法
定義
スムーズなマップf:Rm→Rmと初期値v0∈Rmについて、Jn:=Dfn(v0)∈Rm×mとしよう。k=1,⋯,mにおいて、m次元単位球N:={x∈Rm:∥x∥2=1}の楕円体JnNの軸の長さで、k番目に長い軸の長さをrk(n)とする。今、v0のk番目のリアプノフ数Lkを以下のように定義する。
Lk:=n→∞lim(rk(n))1/n
v0のk番目のリアプノフ指数はhk:=lnLkと同じように定義される。
- rk(n)の上付き文字(n)はべき乗や微分回数ではなく、マップfをn回適用したことを意味する。
- 当然ながら定義でL1≥L2≥⋯≥Lmであり、h1≥h2≥⋯≥hmであり、通常は最も大きいh1のみが意味を持ち、0との比較が行われる。これはL1を1と比較することと同じだが、リアプノフ指数(Lyapunov Exponent)で考慮するのは符号だけで済むため、やや面倒であまり使われない。もちろん、概念を学ぶときにはリアプノフ数(Lyapunov Number)の方が直感的で役に立つ。
説明
多次元マップのリアプノフ数は文字通り、1次元マップのリアプノフ数を拡張したもので、楕円体の軸を使って定義される。マップfnのヤコビアンで作られる楕円体の軸というのは、簡単に言えばfnがその軸の方向へ点を移動させているということだ。この軸の大きさが1より大きいとは、その軸の方向への膨張を意味し、小さいとはその軸の方向への収縮を意味する。1次元マップのリアプノフ数が微分の大きさが1より大きいか小さいか、つまり増減で定義されたことを考えると、この非線形マップまで含む一般化は十分妥当だと言えるだろう。
一方で、リアプノフ数を数値的に計算する観点から再考すると、楕円体を考える上で行列の特異値分解が避けられないが、nが大きくなるほど、JnTJnは非常に大きい特異値σ1と非常に小さい特異値σmを両方持つことになる。人間と違い、コンピュータはこうした数値を保存することに限界があり、それにJn=Dfn(v0)を計算すること自体が難題でもある。だから、一般的にはJnNを直接計算することは避けた方が良く、数値的にもっと賢い方法を使う。
公式
hk≈n1i=1∑nlnyk(i)2
導出
あるU(i)に対して、楕円体JnNとJnU(i)の軸の大きさが同じなら、JnU(i)を計算しても構わない。連鎖律により、
JnU(0)=Df(vn−1)⋯Df(v0)N
こちらは右側の項Df(v0)Nから順に計算して左へ進む。Nが単位球であるため、Nを直交基底N=[w1(0)⋯wm(0)]とすると、
z1=Df(v0)w1(0)⋮zm=Df(v0)wm(0)
について
JnU(0)=Df(vn−1)⋯Df(v1)[z1⋯zm]
が成り立つ。得られた[z1⋯zm]にグラム-シュミット直交化を適用すると、直交基底[y1(1)⋯ym(1)]を得る。あまりにも大きな値を持たないようにという意味で、[w1(1)⋯wm(1)]:=[y1(1)2y1(1)⋯ym(1)2ym(1)]とすると、あるU(1)に対して
JnU(1)=Df(vn−1)⋯Df(v1)[w1(1)⋯wm(1)]
このような計算を繰り返すことで
JnU(n)=[w1(n)⋯wm(n)]
となる。したがって、楕円体JnNのk番目の軸の長さはwk(n)21/nに近い値となる。一方、yk(i)2は反復ごとにk番目の方向への増減を示しているため、軸の長さはrk(n)≈yk(1)2⋯yk(n)2となる。従って、充分に大きなnにおいて
hk=≈≈=lnn→∞lim(rk(n))1/nln(rk(n))1/nln(yk(1)2⋯yk(n)2)1/nn1i=1∑nlnyk(i)2
■
関連項目