미국의 기상학자 Edward Lorenz가 1963년의 논문, Deterministic Nonperiodic Flow에서 소개한 비선형 미분 방정식. 이로부터 나비효과, StrangeAttractor 등, 혼돈 이론의 기초 개념들을 도출해내었고, 그 결과 혼돈 이론에 대한 본격적인 연구가 시작되는 계기를 이루었다.
간략한 유체역학적 의미 ¶
LorenzEquations은 간단히 말해, 공기의 대류 현상에 대한 방정식이다. 즉, 아래쪽에서 가열된 공기가 상승했다가 냉각되어 다시 하강하는 과정을 자세히 들여다보면 어떤 모습을 하고 있는가를 기술한 식이다. 원래 그의 논문에 제시된 식은 총 12개인데, '카오스'를 말할 때 항상 인용되는 것은 다음 세 개의 미분방정식이고, LorenzEquations이라고 하면 보통 이 식들을 가리킨다. 이 식들을 유도하는 과정을 이해하고, 이 식의 진짜 의미를 찾는 것까지는 무리더라도, 대략 각각의 변수가 무슨 의미인지를 알아보는 것 정도는 의미있으리라 본다.
x: 대기가 상승, 하강하여 한번 순환하는 속도와 관련된 양. 대기가 움직이는 속도에 비례.
y: 순환 과정에서 나타나는 온도 차이에 대한 측도. 따뜻한 공기와 차가운 공기의 온도 차.
z: 수직 온도 분포와 관련된 양. 고도에 따른 선형 온도변화로부터의 편차.
사실, 이 방정식들은 Lorenz가 의도적으로 심하게 단순화한 것이다. 따라서, 실제의 대기 운동과는 거리가 좀 있다. Lorenz의 경우는, 어떤 철학에 근거해 단순화한 식들로부터 우연히 카오스를 발견하였지만, 그 이후의 연구자들은 거꾸로 '카오스가 잘 작동하도록' 원래의 식을 정리해나가는 경향이 있다. 그렇다고, 그 논리가 억지라는 건 아니다. 카오스의 해변에서 겨우 모래 장난이나 하던 낙지의 느낌일 뿐이니 별 믿을 바는 못되지만.
dx/dt = a(y - x) dy/dt = rx - y - xz dz/dt = xy - bz (a 대신 σ를 쓰기도 한다.){{|
x: 대기가 상승, 하강하여 한번 순환하는 속도와 관련된 양. 대기가 움직이는 속도에 비례.
y: 순환 과정에서 나타나는 온도 차이에 대한 측도. 따뜻한 공기와 차가운 공기의 온도 차.
z: 수직 온도 분포와 관련된 양. 고도에 따른 선형 온도변화로부터의 편차.
a: Prandtl number와 관련된 양. Prandtl number는 유체의 점성도와 열전도도의 비율. 대기 자체의 성질과 관련된 계수.
b: 바라보는 대기의 영역을 공기가 담긴 상자로 생각했을 때, 상자의 가로-세로 비율.
r: Rayleigh number와 관련된 양. Rayleigh number는 유체의 물질적 특성과 유체 내부에서의 온도 분포, 즉 가열되는 바닥과 차가운 위쪽의 온도차에 의해 결정되는 값으로, 이 수가 일정한 값을 넘어서면 대류가 발생하기 시작한다. (큰 관계는 없는 얘기지만, 비슷한 양으로 Reynolds number라는 것도 있다. 유체가 흐르는 속도와 관련된 양인데, 이 수가 일정 값을 넘으면 난류 turbulence 가 나타난다.)
|}}
b: 바라보는 대기의 영역을 공기가 담긴 상자로 생각했을 때, 상자의 가로-세로 비율.
r: Rayleigh number와 관련된 양. Rayleigh number는 유체의 물질적 특성과 유체 내부에서의 온도 분포, 즉 가열되는 바닥과 차가운 위쪽의 온도차에 의해 결정되는 값으로, 이 수가 일정한 값을 넘어서면 대류가 발생하기 시작한다. (큰 관계는 없는 얘기지만, 비슷한 양으로 Reynolds number라는 것도 있다. 유체가 흐르는 속도와 관련된 양인데, 이 수가 일정 값을 넘으면 난류 turbulence 가 나타난다.)
|}}
Lorenz는 a=10, b=8/3로 두고, r을 변화시키며 x,y,z의 행동을 살펴보았다. 즉, 아래쪽이 점점 뜨거워지면 대류 현상의 모습이 어떻게 바뀌는가를 쳐다본 것이다. 그리고, r이 적당히 큰 영역에 있을 때, 뭔가 특별한 일이 일어난다는 사실을 발견했다.
물이 끓기까지 점점 뜨거워지면서 어떻게 행동하는가 떠올려보라. 사실, r이 클 때 이상한 일이 일어난다는 건 새롭게 알아낸 사실도 아니다. Lorenz의 발견을 깎아내릴 생각까지는 없지만, 그가 한 일은, 정성적으로 이해 가능한 문제를 컴퓨터로(정량적으로, 라고 해줄까 말까?) 분석한 정도라고 생각한다. 낙지는 맥스웰보단 패러데이를 좋아하는 편이다.
약간의 수학적 분석 ¶
{{| 미분해보시라구!
-- S.S.Chern |}}
고맙게도, 미분하는 수고조차 없이 dx/dt=0, dy/dt=0, dz/dt=0 를 풀어 보면 이 곡선의 부동점(혹은 임계점, 특별한 경우에는 수렴점이 될 수 있음)을 찾을 수 있다. 풀면,x = y x(r-1-z) = 0 x² = bz를 얻는다. 따라서, x=0 이라면 x=y=z=0 이고, z=r-1 이라면, x=y=±√(b(r-1)), z=r-1 이다. r=1 이면 다시 한번 x=y=z=0 이고, r>1 이면 서로 다른 두 개의 해를 얻는다. 즉, 임계점은 두 개가 나타난다. (r=2, b=1 이면 (1,1,1)과 (-1,-1,1) 두 점이 임계점이다.) 원래의 방정식이 비선형이라도, 임계점의 가까운 부근에서는 근사적으로 선형으로 볼 수 있고, 이 때, 약간의 산수를 쓰면 어떤 r이 임계점을 수렴점으로 만드는가 판단할 수 있다. Lorenz가 사용한 a=10, b=8/3 을 그대로 사용하면 다음의 결론을 얻는다.
- 0 < r < 1 : t→∞ 에서 모든 점이 P1 으로 수렴.
- 1 < r < r1 ∼ 1.35 : P2, P3 부근에서 급격히 수렴.
- r1 < r < r2 ∼ 24.7 : P2, P3 부근에서 소용돌이를 그리며 수렴.
- r2 < r : 혼돈.
( P1=(0,0,0), P2,3=(±(b(r-1))^(0.5),±(b(r-1))^(0.5),r-1) )
어떤 시스템의 임계점이 한 개에서 두 개로 늘어나는 현상을 쌍갈림 bifurcation 이라고 부르는데, 이 또한 혼돈계가 갖는 성질 중의 하나다. LorenzEquations의 쌍갈림은 별 재미가 없지만, 한 점, 두 점, 네 점, 여덟 점, ... 에서 수렴하는 시스템도 상당히 여럿 알려져 있다. 대표적인 예로, 글릭의 책카오스에도 소개된 고립계의 생물 개체수 모델(혹은 LogisticMap)을 꼽을 수 있다.
비선형 미분방정식의 수치풀이 ¶
LorenzEquations은 x=F(t)의 모양으로 풀 수 없는 비선형 미분방정식이다. (모든 혼돈계는 비선형이다. 하지만 역은 참이 아니다.) 따라서, 수치 기법을 사용하는데, 가장 순진하게는 다음과 같은 방법을 사용할 수 있다. (흔히, "오일러의 방법"(EulerMethod)이라 부른다. 좀 더 정확한 수치를 원하면 "룽게와 쿠타의 방법"(RungeKuttaMethod)이라 알려진 기법을 사용하기도 하지만, 그 근본적인 사상은 어느 것이나 미분의 개념 그대로다.)
dx/dt ∼ Δx/Δt = (x' - x)/Δt = a(y - x)
이므로,
x[n+1] = x[n] + Δt a(y-x) y[n+1] = y[n] + Δt (rx-y-xz) z[n+1] = z[n] + Δt (xy-bz)Δt를 적당히 작은 값(0.001 정도)으로 잡고 x0,y0,z0에 적당히 초기값을 준 뒤, 위의 연산을 반복하면, 반복한 횟수에 따라 해당 t일 때의 x,y,z 를 얻을 수 있다. 프로그래밍 언어마다 조금 다르겠지만, 대략 20줄 내외의 코드면 해결되고, 엑셀 등의 스프레드 쉬트로도 쉽게 할 수 있는 일이다. 충분한 인내심과 시간만 있다면 계산기로도 할 수는 있다. 카오스의 초기 연구자 중 한 사람인 파이겐바움은 약간의 프로그램이 가능한 계산기를 이용했다고 한다. 물론, 연필과 종이만으로도 ... 해볼 사람?
Lorenz Attractor, 나비효과 ¶
사실, 이제와서 나비효과에 대해, Lorenz Attractor 에 대해, 구구절절 늘어놓기란 (혹은 들어주기란) 괴로운 일이다. Benoit Mandelbrot 의 저서, Fractals 에 대한 어떤 서평의 말대로, Read it or, better yet, look at the pictures. 하긴, 이젠 그림도 지겨울 수 있겠다.
왼쪽 그림 (Lorenz Attractor) : a=10, b=8/3, r=28, t=0~20 에서 x,y,z 의 3차원적 표현. (x,y,z)의 최초값은 (5,5,5). (움직이는 gif. 여기까지 읽는동안 혼자 돌아갔을테니 F5를 눌러보시라.)
오른쪽 그림 (나비효과) : a=10, b=8/3, r=22.8, t=0~20 에서 x. 파란색은 (5,5,5), 빨간색은 (5.001,5,5) 에서 시작. 구분을 위해 빨간색을 두 픽셀 위로 올려 플로팅.
오른쪽 그림 (나비효과) : a=10, b=8/3, r=22.8, t=0~20 에서 x. 파란색은 (5,5,5), 빨간색은 (5.001,5,5) 에서 시작. 구분을 위해 빨간색을 두 픽셀 위로 올려 플로팅.
LyapunovExponents 페이지에 이 방정식의 근사 Lyapunov exponent 계산이 있습니다.