1.4.5 — 접번들과 벡터장: 모든 접공간을 한 자리에 모은 다양체
1.4.5 — 접번들과 벡터장: 모든 접공간을 한 자리에 모은 다양체
점마다 따로 살던 접공간 을 한 다양체 로 묶은 것이 접번들 . 그 위의 매끄러운 단면이 벡터장 — 다양체 위에 흐름의 처방 을 깐 객체.
본문이 말하는 것
접번들 (tangent bundle) 은 모든 접공간의 disjoint union:
사영 은 .
자체가 차원 매끄러운 다양체. 차트는 의 차트 로부터 자동으로 유도된다: . 즉 국소적으로 은 의 차트 × 의 모양. 그러나 전역적 으로는 그렇지 않을 수 있다 (위상이 비자명).
벡터장 (vector field) 는 매끄러운 사상 으로 — 즉 각 점 에 그 점의 접벡터 을 매끄럽게 부여한 것. 차트 좌표로
여기서 는 점의 좌표 함수. 매끄러움 조건이 .
벡터장 전체의 집합을 이라 적는다. -모듈 (스칼라곱은 함수가 가능).
한 번 더, 천천히
(1) 접번들의 위상. (자명) 이지만 는 자명하지 않다 (헤어리 볼 정리: 위에 비자명한 영이 아닌 매끄러운 벡터장이 없음). 위상이 전역적으로 평면 곱이 아닌 번들의 첫 예.
(2) 벡터장 = 흐름의 처방. 은 그 점에서의 속도 화살표. 다양체 위에 방향 + 속력 을 깐 것. 그 처방을 따라 입자를 움직이면 적분곡선 (1.4.6). 동력학 시스템 의 일반 형식.
(3) 의 대수 구조. 두 벡터장의 합 는 벡터장. 교환자 (commutator / Lie bracket) 도 벡터장 (1.4.8 에서 본격적으로). 단순 곱 는 2차 미분이라 벡터장이 아니지만, 의 2차 항이 상쇄 되어 1차 미분만 남는다.
파이썬으로 확인 — 위 벡터장과 그 흐름
이 코드의 메시지는 단순하다: 회전 벡터장 의 적분곡선 — 시각 의 흐름 — 이 원 임을 본다. 다음 1.4.6 의 적분곡선·흐름의 정의를 미리 맛본다.
# 벡터장 X = -y ∂x + x ∂y (회전 발생자)
# 적분곡선 ODE: dx/dt = -y, dy/dt = x
# 초기조건 (1, 0) → 해는 (cos t, sin t) — 단위원
import numpy as np
from scipy.integrate import solve_ivp
def rotation_vf(t, p):
x, y = p
return [-y, x]
sol = solve_ivp(rotation_vf, (0, 2 * np.pi), [1.0, 0.0],
rtol=1e-10, atol=1e-12, dense_output=True)
t = np.linspace(0, 2 * np.pi, 200)
x, y = sol.sol(t)
# 원 위에 있는지: x² + y² = 1
r_squared = x**2 + y**2
print(f"max |r² - 1| = {np.max(np.abs(r_squared - 1)):.2e}") # ~1e-9
print(f"x(π/2) = {sol.sol(np.pi/2)[0]:.6f} (= 0 기대)")
print(f"y(π/2) = {sol.sol(np.pi/2)[1]:.6f} (= 1 기대)")
이 결과는 벡터장이 흐름의 처방 이라는 직관을 — 회전 벡터장이 회전 흐름을 만들어 낸다 — 수치로 확인한다.
다음 절(1.4.6)로 가는 다리
벡터장이 흐름 을 정의한다는 관찰이 다음 1.4.6 의 적분곡선 + 1-매개변수 변환군 의 형식적 정의로 이어진다. 매끄러운 벡터장에서 국소적으로 유일한 흐름이 떨어진다 (ODE 의 존재·유일성 정리). 그 흐름이 변환군 구조를 갖는다.