* 2004/08/18

오늘 저녁 이후로 내 머리 속에는 '예측가능성'이라는 말이 빙빙 돌고 있다. '유물론과 자유의지'를 쓰면서도 연관되는 것이었는데 정리가 잘 안된다.

그런데 예측가능하다는 게 뭐지? 예측할 수 있다는 것이 무슨 말인가? 어떤 순간에 어떤 시스템의 상태(A)를 알면 다른 순간에 그 시스템의 상태(B)를 '알아낼 수 있다'는 것인가? 이를테면 한식에 비가 오면 그해 풍년이 들고, 천둥이 치면 그해 흉년이 든다는 말이 있는데(적절한 예가 떠오르지 않아 인터넷에서 검색해본 결과 -_-), 한식날 비가 오는지 천둥이 치는지를 확인해 두었다가 그해 풍년이 드는지 흉년이 드는지를 비교해 보는 것이다. 그래서 그 말이 맞으면 그 시스템은 예측가능한 시스템이 된다.

한식날의 날씨와 그해 가을의 결과는 각각 초기조건과 그에 의한 결과이다. 그리고 이 초기조건과 결과를 이어주는 문장(주장)이 시스템의 운동방정식(F)이라고 보면 된다.

B = F(A) 라고 쓸 수 있다. B는 초기조건 A의 함수이며 그 함수가 F다. 우리는 A를 '비가 온다'와 같은 정성적인(qualitative) 진술이 아니라 비가 올 확률이나 습도와 같은 정량적인(quantitative) 진술로 나타낼 수 있다. 즉 뜨겁다 차다라는 식이 아니라 그 상태의 온도가 영하 10도냐 영상 109도냐 하는 식으로 말할 수 있다는 것이다. 이렇게 정량적으로 해야만 우리는 수학적인 방정식을 풀어낼 수 있다.

어떤 시스템을 예측할 수 있는지 없는지를 검증할 때에 우리는 실제 세계와 그 세계를 기술하는 운동방정식에 의한 결과를 비교해야 한다. 즉 현상과 방정식.이다. 앞에서 말했지만 방정식은 복잡한 현상을 추상화/단순화한 것이므로 방정식은 늘 현상의 '일부'만을 나타낼 뿐이다. 추상화/단순화하는 과정에서 '오차'가 생기기 마련이다. 이외에도 여러가지 오차가 있다. 오차들을 정리해보자.

(a) 현상을 추상화/단순화하는 과정(즉 방정식을 만드는 과정)에서 생기는 오차
(b) 초기조건 A를 '측정'할 때 생기는 오차(인간의 측정능력에는 한계가 있으므로 오차가 있을 수밖에 없다.)
(c) 운동방정식 F를 푸는 과정에서 생기는 오차(운동방정식에 따라 정확히 풀리는 문제가 있는가 하면, 그렇지 않은 문제도 있다. 정확히 풀리는 경우 이 오차는 없다고 봐도 된다.)
(d) F를 풀어 얻은 결과 B가 아닌, 실제 현상의 결과를 측정할 때 생기는 오차

(d)에 대한 보충설명을 해보자. 지금 이 논의에는 4개의 상태가 있다. 현상-지금, 현상-미래, 방정식-지금, 방정식-미래. 이렇게 4가지다. 현상-지금을 '측정'하여 방정식-지금을 얻는다. 방정식-지금에서 시작하여 방정식을 풀면 방정식-미래를 얻는다. 방정식-미래와 현상-미래를 비교해야만 '예측가능성' 여부를 결정할 수 있다. 즉 (d)는 현상-미래를 '측정'하면서 생기는 오차를 말하는 것이다.

(c)를 제외한 나머지 오차들은 우리 인간이 어쩔 수 없는 것들이다. 오차 (a)를 줄이기 위해서 우리는 더 많은 변수를 필요로 하고 또는 방정식을 복잡하게 만들어야 한다. 방정식이 아무리 복잡해져도 오차는 생길 수밖에 없다. (b)와 (d)는 측정기술의 발달로 줄어들겠지만 여전히 오차가 생길 수밖에 없다.

오차 (c)는 방정식에 따라 0이 될 수도 있고 아닐 수도 있다. 손으로 정확히 풀어낼 수 있는 방정식이라면 문제가 없지만 그렇지 못한 경우에는 근사식(정확한 식은 아니지만 비슷한 결과가 나오면서도 원래 식과는 조금 다른 식)을 이용해야 하는데 여기에서 오차가 생긴다. 또는 컴퓨터를 이용해서 계산할 경우에 컴퓨터도 소수점 아래자리를 나타내는데 한계가 있으므로 오차가 생긴다(round-off error).

이렇게 여러가지 어려움이 있기 때문에 예측가능성을 이루어내기가 쉽지 않다. 아직 풀어야할 문제들이 더 있는데 일단 다음 글로 미루겠다.

---

이어서 쓴다.

(a) 현상을 추상화/단순화하는 과정(방정식을 만드는 과정)에서 생기는 오차
(b) 초기조건 A를 '측정'할 때 생기는 오차
(c) 운동방정식 F를 푸는 과정에서 생기는 오차
(d) F를 풀어 얻은 결과 B가 아닌, 실제 현상의 결과를 측정할 때 생기는 오차

현상-지금 ...... 현상 ........ 현상-미래
      |                ↓(a)             ↑(d)
      ↓(b)        방정식              ↓
방정식-지금 ---------→ 방정식-미래
                       (c)
 
(d) 옆에는 양방향 화살표를 썼는데 두 값을 비교해야 한다는 뜻이다.

혼돈 현상의 주요한 성질은 '초기조건에의 민감한 반응성'이다. 북경에서 나비가 날개짓을 어떻게 하느냐에 따라 미국에 폭풍이 올지 말지가 결정된다는 식이다. 소심한 나는 나의 작은 행동이 나중에 커다란 변화를 가져올 것만 같아서 늘 고민했던 적이 있다. 지금도 그렇다. -_-;;; 그러다 고등학교 때 <카오스>라는 책을 보고 바로 이거구나!라는 생각을 했다. 그 영향이 지금까지 남아 있다고 봐도 된다. 지나치게 민감한 것은 대인관계에서 여러 문제를 낳기도 한다. 이리저리 부딪히면서 조금은 무뎌졌다.

하여간 혼돈 현상의 '발견'은 오차 (c)와 연관된다. 기상학자 로렌츠는 기상현상을 모델링하여 운동방정식을 만들었는데 정확히 풀어낼 수 없는 것이었다. 그래서 컴퓨터를 이용하여 문제를 풀었다. 처음에는 초기조건을 소수점 여섯째 자리까지 넣어서 결과를 얻었다. 그런데 다음번에는 귀찮아서(?) 소수점 셋째 자리까지만 넣어서 결과를 얻었다. 여섯째 자리나 셋째 자리나 그게 그거라고 생각했지만 그 미묘한 차이가 나중에는 커다란 차이로 증폭된 것을 발견한다. 굉장한 발견이다.

여기서 초기조건은 실제 측정값일 수도 있고 그냥 한번 넣어본 값일 수도 있다. 로렌츠가 한 일이 어느 경우인지 모르겠지만 그게 중요한 것은 아니다. 우리에게 방정식이 주어져 있다면 그것은 하나의 초기조건에 하나의 결과를 보여준다. 소수점 여섯째 자리까지 있는 초기조건을 넣으면 그에 맞는 결과가 계산되어 나오며, 셋째 자리까지 있는 초기조건을 넣으면 그에 맞는 결과가 계산되어 나온다. 이것은 전혀 혼돈스럽지 않다.

그럼에도 이러한 결과가 혼돈스러울 수 있는 것은 오차 (b)를 연관지어 설명할 때 알 수 있다. 아무리 정교한 방정식을 만들고 그것을 슈퍼컴퓨터로 풀어낸다고 하더라도 오차 (b)의 아주 작은 차이가 엄청난 차이를 불러올 것이므로 정교함과 슈퍼함(-_-)은 무용지물이 되는 것이다.

혼돈 이론이 나오기 전까지의 물리학은 많은 현상들을 설명해내고 예측해냈다. 그것이 성공적이었던 것은 초기조건의 아주 작은 오차가 결과에서도 아주 작은 오차로 남아 있거나 오히려 오차가 줄어드는 시스템만을 다루었기 때문이다. 그러한 시스템들에서만 '예측가능성'이 인정받을 수 있다. 또한 그만큼 현상에서 방정식을 추상화해내는 일들이 성공적이었다. 하지만 실제 세계는 더욱 복잡하고 더욱 혼돈스럽다. 그전까지는 코끼리 다리만 만지면서 코끼리가 어떻게 생겼는지를 논하고 있었다고 과장해서(또는 결코 과장이 아닌) 말할 수도 있다.

오차 (c)가 0이 되는 경우는 주어진 방정식을 정확하게 풀어낼 수 있을 때에 그렇다. 주로 정확히 풀리는 방정식은 '선형(linear) 방정식'이다. 그런데 그렇게 풀어낼 수 없는 방정식은 주로 '비선형(nonlinear) 방정식'이다. 그래서 혼돈 이론에는 늘 '비선형 동역학'이라는 말이 붙어 다닌다.

이제 예측가능성에 대한 의문이 꽤 정리되었다. 그리고 그것이 '오차'와 어떠한 연관을 맺는지도 어느 정도 분명해졌다. 기쁘다. -0-;;

정리하면, 초기조건에 민감하게 반응하는 시스템(즉 혼돈 시스템)은 예측 불가능하다.

이지만, 대략 맞다고 할 수 있지만, 아직 오차 (d)가 고려되지 않았다. 이건 다음 글에서...

---

앞에서 정리한 '초기조건에 민감한 시스템은 예측 불가능하다'고 한 문장은 맞다. 그런데 예측 가능하다, 불가능하다는 딱 잘라 쪼갤 수 없다. 내가 결과 값으로 100을 예측했는데 실제 결과가 67이 나왔다고 하자. 33만큼의 차이가 있다. 100 중 33의 오차를 보고 예측가능이라고 할 것인가 불가능이라고 할 것인가. 사람마다, 기준을 어떻게 세우느냐에 따라 달라진다.

현상-미래의 측정값(오차 (d)가 이미 포함된)과 방정식-미래의 계산값(B)의 차이(이 값을 D라고 하자)이 똑같아도 오차 (d)에 의한 효과가 남아있다. D와 (d) 중 어느 것이 더 크냐에 따라서 그리고 D가 B에 비해 얼마나 되는지에 따라서 예측가능성 여부가 달라질 수 있다.

대충 어떤 문제인지는 알겠는데, 더이상 뭘 어떻게 해야할 지 모르겠다. 하여간 다른게 다 잘 되더라도 D와 (d)를 비교함으로써 어떤 시스템의 예측가능성 여부를 판단해야 한다.

여기서 끝!

---

생각해보니 조금 바뀌어야 할 부분이 있다. 원래 그림은 아래이고, 바뀐 그림은 그 아래다.

현상-지금 ...... 현상 ........ 현상-미래
      |                ↓(a)             ↑(d)
      ↓(b)        방정식              ↓
방정식-지금 ---------→ 방정식-미래
                       (c)

현상-과거 ... 현상-지금 ......... 현상-미래
      ↓(a)           ↓(b)                  ↕(d)
  방정식 :    방정식-지금 --→ 방정식-미래
                                   (c)

앞 그림에서 '현상-지금'과 '현상-미래' 사이에 있던 '현상'으로부터 '방정식'이 도출된 것이 아니라 아래 그림에서처럼 '현상-과거'로부터 '방정식'이 도출된 것이 맞다. 사실 두 그림이 크게 다른 것은 아니고 좀더 정확하게 한 것이다. 이렇게 새로 그림을 그리면 오차 (a)와 오차 (b)가 구분되는 것이라기보다는 연속적이다.