수치적분(numerical integration)은 연립 미분방정식(ODE)을 연속 시간 해석해(닫힌형 해) 풀기 어려울 때, 작은 시간 간격 Δt로 쪼개 상태를 갱신하며 근사 해를 만드는 방법입니다. 물리 시뮬레이션의 정확도·안정성·성능은 적분기(integrator) 선택과 시간 스텝 설정에 크게 좌우됩니다.
기본 형태
많은 동역학은
x˙ = f(x, t)
또는 (위치 q, 속도 v)를 포함한 1차 형태로 쓸 수 있습니다. 수치적분은 t_n = t0 + nΔt에서 x_n ≈ x(t_n)을 계산합니다.
오일러(Euler) 방법
가장 단순한 명시적 방법은
x_{n+1} = x_n + Δt f(x_n, t_n)
입니다. 구현은 쉽지만, 많은 물리계에서 Δt가 조금만 커져도 불안정해지거나 에너지가 비현실적으로 증가/감소할 수 있습니다.
준-암시적(심플렉틱) 오일러
기계계(해밀토니안/보존계)에서는 속도를 먼저 갱신한 뒤 위치를 갱신하는 준-암시적 형태가 에너지 거동을 더 잘 보존하는 경우가 많습니다(심플렉틱 특성).
Verlet 계열
분자 동역학과 많은 물리 시뮬레이션에서 널리 쓰이는 방법으로, 위치 기반 Verlet 또는 속도 Verlet(velocity Verlet)이 대표적입니다. 시간가역성/에너지 드리프트가 비교적 완만한 장점이 있습니다.
Runge-Kutta 4(RK4)
정확도를 높이기 위해 한 스텝에서 기울기를 여러 번 평가합니다.
x_{n+1} = x_n + (Δt/6)(k1 + 2k2 + 2k3 + k4)
일반적으로 고정 Δt에서 정확도가 좋지만, 반드시 ‘물리적으로 안정적’인 것은 아니며(특히 장시간 에너지 보존), 계산 비용이 더 듭니다.
안정성, 스텝 크기, 오차
수치해의 품질은 크게 두 요소로 나뉩니다.
- 절단오차(truncation error): Δt 때문에 생기는 근사 오차
- 부동소수점 오차: 유한 정밀도 연산 오차
Δt를 절반으로 줄였을 때 결과가 어떻게 변하는지(수렴성) 확인하는 것이 기본적인 검증 방법입니다.
핵심 포인트
- Δt는 ‘정확도’뿐 아니라 ‘안정성’에도 직접 영향을 줍니다.
- 어떤 적분기가 좋은지는 계의 성질(보존계/감쇠계/스티프 여부)과 목적(장시간 안정 vs 단시간 정확)로 결정됩니다.