logo

ロジスティックファミリー 📂動力学

ロジスティックファミリー

定義 1

a=2.png

a0a \ge 0に関して、ga(x)=ax(1x)g_{a} (x) = a x ( 1 - x )ロジスティックマップlogistic Mapと呼び、{gaa>0}\left\{ g_{a} \mid a > 0 \right\}ロジスティックファミリーlogistic Familyとする。

性質

  • [1]: x[0,1]    ga(x)0x \in [0,1] \iff g_{a} (x) \ge 0
  • [2]: ga(x)=a(12x)g'_{a} (x) = a ( 1 - 2x)
  • [3]: 1<a41 < a \le 4ならば、x1=a1a\displaystyle x_{1} = {{ a - 1} \over { a }}ga(x)g_{a} (x)の固定点である。
  • [4]: 1<a<31 < a < 3ならば、 limkfk(x)=x1=a1a \lim_{ k \to \infty} f^{k} (x) = x_{1} = {{a-1} \over {a}}

説明

ロジスティックモデルは人口の増減など様々な現象をモデリングするのに役立てることができる。人口であれば、一世代が経過するごとにロジスティックマップgag_{a}を一度適用することとみなせる。ただし、二次関数で初期値がx1[0,1]x_{1} \in [0,1]でなければ関数値は負になるが、そもそもそれ以外には興味が無いため、a0a \ge 0x1[0,1]x_{1} \in [0,1]だけを気にすれば良い。

数式的な理解

  • 0a10 \le a \le 1の場合、gag_{a}は唯一のシンクx1=0x_{1} =0を持ち、マップを適用するとa,x,(1x)a , x, (1-x)は全て11以下になるため、これらの積は続けて小さくなり、マップを適用するたびに00に近づく。人口で考えると、生まれるより死ぬ方が多く、最終的に絶滅へと向かうケースだ。例えば、小さな島にメスのクマが一匹しかおらず、オスのクマだけがたくさんいる場合、それでも再び繁栄する可能性はあるが、その可能性は極めて低い。a<1a<1という条件はほぼ確実な終末を意味し、特に興味深くない。

4<a4 < a の場合、ax(1x)a x (1-x)の最大値がa4>1\displaystyle {{a} \over {4}} > 1なので、マップを適用するたびにだんだん大きくなり、xn=gak(xn1)x_{n } = g^{k}_{a} (x_{n-1})11より大きくなる瞬間が来る。

  • それにより、[1]に基づきxn+1=gak+1(xn)x_{n+1} = g^{k+1}_{a} ( x_{n} )は負になり、その後は負の方向に発散する以外にない。これもあまりに明らかで興味がない。要するに、1a41 \le a \le 4の場合だけに意味がある。
  • [2]と[3]、そしてシンクとソースの判断法によれば、1<a<31 < a < 3ならばga(x1)=2a<1\displaystyle | g'_{a} ( x_{1} )| = | 2 - a | < 1であり、したがって固定点x0x_{0}はシンクになり、**(4)**を得ることができる。マップを続けて適用し、シンクに十分近い点に達したら、その後はシンクへと引き寄せられ、値も安定する。人口で考えれば、成長も衰退もしない、ある種の安定した平衡状態が存在することになる。

一方、aa33より大きくなると、方程式ga2n(x)=xg_{a}^{2^{n}} (x) = xを解くことにより、周期2n2^{n}-シンクを見つけることもできる。この場合、マップを適用するたびにいくつかの数が繰り返し現れ、ランダムなタイミングで停止すると、そのうちの一つを得ることになる。しかし、これはa=3.84a=3.84近くでは成立しないため、定理としてまとめて断言することはできない。

バイファーケーション

以下の分岐図Bifurcation Diagramを見てみよう。分岐図はa=1a=1から次の手順に従って描かれる。

  • ステップ 1. aaを少し増やす。
  • ステップ 2. ランダムなx[0,1]x \in [ 0 , 1 ]を選ぶ。
  • ステップ 3. 点(a,ga101(x))(a, g_{a}^{101} (x) )を打ち、ステップ 1に戻る。

bifurcationdiagram.png

1<a<31 < a < 3の部分の曲線は、初期値xxが何であれ、マップをおよそ百回程度適用すると安定し、一貫した値になることを示している。それ以降は、周期2n2^{n}-シンクが生まれ、二つの間で数値が振動するようになり、赤い線を越えると、四つの値の間で振動する周期222^2-シンクが存在している。しかしある時点から、膨大な数の可能性が生じ、予測が困難な動きをするようになり、これをカオスアトラクターchaotic Attractorsと呼ぶ。

ナチュラルメジャー

一方、周期的軌道がカオス的に動いても、特定の領域に長く滞在することがある。初期値を無視してしまえば、システム本来の性質として、「平均的な」分布を計算することが可能である。この確率密度関数ρ(x)\rho (x)ナチュラルインバリアントデンシティ(Natural Invariant Density)と呼び、数学的には十分に大きいNNに対してp(xN[a,b])=abρ(x)dx\displaystyle p \left( x_{N} \in [a,b] \right) = \int_{a}^{b} \rho (x) dxのように表される。

rho.png

実際に、ロジスティックマップg4=4x(1x)g_{4} = 4 x (1 - x )ρ(x)\rho (x)をプロットすると、上記のようになる。もちろん{x1,x2,}\left\{ x_{1} , x_{2} , \cdots \right\}カオス的なため、本当にxNx_{N}がどこにあるのかを予測することは不可能だが、それでも0011の近くに最も高い確率で存在することが分かる。

コード

以下はバイファーケーションダイアグラムをRで描画するためのコードである。

ga<-function(a,x,k=1) {
  tmp <- a*x *(1 - x)
  if(k==1) {return( tmp ) }
  else {return(ga(a,tmp,k-1))}
}
 
result<-numeric(0)
for(a in seq(1,4.1,by=0.0001))
{
  result<-rbind(result,c(a,ga(a,runif(1),101)))
}
 
win.graph(8,4)
plot(result,main='bifurcation diagram',xlim=c(1,4),ylim=c(0,1),pch=20, cex=0.1,
     xlab='a',ylab='101번째 값')
abline(v=c(3,4),lty=2); abline(h=0)
abline(v=3.45,col='red')

以下はナチュラルインバリアントデンシティの形状を描画するためのRのコードである。

set.seed(150421)
logistic<-function(x) {4*x*(1-x)}
 
record<-runif(1)
for(i in 1:10^5) {record<-c(record,logistic(record[length(record)]))}
out<-hist(record[-(1:10000)])
win.graph(4,4); plot(x=seq(0,1,len=20),out$density,type='l',
                  xlab='x',ylab='ρ',main='Naturla Invariant Density ρ(x)')

  1. Yorke. (1996). CHAOS: An Introduction to Dynamical Systems: p17~21. ↩︎