맨위로가기

룽게-쿠타-펠베르크 방법

"오늘의AI위키"는 AI 기술로 일관성 있고 체계적인 최신 지식을 제공하는 혁신 플랫폼입니다.
"오늘의AI위키"의 AI를 통해 더욱 풍부하고 폭넓은 지식 경험을 누리세요.

1. 개요

룽게-쿠타-펠베르크 방법은 1900년경 카를 다비트 톨메 룽게와 마르틴 빌헬름 쿠타가 개발한 룽게-쿠타 방법을 에르빈 펠베르크가 개량한 수치적 방법이다. 이 방법은 부처 태블로를 사용하여 나타낼 수 있으며, RKF45와 같은 다양한 형태로 구현된다. 룽게-쿠타-펠베르크 방법은 적응형 스텝 사이즈를 사용하여 미분 방정식 시스템을 풀며, 절단 오차 추정을 통해 스텝 사이즈를 조절한다.

더 읽어볼만한 페이지

  • 룽게-쿠타 방법 - 오일러 방법
    오일러 방법은 레온하르트 오일러가 제시한 미분 방정식의 해를 구하는 수치 해석 방법으로, 초기값을 이용하여 시간 간격을 나누어 해를 계산하며, 테일러 급수를 활용하여 공식을 유도하고, 간단한 알고리즘 덕분에 과거에 널리 사용되었고 현재에도 수치 해석의 기본 원리를 설명하는 데 중요한 역할을 한다.
  • 룽게-쿠타 방법 - 호인의 방법
    호인의 방법은 미분방정식의 해를 구하는 수치적 방법으로, 오일러 방법의 개선된 형태이며, 구간 양 끝점의 기울기를 고려하여 오차를 줄이는 2차 룽게-쿠타 방법의 일종이다.
  • 수치해석학 - 수학적 최적화
    수학적 최적화는 주어진 집합에서 실수 또는 정수 변수를 갖는 함수의 최댓값이나 최솟값을 찾는 문제로, 변수 종류, 제약 조건, 목적 함수 개수에 따라 다양한 분야로 나뉘며 여러 학문 분야에서 활용된다.
  • 수치해석학 - 선형대수학
    선형대수학은 벡터, 벡터 공간, 행렬 등의 개념으로 선형 방정식과 선형 변환을 연구하는 수학 분야로, 선형성을 활용해 행렬로 표현 및 계산하며, 연립일차방정식 해법, 고유값/고유벡터를 통한 행렬 분석, 벡터 공간의 기저와 차원 등을 다루고 물리학, 공학, 컴퓨터 과학 등 다양한 분야에 응용된다.
룽게-쿠타-펠베르크 방법

2. 역사

1900년 경 독일의 수학자 카를 다비트 톨메 룽게와 마르틴 빌헬름 쿠타가 개발한 룽게-쿠타 방법에르빈 펠베르크(Erwin Fehlberg)가 개량하였다.

2. 1. 룽게-쿠타 방법

1900년 경 독일의 수학자 카를 다비트 톨메 룽게와 마르틴 빌헬름 쿠타룽게-쿠타 방법을 개발하였다.

3. 표시

존 찰스 부처가 만든 부처 태블로는 룽게-쿠타 방법을 나타내는 데 사용되며, 한 줄을 추가하는 방식으로 확장할 수 있다.[2]

기본적인 펠베르크 방법인 RKF45의 부처 태블로는 다음과 같다.

0
1/41/4
3/83/329/32
12/131932/2197−7200/21977296/2197
1439/216−83680/513−845/4104
1/2−8/272−3544/25651859/4104−11/40
16/13506656/1282528561/56430−9/502/55
25/21601408/25652197/4104−1/50



모든 룽게-쿠타 방법은 고유한 부처 테이블로 식별된다. 표의 맨 아래 첫 번째 행의 계수는 5차 정확한 방법을 제공하고, 두 번째 행은 4차 정확한 방법을 제공한다.

이 그림은 룽게-쿠타-펠베르크 방법으로 진화하는 3체 시뮬레이션 중에 사용된 실제 계산 시간을 보여준다. 컴퓨터 시간의 대부분은 물체가 가까이 지나가고 수치적 오류에 취약할 때 소모된다.

3. 1. 부처 테이블

존 찰스 부처가 만든 부처 태블로는 룽게-쿠타 방법을 나타내는 데 사용되며, 한 줄을 추가하는 방식으로 확장할 수 있다.[2]

기본적인 펠베르크 방법인 RKF45의 부처 태블로는 다음과 같다.

0
1/41/4
3/83/329/32
12/131932/2197−7200/21977296/2197
1439/216−83680/513−845/4104
1/2−8/272−3544/25651859/4104−11/40
16/13506656/1282528561/56430−9/502/55
25/21601408/25652197/4104−1/50



모든 룽게-쿠타 방법은 고유한 부처 테이블로 식별된다. 표의 맨 아래 첫 번째 행의 계수는 5차 정확한 방법을 제공하고, 두 번째 행은 4차 정확한 방법을 제공한다.

4. 알고리즘 구현

페엘베르크[2]는 다음과 같은 형태의 ''n''개의 미분 방정식 시스템을 푸는 해법을 제시했다.

\frac{dy_i}{dx} = f_i(x,y_1,y_2, \ldots, y_n), i=1,2,\ldots,n

반복적으로

y_i(x+h), i=1,2,\ldots,n

를 구한다. 여기서 ''h''는 알고리즘적으로 결정될 적응형 스텝 사이즈이다.

해는 여섯 개의 증가분의 가중 평균이며, 각 증가분은 간격의 크기인 h와 미분 방정식의 오른쪽에 있는 함수 ''f''가 지정한 추정 기울기의 곱이다.

\begin{align}

k_1&=h\cdot f(x+A(1) \cdot h,y) \\

k_2&=h\cdot f(x+A(2)\cdot h,y+B(2,1)\cdot k_1) \\

k_3&=h\cdot f(x+A(3)\cdot h, y+B(3,1)\cdot k_1+B(3,2)\cdot k_2 ) \\

k_4&=h\cdot f(x+A(4)\cdot h, y+B(4,1)\cdot k_1+B(4,2)\cdot k_2+B(4,3)\cdot k_3 ) \\

k_5&=h\cdot f(x+A(5)\cdot h, y+B(5,1)\cdot k_1+B(5,2)\cdot k_2+B(5,3)\cdot k_3+B(5,4)\cdot k_4 ) \\

k_6&=h\cdot f(x+A(6)\cdot h, y+B(6,1)\cdot k_1+B(6,2)\cdot k_2+B(6,3)\cdot k_3+B(6,4)\cdot k_4+B(6,5) \cdot k_5)

\end{align}

그런 다음 가중 평균은 다음과 같다.

y(x+h)=y(x) + CH(1) \cdot k_1 + CH(2) \cdot k_2 + CH(3) \cdot k_3 + CH(4) \cdot k_4 + CH(5) \cdot k_5 + CH(6) \cdot k_6

절단 오차의 추정치는 다음과 같다.

\mathrm{TE} = \left|\mathrm{CT}(1) \cdot k_1 + \mathrm{CT}(2) \cdot k_2 + \mathrm{CT}(3) \cdot k_3 + \mathrm{CT}(4) \cdot k_4 + \mathrm{CT}(5) \cdot k_5 + \mathrm{CT}(6) \cdot k_6\right|

단계가 완료되면 새로운 스텝 사이즈가 계산된다.[3]

h_{\text{new}} = 0.9 \cdot h \cdot \left ( \frac {\varepsilon} {TE} \right )^{1/5}

만약 \mathrm{TE} > \varepsilon라면, hh_{\text{new}}로 바꾸고 단계를 반복한다. 만약 TE\leqslant\varepsilon라면, 단계가 완료된다. 다음 단계를 위해 hh_{\text{new}}로 바꾼다.

페엘베르크가 제시한 RK4(5) 공식에 대한 계수는 아래 표와 같다.

RK4(5)의 계수, 페엘베르크의 공식 1, 표 II[2]
KA(K)B(K,L)C(K)CH(K)CT(K)
L=1L=2L=3L=4L=5
10rowspan="2" |rowspan="3" |rowspan="4" |rowspan="5" |1/947/4501/150
22/92/9000
31/31/121/49/2012/25-3/100
43/469/128-243/128135/6416/4532/22516/75
51-17/1227/4-27/516/151/121/301/20
65/665/432-5/1613/164/275/1446/25-6/25



RK4(5)의 계수, 페엘베르크의 공식 2, 표 III[2]
KA(K)B(K,L)C(K)CH(K)CT(K)
L=1L=2L=3L=4L=5
10rowspan="2" |rowspan="3" |rowspan="4" |rowspan="5" |25/21616/135-1/360
21/41/4000
33/83/329/321408/25656656/12825128/4275
412/131932/2197-7200/21977296/21972197/410428561/564302197/75240
51439/216-83680/513-845/4104-1/5-9/50-1/50
61/2-8/272-3544/25651859/4104-11/402/55-2/55



페엘베르크의 표 IV[2]에는 D. Sarafyan이 유도한 RKF4(5)에 대한 계수가 나와 있다.

Sarafyan의 RK4(5)의 계수, 페엘베르크의 표 IV[2]
KA(K)B(K,L)C(K)CH(K)CT(K)
L=1L=2L=3L=4L=5
100rowspan="2" |rowspan="3" |rowspan="4" |rowspan="5" |1/61/241/8
21/21/2000
31/21/41/42/302/3
410-121/65/481/16
52/37/2710/2701/2727/56-27/56
61/528/625-1/5546/62554/625-378/625125/336-125/336


4. 1. RK4(5) 알고리즘

페엘베르크[2]는 다음과 같은 형태의 ''n''개의 미분 방정식 시스템을 푸는 해법을 제시했다.

\frac{dy_i}{dx} = f_i(x,y_1,y_2, \ldots, y_n), i=1,2,\ldots,n

반복적으로

y_i(x+h), i=1,2,\ldots,n

를 구한다. 여기서 ''h''는 알고리즘적으로 결정될 적응형 스텝 사이즈이다.

해는 여섯 개의 증가분의 가중 평균이며, 각 증가분은 간격의 크기인 h와 미분 방정식의 오른쪽에 있는 함수 ''f''가 지정한 추정 기울기의 곱이다.

\begin{align}

k_1&=h\cdot f(x+A(1) \cdot h,y) \\

k_2&=h\cdot f(x+A(2)\cdot h,y+B(2,1)\cdot k_1) \\

k_3&=h\cdot f(x+A(3)\cdot h, y+B(3,1)\cdot k_1+B(3,2)\cdot k_2 ) \\

k_4&=h\cdot f(x+A(4)\cdot h, y+B(4,1)\cdot k_1+B(4,2)\cdot k_2+B(4,3)\cdot k_3 ) \\

k_5&=h\cdot f(x+A(5)\cdot h, y+B(5,1)\cdot k_1+B(5,2)\cdot k_2+B(5,3)\cdot k_3+B(5,4)\cdot k_4 ) \\

k_6&=h\cdot f(x+A(6)\cdot h, y+B(6,1)\cdot k_1+B(6,2)\cdot k_2+B(6,3)\cdot k_3+B(6,4)\cdot k_4+B(6,5) \cdot k_5)

\end{align}

그런 다음 가중 평균은 다음과 같다.

y(x+h)=y(x) + CH(1) \cdot k_1 + CH(2) \cdot k_2 + CH(3) \cdot k_3 + CH(4) \cdot k_4 + CH(5) \cdot k_5 + CH(6) \cdot k_6

절단 오차의 추정치는 다음과 같다.

\mathrm{TE} = \left|\mathrm{CT}(1) \cdot k_1 + \mathrm{CT}(2) \cdot k_2 + \mathrm{CT}(3) \cdot k_3 + \mathrm{CT}(4) \cdot k_4 + \mathrm{CT}(5) \cdot k_5 + \mathrm{CT}(6) \cdot k_6\right|

단계가 완료되면 새로운 스텝 사이즈가 계산된다.[3]

h_{\text{new}} = 0.9 \cdot h \cdot \left ( \frac {\varepsilon} {TE} \right )^{1/5}

만약 \mathrm{TE} > \varepsilon라면, hh_{\text{new}}로 바꾸고 단계를 반복한다. 만약 TE\leqslant\varepsilon라면, 단계가 완료된다. 다음 단계를 위해 hh_{\text{new}}로 바꾼다.

페엘베르크가 제시한 RK4(5) 공식에 대한 계수는 아래 표와 같다.

RK4(5)의 계수, 페엘베르크의 공식 1, 표 II[2]
KA(K)B(K,L)C(K)CH(K)CT(K)
L=1L=2L=3L=4L=5
10rowspan="2" |rowspan="3" |rowspan="4" |rowspan="5" |1/947/4501/150
22/92/9000
31/31/121/49/2012/25-3/100
43/469/128-243/128135/6416/4532/22516/75
51-17/1227/4-27/516/151/121/301/20
65/665/432-5/1613/164/275/1446/25-6/25



RK4(5)의 계수, 페엘베르크의 공식 2, 표 III[2]
KA(K)B(K,L)C(K)CH(K)CT(K)
L=1L=2L=3L=4L=5
10rowspan="2" |rowspan="3" |rowspan="4" |rowspan="5" |25/21616/135-1/360
21/41/4000
33/83/329/321408/25656656/12825128/4275
412/131932/2197-7200/21977296/21972197/410428561/564302197/75240
51439/216-83680/513-845/4104-1/5-9/50-1/50
61/2-8/272-3544/25651859/4104-11/402/55-2/55



페엘베르크의 표 IV[2]에는 D. Sarafyan이 유도한 RKF4(5)에 대한 계수가 나와 있다.

Sarafyan의 RK4(5)의 계수, 페엘베르크의 표 IV[2]
KA(K)B(K,L)C(K)CH(K)CT(K)
L=1L=2L=3L=4L=5
100rowspan="2" |rowspan="3" |rowspan="4" |rowspan="5" |1/61/241/8
21/21/2000
31/21/41/42/302/3
410-121/65/481/16
52/37/2710/2701/2727/56-27/56
61/528/625-1/5546/62554/625-378/625125/336-125/336


4. 2. 다양한 RK4(5) 계수

모든 룽게-쿠타 방법은 고유하게 그 부처 테이블로 식별된다.[2] 펠베르크가 제안한 내장 쌍은 다음과 같다.

width="20px"|0
1/41/4
3/83/329/32
12/131932/2197−7200/21977296/2197
1439/216−83680/513−845/4104
1/2−8/272−3544/25651859/4104−11/40style="border-bottom:1px solid;" |
style="border-right:1px solid;" |16/13506656/1282528561/56430−9/502/55
style="border-right:1px solid;" |25/21601408/25652197/4104−1/50



표의 맨 아래 첫 번째 행의 계수는 5차 정확한 방법을 제공하고, 두 번째 행은 4차 정확한 방법을 제공한다.

참조

[1] 논문 method was originally proposed in Fehlberg (1969); Fehlberg (1970) is an extract of the latter publication. 1993
[2] 논문 1993
[3] 웹사이트 Appendix A Runge-Kutta Methods https://www.uni-muen[...] 2017
[4] 간행물 Low-order classical Runge-Kutta formulas with step size control and their application to some heat transfer problems NASA Technical Report 315 1969
[5] 논문 Klassische Runge-Kutta-Formeln vierter und niedrigerer Ordnung mit Schrittweiten-Kontrolle und ihre Anwendung auf Wärmeleitungsprobleme 1970
[6] 서적 Solving Ordinary Differential Equations I: Nonstiff Problems Springer-Verlag, Berlin 1993
[7] 서적 Scientific computing with ordinary differential equations Springer Science & Business Media 2012



본 사이트는 AI가 위키백과와 뉴스 기사,정부 간행물,학술 논문등을 바탕으로 정보를 가공하여 제공하는 백과사전형 서비스입니다.
모든 문서는 AI에 의해 자동 생성되며, CC BY-SA 4.0 라이선스에 따라 이용할 수 있습니다.
하지만, 위키백과나 뉴스 기사 자체에 오류, 부정확한 정보, 또는 가짜 뉴스가 포함될 수 있으며, AI는 이러한 내용을 완벽하게 걸러내지 못할 수 있습니다.
따라서 제공되는 정보에 일부 오류나 편향이 있을 수 있으므로, 중요한 정보는 반드시 다른 출처를 통해 교차 검증하시기 바랍니다.

문의하기 : help@durumis.com