1. 개요
| 룽게-쿠타법 Runge–Kutta Methods | |
|---|---|
| 분야 | 수치해석 × 상미분방정식 |
| 대상 | 초기값 문제 (IVP) |
| 대표 도식 | 고전적 4차 RK (RK4) |
| 제안자 | C. Runge (1895), M. W. Kutta (1901) |
| 적응형 대표 | RKF45 (Fehlberg 1969) · DOPRI5 (Dormand–Prince 1980) |
오일러법은 정직하다. 정직하게 틀린다는 게 문제일 뿐.
룽게-쿠타법(Runge–Kutta methods)은 상미분방정식(ODE)의 초기값 문제를 한 스텝 안에서 여러 번 기울기를 평가해 높은 정확도로 수치 적분하는 단일 스텝 방법의 한 계열이다. 독일 수학자 카를 룽게와 마르틴 쿠타가 19세기 말~20세기 초에 정립했다. 대상은 다음 형태의 문제다.
이런 방정식은 분자동역학의 입자 궤적부터 회로 과도해석, 화학 반응 속도, 궤도 역학까지 시뮬레이션의 심장부에 앉아 있다. 대부분 해석해가 없으니 결국 컴퓨터로 시간을 조금씩 전진시켜야 하는데, 이 “조금씩 전진”을 얼마나 똑똑하게 하느냐가 룽게-쿠타법의 존재 이유다.
2. 오일러법의 한계
가장 원초적인 방법은 전진 오일러법이다. 현재 위치의 기울기 하나로 다음 스텝을 찍는다.
직관적이고 구현도 5분이면 끝나지만, 국소절단오차가 , 전역오차가 인 1차 방법이라 정확도가 처참하다. 스텝 초입의 기울기만 믿고 스텝 전체를 직진하니, 곡률이 있는 해를 따라가지 못하고 계속 바깥으로 미끄러진다. 정확도를 10배 올리려면 스텝을 10배 잘게 쪼개야 하는데, 이는 계산량 10배를 의미한다. 여기서 나온 발상이 “스텝 한 칸 안에서 기울기를 여러 번 재보자”는 것이다.
3. RK4: 4차 정확도의 국룰
가장 유명한 고전적 4차 룽게-쿠타(RK4)는 한 스텝 안에서 기울기를 네 번 평가한다.
이 네 기울기를 심프슨 공식 비슷한 가중치로 섞어 다음 값을 낸다.
중간점 기울기 에 두 배 가중치를 준 것이 핵심. 이 조합 덕에 RK4는 전역오차가 인 4차 정확도를 달성한다. 스텝을 절반으로 줄이면 오차가 1/16로 줄어든다는 뜻이라, 오일러법과는 체급 자체가 다르다. 함수 평가를 스텝당 4번 하는 비용으로 이 정확도를 사니, 가성비의 균형점으로 수십 년간 사랑받아 “일단 RK4 돌려”가 국룰이 되었다.1
4. 버처 표: 모든 룽게-쿠타를 규정하는 계수표
RK4 는 무수히 많은 룽게-쿠타 도식 중 하나일 뿐이고, 계열 전체는 하나의 일반형으로 쓰인다. 개의 스테이지를 쓰는 도식은
이고, 도식의 정체는 계수 만으로 완전히 결정된다. 이 계수들을 표로 적은 것이 버처 표(Butcher tableau)다. 가 에서만 0이 아니면(엄격 하삼각) 각 를 순서대로 계산할 수 있어 명시적, 대각 이상에 값이 있으면 암시적이다.
계수가 아무 값이나 되는 건 아니고, 차수 를 얻으려면 차수 조건(order conditions)이라는 대수 연립식을 만족해야 한다. 앞의 몇 개는 손으로 쓸 만하다.
첫 식은 1차, 둘째까지 2차, 셋째·넷째까지 3차 조건이다. 문제는 조건의 개수가 차수에 따라 폭발한다는 것 — 뿌리 달린 나무(rooted tree)의 개수를 따라 1, 2, 4, 8, 17, 37, 85개로 늘어난다. 8차 도식 하나를 유도하는 것이 논문 한 편이 되는 이유다.2
5. 차수와 국소절단오차
룽게-쿠타법의 “차수”()는 한 스텝에서 발생하는 국소절단오차가 , 전역오차가 임을 의미한다.
| 방법 | 스텝당 함수 평가 | 국소절단오차 | 전역오차(차수) |
|---|---|---|---|
| 전진 오일러 | 1 | ||
| RK2 (중점법) | 2 | ||
| RK4 (고전) | 4 |
주의할 점은 차수가 높다고 무조건 좋은 건 아니라는 것. 6차, 8차로 올릴수록 스텝당 함수 평가가 급증하고, 해가 매끄럽지 않으면(불연속·급변) 고차의 이점이 사라진다.
결정적으로, 4차까지는 “차수 = 스테이지 수”라는 공짜 점심이 성립하지만 5차부터는 깨진다. 명시적 룽게-쿠타의 스테이지 수 와 달성 가능한 차수 사이에는 버처 장벽(Butcher barrier)이라 불리는 하한이 있다.
| 차수 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 |
|---|---|---|---|---|---|---|---|---|
| 최소 스테이지 | 1 | 2 | 3 | 4 | 6 | 7 | 9 | 11 |
에서 , 에서 , 에서 이고, 구간에서는 이 하한이 실제로 달성된다. 4차에서 5차로 한 칸 올리는 데 함수 평가가 4번에서 6번으로 50% 늘어난다는 뜻이라, RK4 가 오랫동안 기본값 자리를 지킨 데에는 이 장벽의 지분이 크다. 실무의 가성비 스위트 스폿이 대개 4~5차에 몰려 있는 이유이기도 하다.
6. 안정성 영역: 정확도와 별개의 제약
차수는 “스텝을 줄이면 오차가 얼마나 빨리 주는가”만 말할 뿐, “이 스텝으로 계산이 터지지 않는가”는 말해 주지 않는다. 후자를 보는 표준 도구가 시험 방정식 에 도식을 적용해 얻는 안정성 함수 () 이고, 인 복소평면 영역이 안정성 영역이다. 명시적 -스테이지 -차 도식의 는 의 테일러 급수를 차까지 자른 다항식이 되고, RK4 는 마침 라서 깔끔하다.
다항식이므로 가 커지면 도 반드시 발산한다 — 명시적 룽게-쿠타의 안정성 영역은 항상 유한하다는 뜻이다. RK4 의 실축 한계는 , 허수축 한계는 이다. 이 두 숫자가 실무에서 하는 일은 분명하다.
- 확산 지배(실 고유값): 스텝 상한이 로 잡힌다.
- 대류 지배(허 고유값): 중앙차분 이산화의 고유값이 순허수라 허수축 한계가 그대로 CFL 조건의 상수를 결정한다. 전진 오일러는 허수축 위에 안정 구간이 아예 없어 중앙차분 대류항과 조합하면 무조건 발산하지만, RK4 는 만큼의 여유가 있어 조합이 성립한다. CFD 에서 RK 계열 시간적분이 즐겨 쓰이는 실질적 이유다.
편미분방정식을 반이산화한 뒤 고유값을 뽑아 이 영역에 얹어 보는 절차는 폰 노이만 안정성 해석과 같은 이야기를 다른 언어로 하는 것이다.
7. 명시적 vs 암시적: 강성 방정식
지금까지 본 것은 전부 명시적(explicit) 룽게-쿠타다. 다음 값을 과거 정보만으로 곧장 계산한다. 문제는 강성(stiff) 방정식 — 서로 시간 스케일이 극단적으로 다른 성분이 섞인 방정식이다. 빠른 성분은 이미 소멸했는데도 안정성 영역이 유한하다는 이유만으로 를 그 빠른 스케일에 맞춰 잘게 쪼개야 해서, 명시적 방법은 도저히 못 버틴다.3 이것은 구현을 잘하고 못하고의 문제가 아니라 정리다 — 달퀴스트 장벽에 따라 A-안정(좌반평면 전체가 안정)인 명시적 룽게-쿠타는 존재하지 않는다. 위에서 본 대로 가 다항식이면 무한대에서 발산할 수밖에 없기 때문이다.
이때 등장하는 것이 암시적(implicit) 룽게-쿠타다. 미지수 이 우변에도 등장하는 형태라, 매 스텝 비선형 방정식을 풀어야 한다.
이 내부 방정식을 푸는 데 보통 뉴턴-랩슨법이 동원된다. 암시적 도식의 는 다항식이 아니라 유리함수라서 에서도 유계일 수 있고, 그 덕에 좌반평면 전체를 안정 영역으로 덮는 A-안정이 가능해진다. 스텝당 비용은 훨씬 비싸지지만 강성 문제에서는 명시적 방법보다 압도적으로 큰 를 쓸 수 있어 오히려 총 계산량이 준다. 화학 반응, 연소, 회로 해석처럼 강성이 심한 분야에서는 암시적 방법이 사실상 필수다.
여기서 스테이지로 낼 수 있는 차수도 달라진다. 명시적은 버처 장벽에 막히지만, 가우스-르장드르 절점을 쓰는 암시적 룽게-쿠타는 스테이지로 차수 를 낸다. 2스테이지로 4차, 3스테이지로 6차다. 대신 매 스텝 (문제 차원) 크기의 연립방정식을 풀어야 해서, 실무에서는 대각 암시(DIRK/ESDIRK)처럼 비용을 깎은 변형이 더 자주 쓰인다.
8. 적응 스텝: RKF45와 도르망-프린스
해가 완만한 구간에서는 스텝을 크게, 급변하는 구간에서는 잘게 잡는 게 이상적이다. 이걸 자동으로 해주는 것이 적응 스텝(adaptive step-size) 방법이다. 핵심 아이디어는 서로 다른 차수의 두 해를 거의 같은 기울기 평가로 동시에 뽑아, 그 차이를 국소오차의 추정치로 삼는 것.
- RKF45(Runge–Kutta–Fehlberg): 펠베리(E. Fehlberg)가 NASA 재직 중 1969년에 정리한 6스테이지 도식. 같은 를 공유하는 4차 해와 5차 해를 함께 뽑아 그 차이를 오차 추정치로 쓴다. 전진은 4차 해로 한다 — 5차 해는 오차 측정용 잣대일 뿐이다.
- 도르망-프린스(Dormand–Prince, DOPRI5 / RK5(4)): 1980년 제안. 7스테이지지만 FSAL(First Same As Last — 한 스텝의 마지막 기울기가 다음 스텝의 첫 기울기와 같음) 성질이 있어 스텝당 실질 함수 평가는 6번이다. 펠베리와 달리 5차 해로 전진하고(국소 외삽), 계수도 5차 항의 절단오차가 작아지도록 최적화했다. MATLAB의
ode45와 SciPy의RK45가 바로 이 도식이어서 오늘날 가장 널리 굴러가는 적응형 적분기다. Julia 의Tsit5처럼 나중에 나온 RK5(4) 들은 계수는 다르지만 FSAL + 5차 전진이라는 설계를 그대로 물려받았다.4
스텝 조절 자체는 간단한 멱법칙이다. 추정 오차 과 허용오차 로부터
안전계수 와 증감 상한(, )은 스텝 크기가 요동치는 것을 막으려고 넣는 실무적 가드레일이다. 허용오차는 보통 형태로 절대·상대를 섞어 준다 — 해가 0을 지나갈 때 상대 허용오차만 쓰면 스텝이 0으로 수렴해 버리기 때문이다.
덕분에 사용자는 스텝 크기를 손으로 튜닝하는 노가다에서 해방되고, “허용오차만 던져주면 알아서 스텝을 조절하는” 편안한 세계에 입장하게 된다. 다만 허용오차는 전역오차의 보증이 아니라 스텝당 국소오차의 목표치라는 점은 기억해 둘 것. rtol=1e-6 을 줬다고 답의 여섯 자리가 맞는다는 뜻이 전혀 아니다.
9. 분자동역학과의 관계: 명시적 RK 는 심플렉틱이 아니다
룽게-쿠타는 범용 ODE 솔버로서 강력하지만, 모든 곳에서 최선은 아니다. 대표적 반례가 분자동역학이나 궤도 역학처럼 에너지가 장시간 보존되어야 하는 해밀턴계다. RK4는 정확도는 높지만 심플렉틱(symplectic) 적분자가 아니다. 즉 위상공간의 부피를 보존하지 않아, 아주 긴 시간 적분에서 총 에너지가 서서히 표류(drift)한다. 한 주기는 예쁘게 맞지만, 수백만 스텝을 돌리면 행성이 슬금슬금 나선을 그리며 이탈하는 식이다.
정확히 말하면 명시적 룽게-쿠타 중에 심플렉틱인 것이 없다. 계열 전체가 배제된 것은 아니어서, 앞서 나온 가우스-르장드르 암시적 룽게-쿠타는 심플렉틱이면서 동시에 A-안정이다(중점법이 그중 1스테이지 2차짜리다). 다만 매 스텝 비선형 연립을 풀어야 해서, 원자 수백만 개를 수천만 스텝 굴리는 분자동역학에서는 비용이 맞지 않는다.
그래서 이 분야에서는 정확도 차수가 낮더라도 명시적이면서 심플렉틱한 베를레 적분 · 리프프로그 · 심플렉틱 적분기 계열이 표준으로 쓰인다. 이들은 에너지를 정확히 보존하지는 않지만 원래 해밀토니안과 만큼만 다른 섀도 해밀토니안을 거의 정확히 보존해서, 에너지 오차가 표류하지 않고 유계 진동에 머문다. “정확도”와 “장기 안정성·보존성”이 항상 같은 방향을 가리키지는 않는다는, 수치해석의 뼈아픈 교훈이다. 도구를 문제에 맞게 고르는 것이 곧 실력이다.
10. 관련 문서
11. Footnotes
-
RK4가 워낙 유명해서 “룽게-쿠타법 = RK4”로 착각하기 쉽지만, 룽게-쿠타는 무수히 많은 도식을 아우르는 계열의 이름이다. 각 도식은 버처 표라는 계수 표 하나로 완전히 규정되고, 오일러법조차 1스테이지 룽게-쿠타로 볼 수 있다. 계열의 출발점은 룽게의 1895년 논문(Math. Ann. 46, 167)이고, 오늘날의 일반형은 헌(1900)을 거쳐 쿠타가 1901년에 정리했다. RK4 의 그 (1,2,2,1)/6 가중치도 쿠타의 논문에 이미 들어 있다. ↩
-
차수 조건과 뿌리 달린 나무의 대응은 버처가 1960년대에 정리했다. 미분방정식 푸는 계수 맞추기가 조합론 문제로 둔갑하는 지점이라, 처음 보면 “내가 왜 나무를 세고 있지” 싶어진다. 10차 도식의 계수를 손으로 유도한 사람들이 실재한다는 사실이 이 분야의 광기를 요약한다. ↩
-
강성의 악명 높은 예가 화학 반응 네트워크다. 어떤 반응은 나노초, 어떤 반응은 초 단위로 진행되는데, 명시적 솔버는 가장 빠른 반응에 를 인질로 잡혀 현생을 포기하게 된다. “왜 이렇게 안 끝나지?” 싶으면 강성을 의심하라. ↩
-
ode45의 45는 4차와 5차 해를 함께 쓴다는 뜻이지, “45번째 방법”이 아니다. 이걸 처음 알았을 때의 배신감을 많은 공대생이 공유한다. 덤으로, 표기 관례상 DOPRI5 는RK5(4)로 적는다 — 괄호 밖이 전진에 쓰는 차수, 괄호 안이 오차 추정용 차수다. 펠베리의RK4(5)와 숫자 순서가 뒤집혀 있는 게 둘의 차이를 그대로 보여준다. ↩
이 문서의 주요 출처
- Runge, C. (1895). Ueber die numerische Auflosung von Differentialgleichungen. Math. Ann. 46, 167-178
- Butcher, J. C. (1965). On the attainable order of Runge-Kutta methods. Math. Comp. 19, 408-417
- Fehlberg, E. (1969). Low-order classical Runge-Kutta formulas with stepsize control. NASA TR R-315
- Dormand, J. R. & Prince, P. J. (1980). A family of embedded Runge-Kutta formulae. J. Comput. Appl. Math. 6(1), 19-26
- Hairer, Norsett & Wanner. Solving Ordinary Differential Equations I - Nonstiff Problems (2nd ed., Springer)
- SciPy 문서 - scipy.integrate.RK45 (Dormand-Prince 5(4))
의견을 반영할게요. 감사합니다.