カオス理論における共役マップ
📂動力学カオス理論における共役マップ
概要
カオス理論では、マップの共役は一種のアイソメトリ、アイソモルフィズムと似ており、実際にはもっと一般的な動的な文脈でホメオモルフィズムそのものである。
教科書によって完全に同じではないかもしれないが、目的は正確に同じである。数学では、計算が簡単な場所である性質が確認された後に、実際に証明が必要な場所でその性質を保存することである。
定義
Xで定義された2つのマップに対し、C∘f=g∘Cを満たす連続な単射Cが存在する場合、fとgは共役conjugateであると言われる。
定理
全てのxに対して、g(C(x))=C(f(x))としよう。
- [2]: fのピリオディック-kオービットでC’=0である場合
(gk)′(C(x))=(fk)′(x)
説明
この2つの定理は、共役性がマップを繰り返し適用することや微分を取ることと関係なく保持されることを意味する。これは、あるシステムでリアプノフ指数を計算するのが容易であれば、それと共役なシステムでもリアプノフ指数を計算するのが容易であるということである。
例
良い例は、ロジスティックマップがカオティックなオービットを持つことを示すことである。

例えば、テントマップT:[0,1]→[0,1]はT(x)=1−∣1−2x∣として定義され、ロジスティックマップGはa=4のロジスティックファミリーの一部としてG(x):=g4(x)=4x(1−x)として定義される。この場合
C(x):=21−cosπx
は、TとGが共役になるように存在する連続な単射である。実際に計算してみると
G(C(x))=sin2πx=C(T(x))
となり、容易に確認できる。

上の図は、テントマップを繰り返し適用したときのグラフと、y=xとの交点を見つけることでTのピリオディック-kポイントを見つけ出す過程を示している。これにより、Tは全てのk∈Nに対してピリオディック-kオービットが存在することがわかり、Cの存在と定理1により、Gも全てのk∈Nに対してピリオディック-kオービットが存在することがわかる。
一方で、[0,1]のほぼ至る所でln(Tk(x))′=ln2>0であるため、Tのピリオディックポイントxはソースであり、GのピリオディックポイントC(X)もソースである。したがって、Tのピリオディックオービット{x,⋯,}に対応するGのピリオディックオービット{C(x),⋯}は非漸近的にピリオディックであり得ず、定理[2]によりリアプノフ指数が正であることが保証される。
これは結局、ロジスティックマップがカオティックオービットを持っていることを意味する。この間接的な証明は難しいと感じるかもしれないが、ロジスティックマップがカオティックオービットを持っていることを直接証明するよりはるかに容易であるだろう。
証明
定理1の証明
C(fk−1(x))=gk−1(C(x))が成り立つと仮定すると、
C(fk(x))===g[C(fk−1(x))]g[gk−1(C(x))]gk(C(x))
一方、k=1のとき、f1(x)=xであるため、
g(C(x))=C(f(x))=C(x)
数学的帰納法により全てのk∈Nに対して、
C(fk(x))=gk(C(x))
xがfのピリオディック-kポイントである場合、fk(x)=xであるため、
gk(C(x))=C(x)
したがって、C(x)はgのピリオディック-kポイントとなる。
■
定理[2]の証明
xがfのピリオディック-kポイントであるとしよう。
定理1の証明から、
gk(C(x))=C(fk(x))
チェインルールにより、
(gk)′(C(x))C’(x)=C′(x)(fk)′(x)
C′(x)=0であるため、両辺から項を消去すると、
(gk)′(C(x))=(fk)′(x)
■
コード
以下は、テントマップT、ロジスティックマップG、およびTkのグラフを描画するR言語で書かれたコードである。
tent<-function(x) {1 - abs(1-2*x)}
logistic<-function(x) {4*x*(1-x)}
win.graph(8,4); par(mfrow=c(1,2))
plot(tent,main='Tent Map T')
plot(logistic,main='Logistic Map G\')
win.graph(9,3.5); par(mfrow=c(1,3))
plot(tent,main='T',xlab='x',ylab='y'); abline(0,1)
plot(seq(0,1,len=1000),tent(tent(seq(0,1,len=1000))),main='T^2',type='l',xlab='x',ylab='y');abline(0,1)
plot(seq(0,1,len=1000),tent(tent(tent(tent(tent(seq(0,1,len=1000))))))
,main='T^k',type='l',xlab='x',ylab='y');abline(0,1)