Lyapunov Exponents

FrontPage|FindPage|TitleIndex|RecentChanges| UserPreferences P RSS
Lyapunov exponents - 나비효과의 심하기를 보여주는 수치의 일종.

1. 구체적인 정의

좀 더 구체적으로 보자면, 작은 초기값의 차이가 시간이 지남에 따라 지수적으로 증가한다고 할 때, 그 지수의 시간 평균의 "시간→∞" 극한이 리아푸노프 지수의 정의이다. 두 초기값의 차이를 ε, 시간 t 이후 두 값의 차이를 d(t), 리아푸노프 지수를 λ라고 하면,

d(t) = εㆍexp(λt), (t→∞)

로 쓸 수 있다. 0 보다 큰 ε에 대해서, λ<0 이라면 d(t)는 ε보다 점점 작아져 0으로 수렴할 것이고, λ=0 이라면 d(t)는 항상 ε를 유지할 것이고, λ>0 이라면 ε이 아무리 작더라도 t가 커짐에 따라서 d(t)는 얼마든지 커질 수 있다. 따라서 λ의 크기를 보고, 나비효과가 과연 나타날 것인지, 나타난다면 그 규모가 얼마나 될 것인지를 짐작할 수 있겠다.

위 식을 정리하면

d(t) = | F(x。+ ε, t) - F(x。, t) | = εㆍexp(λt),
λ = 1/tㆍLn( | F(x。+ ε, t) - F(x。, t) | / ε ), (t→∞)

를 얻는다. 여기서 조금 더 나가보자면, 미분의 정의에 의해 ε∼0 일 때,

( F(x。+ ε, t) - F(x。, t) ) / ε ∼ F'(x。,t)

이므로,

λ = 1/tㆍLn ( | F'(x。, t) | ), (t→∞)

이다. 한편, 혼돈계를 실제로 기술할 때는 F(x,t)를 수열의 점화식 꼴로 다시 쓰는 것이 보통이므로 (이를테면, LorenzEquations 에서 x' = x + Δtㆍaㆍ(y-x) 혹은, x(n+1) = x(n) + αㆍ( y(n) - x(n) ) 을 떠올려보라), 함수 f를 x(n+1) = f(x(n)) 로 정의하면 위 식은 다음과 같은 꼴로 바꿔 쓸 수 있다. 합성 함수의 미분법과 로그의 성질이 사용되었다.

λ = 1/nㆍLn ( | { f(f(...f(x。)...)) }' | ), (n→∞)
= 1/nㆍ ∑ Ln ( f'(x(n)) ), (n→∞)

2. Lorenz attractor의 LyapunovExponents

x,y,z 세 변수가 서로 얽혀 있다는 점 때문에 위 방법을 적용하기가 곤란하므로, 리아푸노프 지수의 정의
λ = 1/tㆍLn( | F(x。+ ε, t) - F(x。, t) | / ε )  (t→∞)
를 그대로 사용하는 게 좋겠다. 여러 r 값에 대해 F(x。+ ε, t), F(x。, t) 을 각각 계산해서 r-λ(x) 의 그래프를 그려보기로 한다.

컴퓨터를 사용할 때 t→∞ 를 표현할 수는 없으므로, 적당히 큰 t를 잘 골라야 한다. 우선, t가 너무 작으면 나비효과가 나타나기 전 또는, ε가 0으로 수렴하기 전일 수 있다. 물론, t가 클수록 계산은 오래 걸린다. (하지만 실은, 요즘 컴퓨터로는 별 문제도 아니다.) 그리고, 적당히 큰 t만 잡는다고 될 일이 아니다. t가 우연히 두 값이 같은 순간으로 잡히면 λ<0 이 되고, 두 값이 큰 차이가 나는 순간으로 잡히면 λ>0 이 된다. 따라서, 적당한 시간 간격에 대해 λ를 계산한 뒤 평균값을 택해야 한다. 적당한 시간 간격은 위의 나비효과 그림에서 볼 수 있는 "주기" 정도로 잡으면 좋을 것 같다.

왼쪽 : 초기값 (5,5,5), (5.001,5,5) 일 때 r-λ(x)
오른쪽 : 초기값 (5,5,10), (5.001,5,10) 일 때 r-λ(x)


작은 r에 대해서는 λ<<0 으로 수렴하는 성질이 강하고, r이 점점 커지면서 λ도 따라서 증가하다가, r=22 부근부터 양의 일정한 값을 가지는 모양을 볼 수 있다. 리아푸노프 지수를 플로팅했을 때 전형적으로 나타나는 모습이다.

SeeAlso:


"; if (isset($options[timer])) print $menu.$banner."
".$options[timer]->Write()."
"; else print $menu.$banner."
".$timer; ?> # # ?>