로지스틱 패밀리
정의 1
$a \ge 0$ 에 대해 $g_{a} (x) = a x ( 1 - x )$ 를 로지스틱 맵logistic map이라고 하고 $\left\{ g_{a} \mid a > 0 \right\}$ 을 로지스틱 패밀리logistic Family라고 한다.
성질
- [1]: $x \in [0,1] \iff g_{a} (x) \ge 0$
- [2]: $g'_{a} (x) = a ( 1 - 2x)$
- [3]: $1 < a \le 4$ 이면 $\displaystyle x_{1} = {{ a - 1} \over { a }}$ 는 $g_{a} (x)$ 의 고정점이다.
- [4]: $1 < a < 3$ 이면 $$ \lim_{ k \to \infty} f^{k} (x) = x_{1} = {{a-1} \over {a}} $$
설명
로지스틱 모형은 인구의 증감 등의 여러가지 현상을 모델링하는데 유용하게 쓰일 수 있다. 인구라면 한 세대가 지날 때마다 로티스틱 맵 $g_{a}$ 를 한 번 취하는 것으로 볼 수 있다. 일단은 이차함수이므로 초기값이 $x_{1} \in [0,1]$ 가 아니면 함숫값은 음수가 되지만 애초에 그 외엔 관심이 없고, 따라서 $a \ge 0$ 과 $x_{1} \in [0,1]$ 만 신경쓰면 된다.
수식적 이해
- $0 \le a \le 1$ 일 경우 $g_{a}$ 는 유일한 싱크 $x_{1} =0$ 를 갖는데, 맵을 취하면 $a , x, (1-x)$ 모두 $1$ 보다 작거나 같으므로 이들의 곱은 계속 작아져서 맵을 취할때마다 $0$ 에 가까워질수밖에 없다. 인구로 생각해보자면 태어나는 것보다 죽는 게 많아서 결국 멸망으로 가는 경우다. 가령 작은 섬 안에 수컷 곰만 득실거리고 암컷 곰이 한 마리 뿐이라면, 그래도 다시 번성할 수도 있지만 그 가능성은 몹시 낮다. $a<1$ 이라는 조건은 거의 확실한 종말을 의미하고, 별로 궁금할 게 없다.
$4 < a $ 일 경우 $a x (1-x)$ 의 최댓값이 $\displaystyle {{a} \over {4}} > 1$ 이므로 맵을 취할때마다 점점 더 커져서 $x_{n } = g^{k}_{a} (x_{n-1})$ 이 $1$ 보다 커지는 순간이 올 수밖에 없다.
- 그러면 [1]에 의해 $x_{n+1} = g^{k+1}_{a} ( x_{n} )$ 은 음수고, 그 후로는 음의 방향으로 발산할수밖에 없다. 이 역시 너무 당연하기 때문에 별로 궁금할 게 없다. 정리하자면 $1 \le a \le 4$ 일 때만 어떤 의미가 있다.
- [2]와 [3], 그리고 싱크와 소스 판정법에 의해 $1 < a < 3$ 이면 $\displaystyle | g'_{a} ( x_{1} )| = | 2 - a | < 1$ 이므로 고정점 $x_{0}$ 는 싱크가 되고, 따라서 (4) 를 얻을 수 있다. 이 경우 맵을 계속 취하다가 싱크랑 충분히 가까운 점이 걸리면 그 뒤로는 싱크로 끌려가고 값 역시 안정된다. 인구로 보면 어느 안정적인 평형 상태가 있어서 더 이상 성장하지도 않고 쇠퇴하지도 않는 것이다.
한편 $a$ 가 $3$ 보다 더 커지면 방정식 $g_{a}^{2^{n}} (x) = x$ 을 품으로써 피리어딕-$2^{n}$ 싱크를 찾을 수도 있다. 이 경우 맵을 취할때 마다 몇가지 수가 반복해서 나타나며, 랜덤한 타이밍에 멈춘다면 그들 중 하나를 얻게 될 것이다. 다만 이는 $a=3.84$ 부근에서 성립하지 않아 정리로 만들어서 장담할 수는 없다.
바이퍼케이션
아래의 분기 그림Bifurcation Diagram을 살펴보자. 분기그림은 $a=1$ 부터 다음의 순서에 따라 그려진다.
- Step 1. $a$ 를 아주 조금 증가시킨다.
- Step 2. 랜덤한 $x \in [ 0 , 1 ]$ 을 뽑는다.
- Step 3. 점 $(a, g_{a}^{101} (x) )$ 를 찍고 Step 1. 으로 돌아간다.
$1 < a < 3$ 부분의 곡선은 초기값 $x$ 가 무엇이든 $g_{a}$ 를 백여번 정도 취하면 안정되고 일관된 값이 된다. 그 이후론 피리어딕-$2^{n}$ 싱크가 생겨 둘 중 하나로 수가 진동하게 되며, 빨간선을 넘어서면 피리어딕 $2^2$-싱크가 존재해서 네 개의 값 사이에서 진동한다. 그러다가 어느 순간부터는 엄청나게 많은 경우의 수가 생겨버리는데, 이렇게 예측하기 어려워지는 움직임을 캐어릭 어트랙터chaotic Attractors라 한다
네츄럴 메져
한편 피리어딕 오빗들은 캐어릭하게 움직이더라도 특정 구역에 더 오래 머무를 수도 있다. 이는 초기값과 관계 없이 시스템 본연의 성질로써 초기의 값을 버리고 나면 ‘평균적인’ 분포를 계산할 수 있다. 이러한 성질을 가지는 확률밀도함수 $\rho (x)$ 를 네츄럴 인베리언트 덴서티(Natural Invariant Density) 라고 하며 수식적으로는 충분히 큰 $N$ 에 대해 $\displaystyle p \left( x_{N} \in [a,b] \right) = \int_{a}^{b} \rho (x) dx$ 와 같이 표현할 수 있다.
실제로 로지스틱 맵 $g_{4} = 4 x (1 - x )$ 의 $\rho (x)$ 를 그려보면 위와 같다. 물론 $\left\{ x_{1} , x_{2} , \cdots \right\}$ 은 캐어릭하기 때문에 정말로 $x_{N}$ 이 어디 있는지까지는 예측할 수 없지만 그래도 $0$ 과 $1$ 근처에 있을 확률이 제일 높은 건 알 수 있다.
코드
아래는 바이퍼케이션 다이어그램을 그리는 코드를 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)')
Yorke. (1996). CHAOS: An Introduction to Dynamical Systems: p17~21. ↩︎