베를레 적분

편집 역사 토론
수치해석 게임 개발 마지막 수정: 2026-07-03 09:14:05

베를레 적분
Verlet Integration
분야수치해석 × 분자동역학 × 게임 물리
대상2차 상미분방정식 (뉴턴 운동방정식)
성질심플렉틱 · 시간 가역 · 2차 정확도
주요 변형position Verlet, velocity Verlet
이름 유래Loup Verlet (1967)

1. 개요[편집]

에너지가 서서히 새어 나가 시뮬레이션이 죽는 것 — 베를레는 그걸 안 한다. 그게 전부이자, 그게 위대함이다.

베를레 적분(Verlet integration)은 뉴턴의 운동방정식처럼 2차 상미분방정식(ODE)을 수치적으로 푸는 시간적분 기법이다. 가속도(힘)로부터 위치를 시간에 따라 전진시키되, 속도를 명시적으로 다루지 않고 현재와 이전 위치의 차이로 대신 표현하는 것이 특징이다. 분자동역학, 천 시뮬레이션, 물리 엔진에서 표준적으로 쓰이며, 단순함과 안정성이라는 두 마리 토끼를 동시에 잡은 드문 알고리즘으로 꼽힌다.

핵심 가치는 장기 안정성에 있다. 겉보기에 더 정확한 룽게-쿠타법(RK4) 같은 고차 기법이 오랜 시뮬레이션에서 에너지를 슬금슬금 잃거나 얻어 궤도가 나선을 그리며 무너지는 반면, 베를레는 에너지를 정확히 보존하진 않아도 그 주위에서 오차가 갇힌 채 진동한다. 별이 궤도를 백만 바퀴 돌아도 떨어지지 않고, 천이 몇 시간을 펄럭여도 폭발하지 않는 것 — 이 성질 하나로 베를레는 물리 시뮬레이션의 사실상 표준이 되었다.

2. 두 가지 형태[편집]

베를레 적분에는 널리 쓰이는 두 형태가 있다.

2.1. Position Verlet[편집]

가장 원초적인 형태로, 속도 변수 없이 위치만으로 전진한다. 테일러 전개를 앞뒤로 더해 1차항(속도)을 소거하면 다음을 얻는다.

xn+1=2xnxn1+anΔt2\mathbf{x}_{n+1} = 2\mathbf{x}_n - \mathbf{x}_{n-1} + \mathbf{a}_n \, \Delta t^2

속도가 식에 아예 등장하지 않는다는 점이 놀랍다. 필요하면 vn(xn+1xn1)/(2Δt)\mathbf{v}_n \approx (\mathbf{x}_{n+1} - \mathbf{x}_{n-1}) / (2\Delta t)로 사후에 추정한다. 이 “속도 없음”이 게임 물리에서 결정적 이점이 되는데, 제약(constraint)을 처리할 때 그냥 위치를 원하는 자리로 옮기기만 하면 속도가 위치 이력에서 자동으로 따라오기 때문이다.1

2.2. Velocity Verlet[편집]

속도를 명시적으로 관리해 수치적으로 더 다루기 쉬운 형태다. 위치와 속도를 반 스텝 엇갈려 갱신한다.

xn+1=xn+vnΔt+12anΔt2\mathbf{x}_{n+1} = \mathbf{x}_n + \mathbf{v}_n \, \Delta t + \tfrac{1}{2}\mathbf{a}_n \, \Delta t^2 vn+1=vn+12(an+an+1)Δt\mathbf{v}_{n+1} = \mathbf{v}_n + \tfrac{1}{2}(\mathbf{a}_n + \mathbf{a}_{n+1}) \, \Delta t

속도를 직접 들고 있어 속도 의존 힘(마찰, 항력)이나 온도 제어가 필요한 분자동역학에서 선호된다. 수학적으로는 position Verlet과 동치지만, 반올림 오차에 더 강건하고 초기 조건을 다루기 편하다.

3. 왜 RK4보다 물리에 좋은가[편집]

정확도만 따지면 4차 정확도인 룽게-쿠타법(RK4)이 2차 정확도인 베를레를 압도한다. 그런데도 물리 시뮬레이션이 베를레를 택하는 이유는 정확도가 아니라 구조 보존에 있다.

베를레는 심플렉틱(symplectic) 적분기다. 심플렉틱 적분기는 위상공간의 부피를 보존하는데, 이는 물리적으로 해밀토니안(전체 에너지)을 정확히는 아니어도 유계(bounded)한 오차 안에 가둔다는 뜻이다. 즉 에너지가 실제 값 주위에서 진동할 뿐, 한 방향으로 계속 새거나 쌓이지 않는다.2 RK4는 심플렉틱이 아니라서, 한 스텝의 오차는 작아도 그 오차가 계통적으로 누적되어 긴 적분에서는 에너지가 표류한다 — 행성이 태양으로 떨어지거나 우주로 날아간다.

항목베를레(심플렉틱)RK4
국소 정확도2차4차
장기 에너지유계 진동표류(감쇠/발산)
스텝당 힘 계산1회4회
물리 시뮬 적합성우수부적합

짧은 궤적을 정밀하게 그리려면 RK4, 오랜 시간 물리적으로 그럴듯하게 굴리려면 베를레. 게임과 분자동역학은 언제나 후자다.

또 하나의 미덕은 시간 가역성(time reversibility)이다. Position Verlet 식은 ΔtΔt\Delta t \to -\Delta t로 바꿔도 형태가 그대로라, 시뮬레이션을 거꾸로 돌리면 원래 경로를 되짚어 온다. 이는 물리 법칙 자체가 지닌 시간 대칭성을 이산 세계에서도 보존하는 것으로, 심플렉틱성과 더불어 장기 안정성의 뿌리다.

4. 활용[편집]

  • 분자동역학 — 수만~수백만 개 원자를 수 나노초 동안 적분하는 MD 시뮬레이션의 표준 적분기다. 스텝당 힘 계산이 단 한 번이라는 점(RK4는 네 번)이 대규모 계에서 결정적 비용 절감이 된다.
  • 천 시뮬레이션 — 천을 질점과 스프링의 격자로 보고, 각 질점을 position Verlet으로 굴린 뒤 “이웃 질점 간 거리 유지”라는 제약을 반복 적용하는 방식이 고전이다. 토마스 야콥센(Thomas Jakobsen)이 게임 Hitman의 래그돌에 쓴 기법이 이 접근의 교과서로 통한다.3
  • 물리 엔진 — 위치 기반 동역학(Position Based Dynamics, PBD) 계열이 베를레의 “위치만 옮기면 된다”는 철학을 계승해, 제약을 위치 투영으로 직접 푸는 현대 게임 물리의 주류를 이룬다.

5. 역사[편집]

베를레 적분이라는 이름은 프랑스 물리학자 루 베를레(Loup Verlet)에게서 왔다. 그는 1967년 아르곤 기체의 분자동역학 시뮬레이션 논문에서 이 방법을 (재)도입했다. 다만 이 알고리즘의 뿌리는 훨씬 깊어, 이미 1791년 물리학자들의 계산에도 흔적이 보이며, 20세기 초 스웨덴의 천체물리학자 카를 스퇴르머(Carl Störmer)가 오로라 속 하전입자 궤적을 계산하는 데 같은 공식을 썼다. 그래서 학계에서는 스퇴르머-베를레 방법(Störmer–Verlet method)이라는 이름도 널리 통용된다.4 200년 넘게 여러 분야에서 거듭 재발견된 셈인데, 좋은 도구는 원래 여러 번 발명되는 법이다.

6. 관련 문서[편집]

7. Footnotes[편집]

  1. 이 성질 때문에 천 시뮬레이션에서 “옷이 캐릭터를 뚫지 않게” 하는 제약 처리가 우아해진다. 침투한 질점을 표면 밖으로 위치만 밀어내면, 다음 스텝에서 속도가 위치 이력으로부터 알아서 갱신된다. 속도를 따로 손댈 필요가 없다.

  2. 엄밀히는 심플렉틱 적분기가 보존하는 것은 원래 해밀토니안이 아니라 그에 극히 가까운 “그림자 해밀토니안(shadow Hamiltonian)“이다. 그래서 에너지가 정확히 보존되진 않지만 영원히 그 근처를 맴돈다.

  3. Jakobsen, T. (2001), “Advanced Character Physics”, GDC. 이 짧은 발표 자료 하나가 이후 십수 년간 게임 물리 프로그래머들의 필독서가 되었다. 속도 없이 위치와 제약만으로 래그돌을 굴린다는 발상이 당시엔 신선한 충격이었다.

  4. 뉴턴 역학의 상당수 표준 도구가 그렇듯, “베를레”라는 이름은 관행일 뿐 유일한 발명자를 가리키지 않는다. 스티글러의 명명 법칙(어떤 과학적 발견도 최초 발견자의 이름을 따지 않는다)의 또 다른 사례다.