운동 방정식 — 뉴턴에서 일반좌표로

데카르트 좌표의 mx¨=Fm\ddot{\vec x} = \vec F 가 멈추는 자리에서, 일반좌표 qiq^i 와 배위공간 MM 이라는 두 단어가 해석역학의 문을 연다.

들어가며

이 장은 해석역학 전체의 출발점이다. 학부 1학년에서 익숙해진 뉴턴의 운동 방정식을 다시 적어 보고, 그 식이 “구속이 있는 계”에서 왜 어색해지는지를 한 예제로 본다. 그 어색함을 해소하기 위해 도입되는 두 가지 — 일반좌표 qiq^i배위공간(configuration space) MM — 이 이 책 전체의 어휘다. 이 장이 끝나면 독자는 자유도(degrees of freedom, DOF)의 의미를 매끄럽게 말할 수 있고, 7장에서 라그랑주 방정식을 유도할 때 등장할 ”qiq^i 에 대한 운동 방정식”의 자리도 미리 비워 둘 수 있어야 한다.

본론 1 — 데카르트 좌표에서의 뉴턴

질량 mm 의 입자가 3차원 유클리드 공간 R3\mathbb{R}^3 안을 움직인다고 하자. 위치를 x(t)=(x1,x2,x3)\vec x(t) = (x^1, x^2, x^3) 로 적고, 작용하는 합력을 F\vec F 라 하면 뉴턴의 제2법칙은 그 유명한 한 줄이다.

mx¨=Fm\,\ddot{\vec x} = \vec F

여기서 점은 시간에 대한 미분, x¨\ddot{\vec x} 는 가속도다. 자유 입자라면 이 식 하나로 충분하다. 초기 위치와 초기 속도를 주면 ODE 의 존재·유일성에 의해 궤적은 한 가지로 결정된다.

그러나 다음 예제를 보자. 반지름 RR 인 매끈한 원형 고리 위를 굴러가는 구슬. 직관적으로 이 계는 자유도가 1 이다 — 고리 위 어디에 있는지를 한 개의 각도 θ\theta 로 적을 수 있기 때문이다. 그런데 데카르트 좌표로 풀려면 좌표는 (x,y,z)(x, y, z) 세 개를 쓰면서 “이들은 x2+y2=R2x^2 + y^2 = R^2, z=0z = 0 을 만족한다”는 구속(constraint) 을 따로 끌고 다녀야 한다. 구속력은 풀어 보면 결국 사라지는 양인데, 식에는 끝까지 출몰한다. 깔끔하지 않다.

해결책은 처음부터 θ\theta 하나로 운동을 적는 것이다. 그러나 그 때의 운동 방정식은 더 이상 mθ¨=Fθm\ddot\theta = F_\theta 같은 모양이 아니다 — 데카르트의 직관이 그대로 옮겨 가지 않는다. 그래서 새로운 언어가 필요하다.

본론 2 — 일반좌표와 배위공간

자유도 nn 인 역학계에서 일반좌표(generalized coordinates) 란 계의 배위(어디 있고 어떻게 놓여 있는가)를 결정하는 nn 개의 독립 변수 q1,q2,,qnq^1, q^2, \ldots, q^n 의 모음이다. 우리는 이를 묶어 q=(q1,,qn)q = (q^1, \ldots, q^n) 으로 쓰고, 위첨자는 거듭제곱이 아니라 좌표의 번호임을 약속한다.

허용되는 qq 들의 집합을 배위공간 MM 이라 부른다. MM 은 일반적으로 평평한 유클리드 공간이 아니라 다양체(manifold) 이다 — 한 점 주위에서는 Rn\mathbb{R}^n 처럼 매끄럽게 좌표를 줄 수 있지만, 전체로 보면 휘어 있거나 구멍이 있을 수 있는 공간을 가리키는 말이다. 다양체의 정식 정의는 3장에서 다루고, 이 장에서는 “각 점 근방에서 nn 개의 독립 좌표 qiq^i 가 주어지는 공간” 정도로 이해하면 충분하다.

구체적으로:

  • 3차원 자유 입자: n=3n = 3, M=R3M = \mathbb{R}^3, 좌표는 (x,y,z)(x, y, z).
  • 고리 위 구슬: n=1n = 1, M=S1M = S^1 (1차원 원), 좌표는 각도 θ[0,2π)\theta \in [0, 2\pi).
  • 평면 단진자: n=1n = 1, M=S1M = S^1, 좌표는 연직선과 이루는 각 θ\theta.
  • 평면 이중진자: n=2n = 2, M=T2=S1×S1M = T^2 = S^1 \times S^1 (2차원 토러스), 좌표는 두 막대의 각 (θ1,θ2)(\theta_1, \theta_2).

이중진자에서 배위공간이 평면 R2\mathbb{R}^2 가 아니라 토러스라는 점이 중요하다. θ1=0\theta_1 = 0θ1=2π\theta_1 = 2\pi 가 같은 물리 상태이기 때문이다. 데카르트 좌표는 이 동치 관계를 모른다 — 일반좌표는 안다.

본론 3 — 일반력과 연쇄법칙

이제 데카르트와 일반좌표를 어떻게 잇는지를 적어 둔다. 데카르트 좌표 x\vec x 가 일반좌표 qq 의 함수로 주어진다고 하자: x=x(q)\vec x = \vec x(q). 이 함수가 매끄럽다면 연쇄법칙으로

dxj=xjqidqidx^j = \frac{\partial x^j}{\partial q^i}\, dq^i

(이하 같은 위·아래 첨자가 반복되면 합 — 아인슈타인 약속.) 외력 F\vec F 가 미소 변위 dxd\vec x 에 대해 하는 미소 일은

Fdx=Fjdxj=FjxjqidqiQidqi\vec F \cdot d\vec x = F_j\,dx^j = F_j\,\frac{\partial x^j}{\partial q^i}\, dq^i \equiv Q_i\, dq^i

여기 정의된 QiQ_i일반력(generalized force) 이다. 단위는 qiq^i 가 길이라면 뉴턴, 각도라면 뉴턴·미터(즉 토크)다. 일반력은 데카르트 힘의 성분을 받아 xj/qi\partial x^j / \partial q^i 라는 야코비 성분으로 가중평균한 결과로 이해하면 된다.

여기서 한 가지 약속만 더 해 두자. 이 장은 QiQ_i 까지만 적고, ”qiq^i 에 대한 운동 방정식”은 7장(라그랑주 방정식)에서 작용 변분으로 한 번에 떨어뜨릴 것이다. 이 절은 그 도착점을 위한 부기(簿記)일 뿐이다.

파이썬으로 확인

# 명시적 오일러 vs. 심플렉틱 오일러 비교: 1차원 조화진동자
# q'' = -omega^2 q,  omega = 1
# 에너지 E = (1/2)(p^2 + omega^2 q^2) 가 어떻게 변하는지 본다.
import numpy as np
import matplotlib.pyplot as plt

omega = 1.0
dt = 0.05
t = np.arange(0.0, 50.0 + dt, dt)
N = len(t)

# 초기조건: q(0) = 1, p(0) = 0  ->  E(0) = 0.5
q_e, p_e = np.empty(N), np.empty(N)   # 명시적 오일러
q_s, p_s = np.empty(N), np.empty(N)   # 심플렉틱 오일러
q_e[0] = q_s[0] = 1.0
p_e[0] = p_s[0] = 0.0

for n in range(N - 1):
    # 명시적 오일러: (q, p) 를 동시에 옛 값으로 갱신
    q_e[n+1] = q_e[n] + dt * p_e[n]
    p_e[n+1] = p_e[n] - dt * omega**2 * q_e[n]
    # 심플렉틱 오일러: p 를 먼저 갱신하고, 그 새 p 로 q 를 갱신
    p_s[n+1] = p_s[n] - dt * omega**2 * q_s[n]
    q_s[n+1] = q_s[n] + dt * p_s[n+1]

E_e = 0.5 * (p_e**2 + omega**2 * q_e**2)
E_s = 0.5 * (p_s**2 + omega**2 * q_s**2)

plt.plot(t, E_e, label="명시적 오일러")
plt.plot(t, E_s, label="심플렉틱 오일러")
plt.xlabel("t"); plt.ylabel("E(t)"); plt.legend(); plt.show()

명시적 오일러의 에너지는 시간에 따라 단조 증가하고, 심플렉틱 오일러의 에너지는 정확값 0.5 근방에서 작은 진폭으로 진동한다. 같은 운동을 같은 시간 간격으로 적분했는데 결과가 완전히 다르다 — 이 차이가 10장(해밀턴 역학)에서 다룰 심플렉틱 구조가 왜 보존되어야 하는지에 대한 첫 번째 단서다.

다음 장으로

2장: 곡면 위의 구속 운동에서는 이 장에서 그림으로만 본 “구속이 있는 계”를 조금 더 정량적으로 다룬다. 곡면 위에 머무는 입자의 운동을 일반좌표로 적는 절차를 통해, 다양체 위 운동이라는 어휘가 자연스럽게 자리 잡는다.