7장 — 볼츠만 분포

미시정준 분포: 에너지가 고정된 계와 그 한 부분

지금까지는 작은 계 옆에 열원이 따로 있다고 두었다. 하지만 열원 없이 홀로 움직이는 계도 흔하다. 뚜껑을 닫은 보온병 속 기체는 바깥과 에너지를 거의 주고받지 않고, 이 장 뒤쪽에서 볼 HMC의 궤적도 처음 에너지를 그대로 지키며 굴러간다. 그렇다면 바깥과 에너지를 전혀 주고받지 않아 에너지가 고정된 계는 어떤 분포를 따를까? 그리고 그 안에서 작은 부분 하나만 떼어 보면 어떻게 보일까?

그네 N개의 등고선

이번에는 덩어리 대신 연속 상태로 옮겨 가 보자. 질량과 각진동수가 1인 그네 N개가 서로 약하게 에너지를 주고받되 바깥과는 에너지를 주고받지 않아, 전체 에너지가 E로 고정되어 있다고 하자. 상태는 위치와 운동량 2N개를 좌표로 갖는 위상공간(phase space. 수학의 위상공간인 topological space와는 이름만 같다)의 점이고, 에너지가 E인 상태들은 그 공간에서 하나의 등고선, 곧 반지름 √(2E)인 구면을 이룬다. 모든 미시상태를 똑같이 대접한다는 등확률 가정을 따르면 상태는 이 등고선 위에 고르게 퍼져 있다. 이렇게 에너지가 고정된 계의 등확률 분포를 미시정준 분포 (에너지 등고선 위의 균등 분포, microcanonical distribution)라 한다.

그네 하나만 떼어 보기

이제 전체가 아니라 그네 1 하나만 보자. 그네 1의 에너지가 E₁이면 나머지 N − 1개가 E − E₁을 나눠 가져야 하는데, 나머지 그네들이 에너지 E − E₁ 근처에서 가질 수 있는 상태의 부피는 (E − E₁)^(N−2)에 비례한다(지수가 왜 N − 2인지는 아래 문제 9에서 그네 넷으로 직접 따져 본다). 반면 그네 1 자신의 위상 평면에서 에너지가 E₁과 E₁ + dE₁ 사이인 고리의 넓이는 E₁과 상관없이 일정하다. 그래서 그네 1의 에너지 분포는 나머지 그네들, 곧 열원의 경우의 수가 혼자 정하고, 그네 하나당 평균 에너지를 T = E/N으로 두면 다음과 같다.

ρ(E1)∝(1−E1NT)N−2  ⟶  e−E1/T(N→∞)\textcolor{#e377c2}{\rho}(\textcolor{#ff7f0e}{E_1}) \propto \Big(1 - \frac{\textcolor{#ff7f0e}{E_1}}{\textcolor{#1f77b4}{N}\textcolor{#8c564b}{T}}\Big)^{\textcolor{#1f77b4}{N} - 2} \;\longrightarrow\; e^{-\textcolor{#ff7f0e}{E_1}/\textcolor{#8c564b}{T}} \qquad (\textcolor{#1f77b4}{N} \to \infty)
ρ(E1)그네 1의 에너지가 E1일 확률밀도E1그네 1의 에너지N그네의 개수 (전체 에너지 E=NT로 고정)T그네 하나당 평균 에너지 = 온도 (k = 1)\begin{array}{ll} \textcolor{#e377c2}{\rho}(\textcolor{#ff7f0e}{E_1}) & \text{그네 1의 에너지가 } \textcolor{#ff7f0e}{E_1} \text{일 확률밀도} \\ \textcolor{#ff7f0e}{E_1} & \text{그네 1의 에너지} \\ \textcolor{#1f77b4}{N} & \text{그네의 개수 (전체 에너지 } \textcolor{#ff7f0e}{E} = \textcolor{#1f77b4}{N}\textcolor{#8c564b}{T} \text{로 고정)} \\ \textcolor{#8c564b}{T} & \text{그네 하나당 평균 에너지 = 온도 (k = 1)} \end{array}

그네가 둘뿐이면 지수가 0이라 그네 1의 에너지는 0과 E 사이에 고르게 퍼진다. 그런데 그네가 셋만 되어도 E₁이 평균의 두 배를 넘을 확률이 0.111, 10개면 0.134, 100개면 0.135가 되어 지수 분포의 값 e^(−2) = 0.135에 금세 다가간다. (1 − x/N)^N이 e^(−x)로 가는 극한이 여기서 볼츠만 인자를 만든 것이다.

직접 움직여 보기그네 하나의 에너지새 창에서 열기 ↗

코드로 확인하기: 등고선 위에 고르게 뿌린 그네들

전체 에너지가 정확히 E인 그네 N개의 상태를 등고선 위에서 고르게 뽑고, 그중 그네 하나의 에너지만 들여다본다. 위상공간 2N차원에서 정규분포 벡터를 뽑아 길이만 맞추면 구면 위의 균등한 점이 된다는 사실을 쓴다.

import numpy as np
rng = np.random.default_rng(0)

def one_swing_energy(N, E, n_samples=200_000):
    """그네 N개(위상공간 2N차원)의 전체 에너지가 정확히 E인 상태를
    등고선(구면) 위에서 고르게 뽑고, 첫 번째 그네의 에너지를 돌려준다."""
    x = rng.standard_normal((n_samples, 2 * N))        # 방향만 쓸 무작위 벡터
    x *= np.sqrt(2 * E) / np.linalg.norm(x, axis=1, keepdims=True)  # ‖x‖²/2 = E로 맞춤
    return 0.5 * (x[:, 0]**2 + x[:, 1]**2)             # 그네 1의 q²/2 + p²/2

for N in (2, 3, 10, 100):
    e1 = one_swing_energy(N, E=N)                      # 그네 하나당 평균 에너지 1
    print(f"N={N:3d}  평균 {e1.mean():.3f}  "
          f"P(e1>1) {np.mean(e1 > 1):.4f}  P(e1>2) {np.mean(e1 > 2):.4f}")
print("e^(-1) =", round(np.exp(-1), 4), " e^(-2) =", round(np.exp(-2), 4))
# N=  2  평균 0.999  P(e1>1) 0.4994  P(e1>2) 0.0000
# N=  3  평균 0.998  P(e1>1) 0.4431  P(e1>2) 0.1109
# N= 10  평균 0.999  P(e1>1) 0.3869  P(e1>2) 0.1337
# N=100  평균 1.000  P(e1>1) 0.3694  P(e1>2) 0.1351
# e^(-1) = 0.3679  e^(-2) = 0.1353

그네가 둘일 때 그네 1의 에너지는 0과 2 사이에 고르게 퍼져서, 평균 1을 넘을 확률이 정확히 절반이고 2를 넘는 일은 없다. 그네 수를 늘리면 두 확률이 e^(−1)과 e^(−2)로 다가가고, 100개에서는 소수 셋째 자리까지 맞는다. 정규분포는 방향을 고르게 뽑는 데만 썼고 길이는 강제로 맞췄으니, 에너지에 지수 모양을 넣은 곳은 코드 어디에도 없다는 점에 주목하자. 전체를 등고선 위에 고르게 뿌렸을 뿐인데, 부분 하나를 보니 볼츠만 분포가 나왔다.

그네 10개의 전체 에너지를 10T로 고정하고 등고선 위에서 고르게 뽑으면 막대 전체 길이는 늘 같지만 그네 1의 몫(주황)은 들쭉날쭉하다. 20만 번 뽑은 그네 1의 에너지는 e^(−E₁/T)를 거의 따른다.
그네 10개의 전체 에너지를 10T로 고정하고 등고선 위에서 고르게 뽑으면 막대 전체 길이는 늘 같지만 그네 1의 몫(주황)은 들쭉날쭉하다. 20만 번 뽑은 그네 1의 에너지는 e^(−E₁/T)를 거의 따른다.

전체에서 보느냐, 부분에서 보느냐

이 계산은 에너지가 고정된 계의 「등고선 위의 균등 분포」와 에너지를 주고받는 계의 「e^(−에너지)」가 서로 다투는 두 설명이 아니라는 것을 보여 준다. 바깥과 에너지를 주고받지 않는 전체는 등고선 위에 고르게 퍼져 있고, 그 전체에서 작은 부분 하나만 떼어 보면 나머지 전체가 열원 노릇을 하므로 그 부분은 볼츠만 분포를 따른다. 같은 상황을 전체에서 보느냐 부분에서 보느냐의 차이일 뿐이다.

문제 9. 그네 넷 가운데 하나

질량과 각진동수가 1인 그네 4개가 서로 약하게 에너지를 주고받고, 바깥과는 주고받지 않아 전체 에너지가 4T로 고정되어 있다(k = 1). (가) 그네 1의 에너지가 2T를 넘을 확률을 구하라. (나) 그네가 둘뿐이면 그네 1의 에너지가 0과 E 사이에 고르게 퍼진다. 그 까닭을 위상공간의 넓이로 설명하라. (풀어 본 뒤 위젯 2의 「문제 9 불러오기」로 확인해 보자.)

김민준 M11
김민준

나머지 세 그네가 열원 노릇을 하니까 그네 1은 볼츠만 분포를 따르겠죠. 그럼 2T를 넘을 확률은 e^(−2) = 0.135예요.

이서연 S01
이서연

그건 그네가 아주 많을 때의 극한이잖아. 넷이면 본문 식 그대로 그네 1의 분포가 (1 − E₁/4T)²에 비례해. 이걸 2T부터 4T까지 적분해서 0부터 4T까지의 적분으로 나누면 (1/2)³ = 0.125야. e^(−2)보다 조금 작아.

선생님 T12
선생님

그 지수 N − 2가 어디서 왔는지부터 볼까요. 그네 1이 E₁을 가지면 나머지 세 그네는 무엇을 나눠 가지죠?

이서연 S07
이서연

E − E₁이요. 나머지 세 그네의 상태는 위치와 운동량 여섯 개라 6차원 공간의 점이고, 이 세 그네가 가진 에너지를 E′이라 하면 에너지가 E′ 이하인 상태들은 반지름 √(2E′)인 공이에요. 부피가 (√E′)⁶ = E′³에 비례하니까, 에너지가 E′와 E′ + dE′ 사이인 얇은 껍질은 한 번 미분해서 E′²에 비례해요.

김민준 M08
김민준

그네 1 쪽은 에너지가 E₁과 E₁ + dE₁ 사이인 고리의 넓이가 E₁과 상관없이 일정했으니까, 결국 (E − E₁)²에 비례하네요! 그네가 N개면 나머지는 2(N − 1)차원이라 부피가 E′^(N−1), 껍질이 E′^(N−2)이고요.

선생님 T02
선생님

그럼 (나)처럼 그네가 둘이면 나머지 그네의 껍질은 어떻게 되죠?

김민준 M07
김민준

그네가 둘이면 나머지가 하나라 껍질이 E′⁰, 곧 일정해요. 그네 1 쪽 고리도 일정하니까 어느 E₁이든 똑같이 대접받아서 고르게 퍼져요. 둘일 때만 특별했던 거네요.

이서연 S03
이서연

선생님, 그런데 「약하게」 주고받는다는 말이 늘 붙어요. 세게 주고받으면 안 돼요?

선생님 T01
선생님

세게 묶이면 에너지에 두 그네가 함께 들어간 항이 커져요. 그러면 전체 에너지를 그네마다의 몫으로 나눌 수 없어서 「그네 1의 에너지」라는 말부터 뜻이 흐려지죠. 에너지가 오갈 만큼은 묶여 있되, 묶인 항의 에너지는 무시할 만큼 작아야 해요.

이서연 S09
이서연

에너지가 오가지 않으면 등고선 위를 고르게 돌아다니지 못하고, 너무 세게 묶이면 부분의 에너지를 말할 수 없으니까 딱 「약하게」였군요.

김민준 M01
김민준

조별 과제에서 자료는 서로 주고받아도, 각자 쓴 부분이 딱 나뉘어 있어야 사람마다 점수를 매길 수 있는 거랑 같네요.