다양체 — 국소적으로는 평탄한 공간

점 근방에서는 Rn\mathbb{R}^n 처럼 매끄럽게 좌표를 줄 수 있지만 전체로는 휘어 있을 수 있는 공간 — 차트와 아틀라스로 다양체를 정의하고, S2S^2 의 입체사영으로 한 번에 만져 본다.

들어가며

1장에서 이미 한 번 등장한 단어 — 배위공간 MM 은 다양체다 — 가 이 장의 주제다. 다양체의 정식 정의는 두 문장으로 끝나지만, 그 두 문장을 받아들이려면 차트(chart)와 아틀라스(atlas)라는 두 도구가 먼저 자리잡아야 한다. 이 장이 끝나면 독자는 단위 구면 S2S^2 위의 모든 점에 좌표를 줄 수 있는 입체사영 두 장을 직접 적을 수 있고, 단진자·이중진자·강체의 배위공간이 왜 Rn\mathbb{R}^n 이 아니라 S1S^1, T2T^2, SO(3)SO(3) 인지를 한 문장으로 설명할 수 있어야 한다.

본론 1 — 두 문장으로 끝나는 정의

nn 차원 다양체 MM 이란, 국소적으로 Rn\mathbb{R}^n 처럼 보이는 공간이다. 정식으로는 이렇다: MM 의 모든 점 pp 에 대해, pp 를 포함하는 열린 이웃 UMU \subset M 와 동형사상 φ:Uφ(U)Rn\varphi : U \to \varphi(U) \subset \mathbb{R}^n 의 쌍 (U,φ)(U, \varphi) — 이를 차트(chart) 라 부른다 — 이 존재한다. 그리고 두 차트 (U1,φ1)(U_1, \varphi_1), (U2,φ2)(U_2, \varphi_2) 의 정의역이 겹치는 곳 U1U2U_1 \cap U_2 위에서, 전이함수(transition map) φ2φ11:φ1(U1U2)φ2(U1U2)\varphi_2 \circ \varphi_1^{-1} : \varphi_1(U_1 \cap U_2) \to \varphi_2(U_1 \cap U_2) 가 매끄러우면, MM매끄러운 다양체(smooth manifold) 라 부른다.

차트는 어휘로 말하자면 지도 한 장이다. 한 장의 지도는 지구 전체를 덮을 수 없으니, 여러 장을 모아 두어야 한다 — 그 모음이 아틀라스(atlas) 다. 두 지도가 겹치는 곳에서 위도·경도 좌표가 매끄럽게 변환된다면, 이 아틀라스는 매끄러운 구조를 정의한다.

구체적 예 네 개를 적어 두자.

  • Rn\mathbb{R}^n: 단 한 장의 차트 (M,id)(M, \mathrm{id}) 로 끝난다. 1차원이면 직선, 2차원이면 평면.
  • S1S^1 (1차원 원): 위쪽 반원과 아래쪽 반원, 두 장의 차트로 덮인다.
  • S2S^2 (2차원 구면): 북극에서의 입체사영과 남극에서의 입체사영, 두 장으로 덮인다.
  • Tn=S1××S1T^n = S^1 \times \cdots \times S^1 (nn 차원 토러스): 각 S1S^1 마다 두 장씩, 총 2n2^n 장의 곱-차트로 덮인다.

이 네 개가 해석역학에서 만나는 배위공간의 거의 전부다.

본론 2 — S2S^2 의 입체사영

가장 손에 잡히는 예가 S2S^2 의 입체사영(stereographic projection)이다. R3\mathbb{R}^3 안에 단위 구면 S2={(x,y,z):x2+y2+z2=1}S^2 = \{(x,y,z) : x^2 + y^2 + z^2 = 1\} 을 놓는다. 북극 N=(0,0,1)N = (0, 0, 1) 에서 시작해 S2S^2 위의 점 p=(x,y,z)Np = (x, y, z) \neq N 을 지나는 직선이 평면 z=0z = 0 과 만나는 점 (u,v)(u, v) 를 그 점의 좌표로 삼는다. 닮음비를 풀면

(u,v)=(x1z,  y1z)(u, v) = \left( \frac{x}{1 - z}, \; \frac{y}{1 - z} \right)

이 사상이 φN:S2{N}R2\varphi_N : S^2 \setminus \{N\} \to \mathbb{R}^2 다. 분모 1z1 - z 가 0 이 되는 곳은 정확히 NN 한 점이므로, 차트의 정의역에서 NN 만 빠진다. 마찬가지로 남극 S=(0,0,1)S = (0, 0, -1) 에서 사영하면

(u,v)=(x1+z,  y1+z)(u', v') = \left( \frac{x}{1 + z}, \; \frac{y}{1 + z} \right)

이 두 번째 차트 φS:S2{S}R2\varphi_S : S^2 \setminus \{S\} \to \mathbb{R}^2SS 만 빼고 모두 덮는다. 둘을 합치면 S2S^2 의 모든 점이 적어도 한 장의 차트 안에 들어간다.

겹치는 영역 S2{N,S}S^2 \setminus \{N, S\} 위에서 전이함수는 어떻게 생겼는가? φN\varphi_N 의 역사상으로 (u,v)(u, v)S2S^2 위 점으로 되돌렸다가 다시 φS\varphi_S 로 사영하면, 직접 계산해 보면 다음의 깔끔한 모양으로 떨어진다.

φSφN1:(u,v)    (uu2+v2,  vu2+v2)\varphi_S \circ \varphi_N^{-1} : (u, v) \;\longmapsto\; \left( \frac{u}{u^2 + v^2}, \; \frac{v}{u^2 + v^2} \right)

이는 R2{0}\mathbb{R}^2 \setminus \{0\} 위에서 매끄럽다 — 분모가 0 이 되는 원점은 북극 NN 에 해당하고, 이미 정의역에서 빠져 있다. 따라서 두 입체사영은 매끄러운 아틀라스를 이루고, S2S^2 는 매끄러운 2차원 다양체다.

본론 3 — 배위공간이 다양체여야 하는 이유

이제 1장의 약속을 회수하자. 평면 단진자의 일반좌표 θ\thetaR\mathbb{R} 위에 산다고 적으면 곤란하다 — θ\thetaθ+2π\theta + 2\pi 는 같은 물리 상태이기 때문이다. 즉 단진자의 배위공간은 R\mathbb{R} 이 아니라 S1S^1 이다. θR\theta \in \mathbb{R} 로 적고 풀어도 운동 방정식의 해는 맞지만, 주기성·각도 모듈로 연산을 손으로 끌고 다녀야 한다.

이중진자는 두 각 (θ1,θ2)(\theta_1, \theta_2) 의 쌍이고, 각각이 독립적으로 S1S^1 위에 사니까 배위공간은 T2=S1×S1T^2 = S^1 \times S^1 다. 평면 R2\mathbb{R}^2 가 아니다. 둘의 차이는 시각화에서 가장 분명히 드러난다 — 토러스 위의 궤적은 두 방향에서 모두 “감겨” 돌아오는데, R2\mathbb{R}^2 그림은 이 감김을 표현하지 못한다.

강체의 회전 자세는 어떨까? 3차원 회전군 SO(3)SO(3) 은 행렬 9 개로 적히지만 직교성·행렬식 1 이라는 6 개의 구속을 만족해 자유도는 3 이다. SO(3)SO(3) 은 3차원 매끄러운 다양체이고 — 동시에 군이라서 리 군(Lie group) 이라 부른다 — 벡터공간이 아니다. 오일러 각을 그대로 R3\mathbb{R}^3 좌표인 양 다루면 짐벌락(gimbal lock) 같은 좌표 특이점이 출몰한다. 이는 SO(3)SO(3) 을 단 한 장의 차트로 덮으려 한 결과이지, 물리의 병이 아니다.

요약하자면, 일반좌표가 살고 있는 공간을 다양체로 받아들이면 좌표 의존적인 인공물(주기성·짐벌락·구속력)을 식 바깥에 둘 수 있다. 차트는 계산을 위한 도구이고, 다양체 자체는 좌표에 앞서 존재한다는 시점 — 이것이 5장에서 다룰 벡터장으로 이어진다.

파이썬으로 확인

# S^2 위에서 균일하게 1000 점을 뽑아 북극 입체사영으로 평면에 내려 본다.
# 적도는 단위원으로, 남극은 원점으로 사영된다.
import numpy as np
import matplotlib.pyplot as plt

rng = np.random.default_rng(0)
target = 1000
xs, ys, zs = [], [], []
while len(xs) < target:
    # 마르사글리아 방법: (u,v) ~ U(-1,1), u^2+v^2 <= 1 만 채택
    u = rng.uniform(-1.0, 1.0, size=2000)
    v = rng.uniform(-1.0, 1.0, size=2000)
    s = u*u + v*v
    keep = s <= 1.0
    u, v, s = u[keep], v[keep], s[keep]
    root = np.sqrt(1.0 - s)
    xs.extend((2 * u * root).tolist())
    ys.extend((2 * v * root).tolist())
    zs.extend((1.0 - 2.0 * s).tolist())

x = np.array(xs[:target]); y = np.array(ys[:target]); z = np.array(zs[:target])

# 북극 (0,0,1) 에서의 입체사영
mask = z < 1.0 - 1e-6
U = x[mask] / (1.0 - z[mask])
V = y[mask] / (1.0 - z[mask])

plt.figure(figsize=(5, 5))
plt.scatter(U, V, s=4, alpha=0.5)
plt.gca().set_aspect("equal")
plt.xlim(-4, 4); plt.ylim(-4, 4)
plt.xlabel("u"); plt.ylabel("v")
plt.title("Stereographic projection of $S^2$ from N")
plt.show()

적도 (z=0z = 0) 의 점들은 정확히 단위원 위에 떨어지고, 남극 근방의 점들은 원점 근방에 모인다. 북극에 가까울수록 사영된 점은 무한히 멀리 날아가며, 차트의 정의역에서 빠진 한 점이 무엇인지 그림이 직접 말해 준다.

다음 장으로

5장: 벡터장과 흐름에서는 다양체 위의 “방향”이 좌표 없이 어떻게 정의되는지를 다룬다. 각 점에 접선벡터를 하나씩 붙인 것이 벡터장, 그 벡터장을 따라가는 1-매개 변환군이 흐름(flow)이다. 이 장에서 만진 차트와 전이함수는 그때 접공간(tangent space)이 좌표계 사이에서 어떻게 변환되는지를 결정하는 야코비로 다시 등장한다.