2.4.1 — 준좌표의 도입: *적분 불가능한* 좌표라는 도구
2.4.1 — 준좌표의 도입: 적분 불가능한 좌표라는 도구
강체의 몸체 각속도 같은 양은 그 자체 가 좌표는 아니지만 속도 처럼 작동한다. 어떤 좌표의 시간 미분으로도 적을 수 없는 — 적분 불가능한 — 양들을 준좌표 라 부르고, 그 위에 라그랑주식을 다시 적는다.
본문이 말하는 것
원서 2.4.1 절은 일반화 좌표 의 시간 미분 대신, 다음 형식의 새 속도 변수
을 도입한다. 여기서 는 비퇴화 행렬 (). 즉 들은 일반화 속도의 선형 결합 — 그러나 어떤 좌표의 시간 미분도 아닐 수도 있다.
만약 인 함수 가 존재 한다면 는 적분 가능 — 그러면 가 새 일반화 좌표일 뿐이다. 적분 가능 조건은 1-형식 가 정확 한 것 — 인 가 있는 것 (§1.6.6 의 푸앵카레 보조정리).
적분 불가능 한 경우 가 존재하지 않는다. 그래도 자체는 각 점에서 잘 정의되는 속도. 이런 들을 준좌표 (quasi-coordinate) 또는 quasi-velocity 라 부른다 (원서: 擾座標).
대표 예시: 강체의 몸체 각속도. 강체의 회전을 위의 곡선 로 적으면, 몸체 각속도 는
세 성분 . 그러나 어떤 회전 각도 (Euler 각) 의 시간 미분 으로 를 직접 적으면, 와 항이 섞여 적분 불가능 한 결합이 나온다. 즉 는 자연스러운 속도 이지만 어떤 “각” 의 시간 미분이 아니다.
한 번 더, 천천히
(1) 적분 가능 조건의 기하학적 의미. 1-형식 가 정확하다는 것은 — — 1.6.5 의 외미분으로 . 즉 모든 닫힘 1-형식은 정확함 이라는 푸앵카레 보조정리 (1.6.6) 가 별 모양 영역에서만 성립함을 다시 떠올리자. 일반 다양체에서는 닫힘이지만 정확하지 않은 1-형식이 존재 — 그것이 준좌표 의 자리.
(2) 강체 운동의 핵심 예시. 강체의 배위공간은 — 비가환 군. 위에는 전역 좌표 (= 모든 회전을 매끄럽게 매개화하는 차트) 가 존재하지 않는다. Euler 각은 유사 (jam) 점 (gimbal lock) 에서 특이. 그래서 강체 회전의 자연스러운 속도 는 좌표 미분이 아닌 왼불변·우불변 벡터장 — 정확히 §1.4.10 의 좌불변 벡터장 이론과 결합.
(3) §1.4.10 과의 직접 연결. 강체의 몸체 각속도 는 — 리 대수 — 의 한 점. 그 시간 변화는 의 리 괄호 가 결정. 비푸앵카레식 (2.4.2) 이 정확히 이 구조 상수 를 식에 담는다.
(4) 적분 불가능의 실용 의미. 준좌표 를 시간에 따라 적분 해도 위치 좌표 를 만들 수 없다. 즉 현재의 들 을 알아도 과거의 위치 를 재구성할 수 없다 (전체 경로의 기하학적 위상 정보가 필요 — 휘토프-아놀드 holonomy). 이게 역학에서의 게이지 자유의 한 측면.
(5) 비홀로노믹 구속 (2.5.3) 과의 차이. 두 가지를 혼동하기 쉽다.
- 준좌표: 자유 좌표의 비적분 가능 결합 — 자유도 수는 그대로, 좌표 표현만 다름.
- 비홀로노믹 구속: 물리적 구속 이 적분 불가능 — 자유도가 실제로 감소.
§2.4 는 준좌표, §2.5.3 은 비홀로노믹.
파이썬으로 확인 — 강체의 Euler 각 → 몸체 각속도
이 코드의 메시지는 단순하다: 강체의 Euler 각 의 시간 미분에서 몸체 각속도 를 계산하고, 이게 각 좌표의 시간 미분이 아니다 — 즉 준좌표 임을 보인다.
# Euler 각 (zyz convention): R = R_z(φ) R_y(θ) R_z(ψ)
# 몸체 각속도 ω̂ = R⁻¹ dR/dt — 세 성분 ω_1, ω_2, ω_3 (몸체 좌표계 기준)
# 표준 공식 (zyz):
# ω_1 = -sin ψ θ̇ + sin θ cos ψ φ̇
# ω_2 = cos ψ θ̇ + sin θ sin ψ φ̇
# ω_3 = cos θ φ̇ + ψ̇
# 이게 *적분 불가능* — 어떤 좌표의 시간 미분으로도 적을 수 없음
import numpy as np
# 두 가지 회전 경로 비교: 둘 다 같은 시작·끝 자세를 가지지만 다른 경로
# (a) 경로 1: φ 만 변경, θ=ψ=0 유지
# (b) 경로 2: ψ 만 변경, φ=θ=0 유지 (동치적 회전)
# 하지만 *몸체 각속도* 의 누적 적분은 두 경로에서 *다르다* — 적분 불가능의 신호
def omega_body_zyz(phi, theta, psi, dphi, dtheta, dpsi):
"""Euler zyz → 몸체 각속도 (ω_1, ω_2, ω_3)"""
w1 = -np.sin(psi) * dtheta + np.sin(theta) * np.cos(psi) * dphi
w2 = np.cos(psi) * dtheta + np.sin(theta) * np.sin(psi) * dphi
w3 = np.cos(theta) * dphi + dpsi
return np.array([w1, w2, w3])
# 경로 (a): φ: 0 → π/2 linear, θ = ψ = 0 (즉 θ̇ = ψ̇ = 0)
# t ∈ [0, 1]: φ(t) = (π/2) t, dφ/dt = π/2
phi_dot_a = np.pi / 2
print("경로 (a): φ 만 0 → π/2 변경")
omega_a_at_mid = omega_body_zyz(np.pi/4, 0.0, 0.0, phi_dot_a, 0.0, 0.0)
print(f" 중간점에서 ω_body = {omega_a_at_mid}")
print(f" 적분: ω_3 = cos θ · dφ/dt = π/2 (시간 [0,1] 동안 누적 = π/2)")
# 경로 (b): ψ: 0 → π/2 linear, φ = θ = 0
psi_dot_b = np.pi / 2
print("\n경로 (b): ψ 만 0 → π/2 변경 (φ = θ = 0)")
omega_b_at_mid = omega_body_zyz(0.0, 0.0, np.pi/4, 0.0, 0.0, psi_dot_b)
print(f" 중간점에서 ω_body = {omega_b_at_mid}")
print(f" 적분: ω_3 = dψ/dt = π/2, ω_1 = ω_2 = 0")
# 즉 두 경로가 끝나는 자세는 다르지만 (φ vs ψ 회전), ω_3 의 *누적 적분* 은
# 두 경로 모두 π/2. 이게 ω_3 가 *위치 좌표* 가 아니라는 사실의 *시각화*:
# "ω_3 의 시간 적분" 이 다른 *최종 자세* 에 도달.
print("\n두 경로 모두 ∫ ω_3 dt = π/2 이지만, *최종 자세* 가 다름.")
print("→ ω_i 는 *어떤 좌표* 의 시간 미분이 아니다 = 준좌표")
이 결과는 몸체 각속도가 어떤 좌표의 시간 미분이 아니라 — 즉 적분 불가능한 준좌표 임 — 을 두 회전 경로의 비교로 시각화한다.
다음 절(2.4.2)로 가는 다리
준좌표 가 정의됐으니 그 위에서 라그랑주식을 어떻게 적을까? 적분 불가능 함이 식에 추가 항을 만든다 — 구조 상수 가 끼어든 비푸앵카레 방정식 (Boltzmann–Hamel). §1.4.10 의 리 대수 구조 상수가 여기서 물리적 식 에 등장한다.