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

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

들어가며

1장에서 일반좌표를 도입할 때 한 문장을 흘려보냈다 — 배위공간 MM 은 다양체다. 일반좌표가 살고 있는 공간이 정확히 어떤 종류의 공간인지, 왜 그냥 Rn\mathbb{R}^n 이라고 적으면 안 되는지를 이 장에서 분명히 한다.

다양체의 정식 정의는 두 문장으로 끝난다. 그 두 문장을 받아들이려면 차트(chart — 공간의 한 조각에 좌표를 입히는 장치)아틀라스(atlas — 그 조각들을 모아 공간 전체를 덮는 모음) 가 손에 들어와 있어야 한다. 둘 다 지도 의 비유에서 온 이름이다.

본론 1은 다양체의 정의 — 차트와 아틀라스, 전이함수의 매끄러움. 본론 2는 그 정의를 S2S^2 의 입체사영에서 끝까지 계산한다. 본론 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) 라 부른다.

기호 풀이 — UMU \subset M 은 다양체 MM 의 부분집합(차트의 정의역), φ\varphi 는 그 부분집합의 점을 평면 좌표로 옮기는 함수, φ(U)Rn\varphi(U) \subset \mathbb{R}^n 은 그 사상의 (image, 평면 위 영역). 합성 φ2φ11\varphi_2 \circ \varphi_1^{-1} 의 화살표 순서는 “먼저 φ11\varphi_1^{-1} 을 적용한 뒤 φ2\varphi_2 를 적용한다” — 첫 차트 좌표 \to 다양체 위 점 \to 둘째 차트 좌표. 매끄럽다모든 차수의 도함수가 존재하고 연속이다라는 약속(CC^\infty).

두 문장이다. 첫 문장은 “모든 점에 차트가 있다”, 둘째 문장은 “차트들이 겹치는 곳에서 매끄럽게 이어 붙는다”. 지도책 비유로 풀어 보자.

지구 표면 전체를 평면 종이 한 장 에 담을 수 있을까. 없다. 구면을 찢지 않고 평면에 펼치는 것은 수학적으로 불가능하다 — 모든 평면 세계지도는 어딘가를 반드시 왜곡한다. 메르카토르 도법은 적도 근처는 그럭저럭 정확하지만 극지방으로 갈수록 면적을 터무니없이 부풀린다. 그린란드가 아프리카만 하게 그려지는 그 지도다. 실제 면적은 아프리카가 그린란드의 열네 배인데도 메르카토르 지도에서는 비슷한 크기로 보인다 — 위도가 높아질수록 가로 방향이 한없이 늘어나는 도법의 대가다. 극지방을 정확히 보고 싶으면 극에서 내려다본 별도의 지도를 따로 써야 한다. 그 지도는 극 근처는 정직하지만 이번엔 적도 쪽이 망가진다. 어느 한 장의 지도도 지구 전체를 정직하게 담지 못하니, 우리는 여러 장 의 지도를 모아 한 권의 지도책 — 아틀라스 — 을 만든다. 한 장으로 안 되는 것은 지도 제작자의 게으름이 아니라 구면이라는 공간 자체의 성질이다. 평탄한 평면이라면 한 장으로 충분하다. 휘어 있는 공간이라서 여러 장이 필요한 것이다.

차트는 “지도 한 장”이다. 정확히는 두 가지 정보의 쌍 (U,φ)(U, \varphi). UU지도가 담당하는 영역 — 지구 표면의 어느 조각 — 이고, φ\varphi그 조각을 평면 좌표로 옮기는 규칙 — 위도·경도를 매기는 방법이다. 영역만 있고 좌표 규칙이 없으면 그냥 땅덩어리, 좌표 규칙만 있고 영역이 없으면 어디에 적용할지 알 수 없다. 차트는 이다.

아틀라스는 그 차트들의 모음이다. 조건은 하나 — 모음 안의 차트들을 다 합치면 MM 의 모든 점이 적어도 한 장의 차트 안에 들어가야 한다. 지구 지도책에 극지방 지도가 빠져 있으면 극점에 사는 사람은 좌표를 못 받으니, 그건 불완전한 아틀라스다.

두 지도가 겹치는 영역에서 전이함수의 매끄러움 을 따진다. 메르카토르 지도와 극지방 지도가 둘 다 담당하는 중위도 어딘가의 한 점은 메르카토르 지도에서도 좌표를 받고, 극지방 지도에서도 좌표를 받는다. 두 좌표는 다른 숫자다 — 도법이 다르니까. 하지만 같은 점 을 가리킨다. 한 지도의 좌표에서 다른 지도의 좌표로 변환 하는 규칙이 전이함수 φ2φ11\varphi_2 \circ \varphi_1^{-1} 다. 첫 지도의 좌표를 받아(φ11\varphi_1^{-1} 로 실제 점으로 되돌리고), 둘째 지도의 좌표로 다시 매긴다(φ2\varphi_2 로 사영한다).

“전이함수가 매끄럽다”는 이 변환 규칙이 미분가능 하다는 뜻이다. 한 좌표계의 숫자를 조금 움직이면 다른 좌표계의 숫자도 끊김이나 꺾임 없이 따라 움직인다. 한 차트에서 매끄럽던 함수가 다른 차트로 옮기는 순간 꺾임이 생긴다면, “이 함수는 미분가능하다”는 말 자체가 어느 차트를 쓰느냐에 따라 달라지는 좌표 의존적 인 진술이 된다. 전이함수가 매끄러우면 한 차트에서 매끄러운 함수는 다른 차트에서도 매끄럽다 — 매끄러움이 좌표와 무관한 성질이 된다. 다양체가 매끄럽다 는 것은 다양체 자체의 성질이라기보다, 우리가 고른 아틀라스의 차트들이 서로 매끄럽게 호환된다는 성질이다.

차트 φ\varphi 자체는 위상동형사상(homeomorphism — 연속이고 역도 연속인 일대일 대응) 일 뿐이다. 매끄러움 은 전이함수에서 온다. 차트 하나만 보면 매끄러움을 따질 대상조차 없고 — MM 위에는 아직 미분 구조가 없으니 φ\varphi 가 매끄럽다는 말 자체가 성립하지 않는다 — 두 차트가 겹쳐야 비로소 “이 둘이 매끄럽게 이어지는가”라는 질문이 생긴다. 매끄러움을 따지려면 출발지와 도착지 양쪽에 미분 구조가 있어야 하는데, φ2φ11\varphi_2 \circ \varphi_1^{-1} 은 양쪽이 다 Rn\mathbb{R}^n 이라 매끄러움을 따질 수 있다.

헷갈리기 쉬운 곳 — 차트의 정의역은 열린 집합이다. 차트 (U,φ)(U, \varphi) 에서 UU 는 반드시 MM열린 부분집합이어야 한다. 경계점에서는 Rn\mathbb{R}^n한쪽 만 보이지 주변 전체 가 보이지 않는다. 열린 집합이라야 모든 점이 사방으로 여유 공간을 가진 내부 점이 되고, 그래야 그 근방이 온전한 Rn\mathbb{R}^n 조각처럼 행동한다. 지도책 비유로 말하면, 각 지도는 가장자리가 겹쳐 있어야지 딱 맞게 잘려 있으면 안 된다.

헷갈리기 쉬운 곳 — 한 점은 여러 차트에 동시에 속할 수 있다. 차트들의 정의역은 서로 겹쳐도 된다. 오히려 겹쳐야 전이함수를 따질 수 있다. 한 점 pp 가 두 차트 (U1,φ1)(U_1, \varphi_1), (U2,φ2)(U_2, \varphi_2) 에 모두 속하면, pp 는 좌표를 두 개 갖는다 — φ1(p)\varphi_1(p)φ2(p)\varphi_2(p). 둘 다 정당한 좌표이고, 전이함수가 둘을 이어 준다. “한 점은 좌표가 하나”라는 생각은 Rn\mathbb{R}^n 에서나 통하는 습관이고, 다양체에서는 같은 점이 어느 차트로 보느냐에 따라 다른 숫자로 적힌다.

구체적 예 네 개:

  • Rn\mathbb{R}^n: 단 한 장의 차트 (M,id)(M, \mathrm{id}) 로 끝난다. 항등사상이 곧 좌표. 1차원이면 직선, 2차원이면 평면 — 이미 평탄하니 지도가 한 장이면 충분하다.
  • S1S^1 (1차원 원): 위쪽 반원과 아래쪽 반원, 두 장의 차트로 덮인다. 원을 한 장의 열린 구간으로 펼치려면 어딘가를 잘라야 한다. 잘린 점은 차트에서 빠지니, 그 빠진 점을 덮는 둘째 차트가 반드시 필요하다. 각도 θ\theta 하나로 적고 싶은 유혹이 있지만 θ=0\theta = 0θ=2π\theta = 2\pi 가 같은 점이라 그 한 점에서 좌표가 두 값을 가지거나 끊긴다 — 한 장으로는 S1S^1 을 못 덮는다.
  • S2S^2 (2차원 구면): 북극에서의 입체사영과 남극에서의 입체사영, 두 장으로 덮인다. 본론 2에서 이 두 장을 직접 적는다.
  • Tn=S1××S1T^n = S^1 \times \cdots \times S^1 (nn 차원 토러스): 각 S1S^1 마다 두 장씩, 총 2n2^n 장의 곱-차트로 덮인다.

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

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

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 을 하나 잡고, NNpp 를 잇는 직선을 긋는다. 이 직선을 쭉 연장하면 평면 z=0z = 0 (적도면)과 어딘가에서 만난다. 그 만나는 점 (u,v)(u, v)pp좌표 로 삼는다. 입체사영(stereographic projection) — 북극에서 빛을 비춰 구면의 그림자를 적도면에 떨어뜨리는 그림이다.

N=(0,0,1)N = (0,0,1) 에서 p=(x,y,z)p = (x,y,z) 를 지나는 직선의 매개식은

N+t(pN)=(tx,  ty,  1+t(z1)),tRN + t\,(p - N) = (t x,\; t y,\; 1 + t(z - 1)), \qquad t \in \mathbb{R}

이다. 셋째 좌표가 0 이 되는 tt 를 찾으면 적도면과 만난다. 1+t(z1)=01 + t(z - 1) = 0 에서 t=1/(1z)t = 1/(1 - z). 이 tt 를 첫째·둘째 좌표에 넣으면

(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 이 되는 곳은 z=1z = 1, 즉 북극 NN 한 점뿐. 차트의 정의역에서 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 만 빼고 모두 덮는다. 북극 차트가 NN 만 빼고 다 덮고, 남극 차트가 SS 만 빼고 다 덮으니 S2S^2 의 모든 점이 적어도 한 장의 차트 안에 들어간다. 두 장으로 된 아틀라스가 완성됐다.

φN\varphi_N 의 역, 즉 평면 좌표 (u,v)(u, v) 를 받아 구면 위 점으로 되돌리는 사상은

x=2uu2+v2+1,y=2vu2+v2+1,z=u2+v21u2+v2+1x = \frac{2u}{u^2 + v^2 + 1}, \qquad y = \frac{2v}{u^2 + v^2 + 1}, \qquad z = \frac{u^2 + v^2 - 1}{u^2 + v^2 + 1}

이다. φN\varphi_N 에 다시 넣어 보면 — x/(1z)x/(1-z) 를 계산하면 uu 가 그대로 나온다. u=v=0u = v = 0 (평면 원점)을 넣으면 z=1z = -1 (남극). u2+v2=1u^2 + v^2 = 1 (평면 단위원)을 넣으면 z=0z = 0 (적도). 적도가 단위원으로 사영된다 — 입체사영의 가장 기억하기 좋은 성질이다.

겹치는 영역 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)

이 변환은 기하적으로 원점에 대한 반전(inversion) 이다 — 원점에서의 거리 r=u2+v2r = \sqrt{u^2+v^2}1/r1/r 로 뒤집고, 방향은 그대로 둔다. 점 (u,v)(u, v) 의 원점 거리가 rr 이면, 사영된 점 (u/r2,v/r2)(u/r^2,\, v/r^2) 의 원점 거리는 u2+v2/r2=r/r2=1/r\sqrt{u^2 + v^2}/r^2 = r/r^2 = 1/r. 방향 벡터 (u,v)/r(u, v)/r 은 그대로 유지된다. 단위원 안쪽(r<1r < 1)의 점은 바깥(1/r>11/r > 1)으로, 바깥쪽(r>1r > 1) 점은 안쪽으로 뒤집히고, 단위원 위(r=1r = 1)의 점은 1/r=11/r = 1 이라 제자리에 머문다. 적도가 두 사영 모두에서 단위원이니, 전이함수가 단위원을 제자리에 두는 것이 당연하다. 남극은 북극 차트에서 원점(r=0r = 0)인데, 반전하면 무한대로 날아간다 — 남극은 남극 차트의 정의역에서 빠진 점이니 전이함수의 정의역에도 없어야 맞다.

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

헷갈리기 쉬운 곳 — 입체사영은 각도는 보존하지만 거리·넓이는 보존하지 않는다. 입체사영은 등각(conformal) 사상이다 — 구면 위에서 두 곡선이 이루는 각도가 평면으로 사영된 뒤에도 똑같이 유지된다. 하지만 거리넓이 는 전혀 보존하지 않는다. 북극에 가까운 작은 영역은 평면에서 엄청나게 크게 늘어나고, 남극 근방은 거의 그대로다. 입체사영으로 만든 평면 좌표는 “방향은 믿어도 되지만 길이는 믿으면 안 되는” 좌표다. 거리는 계량 텐서의 몫이고, 차트의 일이 아니다.

헷갈리기 쉬운 곳 — 북극은 ‘무한대점’에 대응한다. φN\varphi_N 의 정의역에서 빠진 한 점, 북극 NN 은 어디로 갔는가. ppNN 에 가까워질수록 z1z \to 1 이라 1z01 - z \to 0, 따라서 (u,v)(u, v) 가 무한히 멀리 날아간다. 북극은 평면의 어떤 점에도 대응하지 않고, 굳이 말하면 “무한대점”에 대응한다. 구면은 콤팩트한데 평면 R2\mathbb{R}^2 는 콤팩트하지 않으니, 어떤 차트를 잡아도 반드시 한 점은 빠진다.

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

단진자. 평면 단진자의 일반좌표는 진자가 매달린 각도 θ\theta 하나다. "θR\theta \in \mathbb{R}" 이라고 쓰면 곤란하다. θ\thetaθ+2π\theta + 2\pi 는 진자를 한 바퀴 더 돌렸다 뿐이지 같은 물리 상태 다. 추의 위치도, 속도도, 에너지도 똑같다. 그런데 R\mathbb{R} 위에서는 θ\thetaθ+2π\theta + 2\pi다른 점 이다. 단진자의 배위공간은 R\mathbb{R} 이 아니라 원 S1S^1 이다 — R\mathbb{R} 에서 2π2\pi 만큼 떨어진 점들을 모두 같은 점으로 본 공간이다.

θR\theta \in \mathbb{R} 로 적고 운동방정식을 풀어도 해 자체는 맞다. 진자의 운동방정식은 θ\theta 의 주기성을 모르고도 풀린다. 대가는 주기성을 손으로 끌고 다녀야 한다는 것 — 답을 해석할 때마다 ”θ\thetaθ+2π\theta + 2\pi 는 같다”는 사실을 따로 챙기고, 두 상태가 같은지 비교할 때 각도를 2π2\pi 로 나눈 나머지를 계산한다. 배위공간을 S1S^1처음부터 인정 하면 이 주기성이 공간의 정의 안에 흡수되어 식 바깥으로 나간다. S1S^1 을 적으려면 차트 두 장이 필요하다 — 각도 θ\theta 라는 좌표는 어딘가에서 한 번 끊기니, 그 끊긴 점을 덮는 둘째 차트가 있어야 원 전체에 매끄럽게 좌표가 깔린다.

이중진자. 이중진자는 진자 두 개가 이어진 것이고, 일반좌표는 두 각 (θ1,θ2)(\theta_1, \theta_2) 의 쌍이다. 각각이 독립적으로 S1S^1 위에 사니, 배위공간은 두 원의 곱 T2=S1×S1T^2 = S^1 \times S^1 — 2차원 토러스다. 평면 R2\mathbb{R}^2 가 아니다. 토러스(도넛 모양) 위의 궤적은 두 방향 — 큰 원을 도는 방향과 작은 원을 도는 방향 — 모두에서 “감겨” 돌아온다. 한 방향으로 몇 바퀴, 다른 방향으로 몇 바퀴 감겼는지가 궤적의 위상적 정보다. R2\mathbb{R}^2 그림은 이 감김을 표현하지 못한다 — R2\mathbb{R}^2 에서는 그냥 한없이 뻗어 나가는 곡선일 뿐, 돌아옴이 없다. T2T^2R2\mathbb{R}^2국소적으로는 똑같이 평탄한 2차원 공간이지만(둘 다 차트로 보면 R2\mathbb{R}^2 조각이다), 전체적으로는 완전히 다른 공간이다.

헷갈리기 쉬운 곳 — θR\theta \in \mathbb{R} 로 풀어도 답은 맞지만 주기성을 손으로 끌고 다녀야 한다. 배위공간을 옳게 잡는 이유는 계산이 틀리는 것을 막기 위해서 가 아니라 해석을 깔끔하게 하기 위해서 다. 같은 상태인지 비교할 때, 보존량을 셀 때, 궤적이 닫혔는지 따질 때 — 매번 ”θ\theta 모듈로 2π2\pi“를 손으로 계산하느니 공간을 S1S^1 로 정의해 그 연산을 공간 안에 묻어 두는 편이 낫다.

헷갈리기 쉬운 곳 — T2R2T^2 \ne \mathbb{R}^2, 감김(winding)의 표현이 다르다. 차트 한 장으로 보면 구별이 안 된다. 하지만 같은 공간이 아니다. 차이는 “한 바퀴 돌아 제자리로 오는 닫힌 길”이 있느냐다. T2T^2 에는 그런 길이 두 종류(큰 원, 작은 원) 있고, 그 길들이 몇 번 감겼는지가 의미를 가진다. R2\mathbb{R}^2 에는 제자리로 돌아올 수밖에 없는 본질적인 닫힌 길이 없다 — 모든 닫힌 곡선을 한 점으로 줄일 수 있다. 이중진자 궤적의 “감김 수”는 T2T^2 위에서만 정의되는 양이지 R2\mathbb{R}^2 좌표로는 표현되지 않는다.

강체. 3차원 회전군 SO(3)SO(3) 의 원소 하나가 강체의 한 자세에 대응한다. SO(3)SO(3) 의 원소는 3×33 \times 3 행렬, 즉 숫자 9 개로 적히지만 직교성(RTR=IR^T R = I, 6 개의 조건) 과 행렬식 1 이라는 구속을 만족해야 한다. 자유도는 96=39 - 6 = 3 — 강체의 회전 자세를 적는 데 독립적인 수 세 개면 충분하다는 익숙한 사실이다. SO(3)SO(3) 은 3차원 매끄러운 다양체이고, 동시에 군이라서 — 원소끼리 곱할 수 있고 역원이 있으며 그 연산이 매끄럽다 — 리 군(Lie group — 다양체이면서 군이고, 곱과 역원 연산이 매끄러운 공간) 이라 부른다. SO(3)SO(3)벡터공간이 아니다 — 두 회전을 “더하는” 연산은 의미가 없고, 회전은 곱으로 합쳐진다.

군 구조 덕분에 한 자세에서 다른 자세로 가는 것이 으로 표현되고, “무한히 작은 회전”들이 모여 만드는 대수 구조(리 대수)가 각속도·각운동량 같은 물리량의 자연스러운 무대가 된다. 강체 동역학을 깊이 들어가면 이 리 군·리 대수 구조가 전면에 나오는데, 지금 단계에서는 ”SO(3)SO(3) 은 다양체이면서 동시에 군이고, 그 둘이 매끄럽게 맞물려 있다”는 한 줄만 손에 쥐면 된다.

강체의 자세를 적는 가장 흔한 좌표가 오일러 각 (α,β,γ)(\alpha, \beta, \gamma) 다. 오일러 각을 그냥 R3\mathbb{R}^3 의 좌표인 양 다루면 짐벌락(gimbal lock — 가운데 회전축이 양 끝 회전축과 겹쳐 자유도 하나를 잃어버리는 좌표 특이점) 이 출몰한다. 오일러 각은 세 번의 회전을 차례로 합친 것인데, 가운데 각 β\beta00 또는 π\pi 가 되는 순간 첫 번째 회전축과 세 번째 회전축이 겹쳐 버린다. 두 축이 같은 방향을 가리키면 α\alpha 를 늘리고 γ\gamma 를 같은 만큼 줄여도 같은 자세 가 나온다 — 자유도 하나를 잃어버린 것이다. 세 개의 다이얼 중 두 개가 같은 일을 하게 되어, 어떤 방향으로는 자세를 미세 조정할 수 없다.

짐벌락은 물리의 병이 아니라 좌표 선택의 병 이다. 강체 자체는 β=0\beta = 0 에서 아무 이상이 없다 — 그냥 평범한 자세 하나일 뿐이고, 모든 방향으로 자유롭게 회전할 수 있다. 문제는 우리가 SO(3)SO(3) 이라는 3차원 다양체를 오일러 각이라는 단 한 장의 차트 로 통째로 덮으려 한 데 있다. SO(3)SO(3)S2S^2 가 한 장으로 안 덮였듯이 한 장으로 안 덮인다 — 어떤 차트를 잡아도 어딘가에 특이점이 생긴다. 짐벌락은 오일러 각 차트가 자기 정의역의 가장자리에서 망가지는 모습일 뿐이다. 다른 차트로 갈아타면 그 점은 멀쩡하다.

헷갈리기 쉬운 곳 — SO(3)SO(3) 의 좌표 특이점은 물리가 아니라 좌표 선택의 병이다. 다양체 SO(3)SO(3) 자체는 어디서나 매끄럽고 특이점이 없다. 짐벌락은 오일러 각이라는 특정 좌표계 가 특정 자세에서 무너지는 현상이다 — S2S^2 의 입체사영에서 북극이 한 점 빠지는 것과 똑같은 사정이다. 해법도 똑같다 — 차트를 여러 장 쓰거나(아틀라스), 아예 차트에 의존하지 않는 표현(사원수 등)을 쓰면 된다. “좌표가 망가지는 곳”과 “공간이 망가지는 곳”을 구별하는 것 — 그것이 다양체라는 시점이 주는 가장 실용적인 이득이다.

일반좌표가 살고 있는 공간을 다양체로 받아들이면 좌표 의존적인 인공물 — 단진자의 주기성, 이중진자의 감김, 강체의 짐벌락, 그리고 구속력 — 을 식 바깥에 둘 수 있다. 차트는 계산을 위한 임시 도구 이고, 다양체 그 자체는 좌표에 앞서 존재 한다.

파이썬으로 확인

# 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()

S2S^2 위에 점을 균일하게 뿌려야 하는데, 단순히 위도·경도를 균일하게 뽑으면 극지방에 점이 몰린다 — 메르카토르 왜곡과 같은 함정이다. 마르사글리아 방법(Marsaglia method — 평면 단위원판에서 균일 표본을 뽑아 구면 위로 들어 올리는 표본법) 으로 평면의 단위원판 안에서 (u,v)(u, v) 를 균일하게 뽑은 다음, 구면 위 점으로 정확히 들어 올리는 공식 — x=2u1sx = 2u\sqrt{1-s}, z=12sz = 1 - 2s 형태 — 을 적용하면 구면 위에서 진짜로 균일한 분포가 나온다. while 루프는 단위원판 바깥에 떨어진 표본을 버리고 채택된 것만 모아 목표 개수 1000 을 채운다.

mask = z < 1.0 - 1e-6 은 북극에 너무 가까운 점 — 사영하면 무한대로 날아가는 점 — 을 살짝 걸러 낸다. 본론 2에서 “북극 한 점이 차트에서 빠진다”고 한 사실을, 코드에서는 1z1 - z 가 0 에 가까운 점을 빼는 것으로 구현한다. 나머지 점들에 대해 U=x/(1z)U = x/(1-z), V=y/(1z)V = y/(1-z) — 본론 2에서 유도한 φN\varphi_N 사상이 코드 두 줄로 그대로 옮겨진 것이다.

그림을 보면 적도(z=0z = 0) 의 점들은 정확히 단위원 위에 떨어지고, 남극(z=1z = -1) 근방의 점들은 원점 근방에 빽빽하게 모인다. 북극에 가까울수록 사영된 점은 무한히 멀리 날아가니, 그림의 바깥쪽으로 갈수록 점이 듬성듬성해진다. xlim, ylim±4\pm 4 로 잘라 두었으니 더 멀리 날아간 점들은 화면 밖이다. 같은 점들을 남극 사영 x/(1+z)x/(1+z) 로 다시 그리면 북극 근방이 원점에 모이고 남극이 빠진다 — 두 차트가 서로의 빈 곳을 덮어 준다.

다음 장으로

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