logo

カオス遷移 📂動力学

カオス遷移

定義

パラメータの変化に応じてシステムがカオスになったりならなかったりする現象をカオス遷移という。

例として、ロジスティックファミリーを考えてみると、ga=ax(1x)g_{a} = ax (1-x) で作られるシステムはパラメータaa によって変化する様子を見せ、a=4a=4 のときカオスオービットを持つことが確認できる。それでは次の質問は「a>4a>4 のときはどうなるか」だ。

まずa>4a>4 の場合はga(x)=ax(1x)g_{a}(x) = ax(1-x) なので、その最大値は11 より大きく、gag_{a}xn[1,1]x_{n} \notin [-1,1] をマイナスにマッピングする。また、二次関数なので一度でもあるτN\tau \in \mathbb{N} に対してxτ>1x_{ \tau } > 1 になるとその後は恐ろしい速度で発散する。カオスオービットがその前にバウンデッドオービットである必要があるが、発散したということはパラメータaa が変化に伴ってカオスの性質を失ったという意味になり、上の定義に従ってカオス遷移と言える。

このような現象は、a>4a>4 の値が大きくなるほど早く起こる。それではxτ>1x_{ \tau } > 1 となるτ\tauaa とどのような関係があるか推測できる。これを実際にシミュレーションで確認することは、コードを実行するだけで次のプロットが描かれるほど難しくない。

2321.png

コードではaa の値を少しずつ増やしながら、ランダムな初期値x0x_{0} に対してxn>1x_{n} >1 を満たすn=τn = \tau を探し、それをN=1000N=1000 回繰り返してτ\tau の平均τ\overline{\tau} を計算する。実際に描かれた図を見ると、a=4+εa = 4 + \varepsilon に対してlogεlog(τ)\log \varepsilon \sim \log \left( \overline{ \tau } \right) のような線形関係が確認できる。

このようなカオス遷移は、ロジスティックマップのシステムだけでなく、多くのシステムで発見される現象である。

コード

ga<-function(a,x,k=1) {
  tmp <- a*x *(1 - x)
  if(k==1) {return( tmp ) }
  else {return(ga(a,tmp,k-1))}
}
 
N<-1000
y<-numeric(0)
A<-4+10^(-(80:120)/20)
for(a in A){
  taubar<-0
  for(i in 1:N){
    tau<-0
    x<-runif(1)
    while(x>0){
      x<-ga(a,x)
      tau=tau+1
    }
    taubar<-taubar+tau
  }
  y<-c(y,taubar/N)
}
 
taubar<-y
a<-A
 
win.graph(); plot(log(a-4),log(taubar),type='l',main='a>4 일 때 로지스틱 맵의 Chaotic Transient')