암묵적 및 명시적 반복 방법 제품군
미분방정식 y' = sin (t) 2 ⋅ y {\displaystyle y'=\sin(t)^{2}\cdoty}에 대한 룽지-쿠타 방법 비교(빨간색이 정확한 해) In numerical analysis , the Runge–Kutta methods ( RUUNG -ə-KUUT -tah[1] ) are a family of implicit and explicit iterative methods, which include the Euler method , used in temporal discretization for the approximate solutions of simultaneous nonlinear equations .[2] 이 방법들은 1900년경 독일 수학자 칼 룬지와 빌헬름 쿠타에 의해 개발되었습니다.
룽지-쿠타 방법 고전적인 룽지-쿠타 방법으로 사용되는 기울기 가장 널리 알려진 룽지-쿠타족의 일원은 일반적으로 "RK4", "고전적인 룽지-쿠타 방법" 또는 간단히 "룽지-쿠타 방법"이라고 불립니다.
초기 값 문제 를 다음과 같이 지정합니다.
d y d t = f ( t , y ) , y ( t 0 ) = y 0 . {\displaystyle {\frac {dy}{dt}}=f(t,y),\quad y(t_{0})=y_{0}.} 여기 서 {\displaystyle y} 는 시간 t {\displaystyle t} 의 알 수 없는 함수(스칼라 또는 벡터)이며, 대략적으로 추정하고자 합니다. dd {\displaystyle {\frac {dy}{dt }}, y {\displaystyle y} 가 변화하는 속도, 는 t {\displaystyle t} 의 함수이며, y {\displaystyle y} 자체의 함수입니다. 초기 시간 t 0 {\ displaystyle t_{0}} 에서 해당 y {\displaystyle y} 값은 y 0 {\ displaystyle y_{0} 입니다. 기능 f {\displaystyle f} 과 초기 조건 t 0 {\ displaystyle t_{0 }, y 0 {\ displaystyle y_{0} 이 주어집니다 .
이제 단계 크기 h > 0을 선택하여 다음을 정의합니다.
y n + 1 = y n + h 6 ( k 1 + 2 k 2 + 2 k 3 + k 4 ) , t n + 1 = t n + h {\displaystyle {\begin{aligned}y_{n+1}&=y_{n}+{\frac {h}{6}}\left(k_{1}+2k_{2}+2k_{3}+k_{4 }\right),\\t_{n+1}&=t_{n}+h\\\end{aligned}}} n = 0, 1, 2, 3, ..., 사용
k 1 = f ( t n , y n ) , k 2 = f ( t n + h 2 , y n + h k 1 2 ) , k 3 = f ( t n + h 2 , y n + h k 2 2 ) , k 4 = f ( t n + h , y n + h k 3 ) . {\displaystyle {\begin{aligned}k_{1}&=\f(t_{n},y_{n}),\k_{2}&=\f\! \left(t_{n}+{\frac {h}{2}},y_{n}+h{\frac {k_{1}}{2}}\right),\\k_{3}&=\ f\! \left(t_{n}+{\frac {h}{2}},y_{n}+h{\frac {k_{2}}{2}}\right),\\k_{4}&=\ f\! \left(t_{n}+h,y_{n}+hk_{3}\right). \end{align}}} (참고: 위 의 식들은 서로 다른 텍스트 에서 서로 다른 정의 를 갖습니다.) [4]
Here y n + 1 {\displaystyle y_{n+1}} is the RK4 approximation of y ( t n + 1 ) {\displaystyle y(t_{n+1})} , and the next value ( y n + 1 {\displaystyle y_{n+1}} ) is determined by the present value ( y n {\displaystyle y_{n}} ) plus the weighted average of four increments, 여기서 각 증분은 미분 방정식의 오른쪽에 있는 함수 f 에 의해 지정된 구간의 크기, h 및 추정 기울기의 곱입니다.
k 1 {\ displaystyle k_{1}} 은 간격 시작 시 기울기로 y {\displaystyle y} 를 사용합니다(Uleer's method ); k 2 {\ displaystyle k_{2}} 는 y {\displaystyle y} 및 k 1 {\ displaystyle k_{1}} 을 사용하여 간격의 중간 지점에 있는 기울기입니다. k 3 {\ displaystyle k_{3}} 는 다시 중간 지점의 기울기이지만 , 현재 y {\displaystyle y} 와 k 2 {\ displaystyle k_{2}} 를 사용하고 있습니다. k 4 {\ displaystyle k_{4}} 는 구간 끝의 기울기로, y {\displaystyle y} 와 k 3 {\ displaystyle k_{3} 를 사용합니다. 네 개의 기울기를 평균화할 때 중간 지점의 기울기에 더 큰 가중치를 부여합니다. f {\displaystyle f} 가 y {\displaystyle y} 와 독립적이므로 미분 방정식이 단순 적분과 동일하면 RK4는 심슨 규칙 입니다.[5]
RK4 메소드는 4차 메소드로, 로컬 절단 오류 는 O( h 5) {\displaystyle O(h^{5})} 의 순서 인 반면, 총 누적 오류 는 O( h 4 ) {\display O(h^{4}} 의 순서입니다.
많은 실제 응용 분야에서 함수 f {\displaystyle f } 는 t {\displaystyle t}( 특히 물리학에서는 자율 시스템 또는 시간 불변 시스템이라고 함)와 독립적이며 , 그 증분은 전혀 계산되지 않고 함수 f {\displaystyle f} 로 전달되지 않습니다. t n + 1 {\ displaystyle t_{n+1}} 에 대한 최종 공식만 사용합니다 .
명시적 룬지-쿠타 방법 명시적 룽지-쿠타 방법 계열은 위에서 언급한 RK4 방법의 일반화입니다. 에 의해 주어집니다.
y n + 1 = y n + h ∑ i = 1 s b i k i , {\displaystyle y_{n+1}=y_{n}+h\sum _{i=1}^{s}b_{i}k_{i},} 어디에[6]
k 1 = f ( t n , y n ) , k 2 = f ( t n + c 2 h , y n + ( a 21 k 1 ) h ) , k 3 = f ( t n + c 3 h , y n + ( a 31 k 1 + a 32 k 2 ) h ) , ⋮ k s = f ( t n + c s h , y n + ( a s 1 k 1 + a s 2 k 2 + ⋯ + a s , s − 1 k s − 1 ) h ) . {\displaystyle {\begin{aligned}k_{1}&=f(t_{n},y_{n}),\\k_{2}&=f(t_{n}+c_{2}h,y_{n}+(a_{21}k_{1})h),\\k_{3}&=f(t_{n}+c_{3}h,y_{n}+(a_{31}k_{1}+a_{32}k_{2})h),\\&\ \ \vdots \\k_{s}&=f(t_{n}+c_{s}h,y_{n}+(a_{s1}k_{1}+a_{s2}k_{2}+\cdots +a_{s,s-1}k_{s-1})h). \end{align}}} (참고: 위 의 식들은 일부 텍스트 에서는 서로 다르지만 동일한 정의를 가질 수 있습니다.) [4] 특정 방법을 지정하려면 정수 s(단수)와 계수 a(1 ≤ j < i ≤ s 인 경우), b(i = 1, 2, ..., s 인 경우) 및 c(i = 2, 3, ..., s인 경우)를 제공해야 합니다. 행렬i [aij ]를 룽지-쿠타 행렬 이라고 하고, b 와i c 를 가중치 와 노드라고 합니다.[7] 이러한 데이터는 일반적으로 Butcher tableau (존 C 의 이름을 따서 Butcher tableau)로 알려진 기억 장치에 배열됩니다. 정육점 ):
0 {\displaystyle 0} c 2 {\displaystyle c_{2}} a 21 {\displaystyle a_{21}} c 3 {\displaystyle c_{3}} a 31 {\displaystyle a_{31}} a 32 {\displaystyle a_{32}} ⋮ {\displaystyle \vdots} ⋮ {\displaystyle \vdots} ⋱ {\displaystyle \dots} c s {\displaystyle c_{s}} a s 1 {\displaystyle a_{s1}} a s 2 {\displaystyle a_{s2}} ⋯ {\displaystyle \cdots} a s , s − 1 {\displaystyle a_{s,s-1}} b 1 {\displaystyle b_{1}} b 2 {\displaystyle b_{2}} ⋯ {\displaystyle \cdots} b s − 1 {\displaystyle b_{s-1}} b s {\displaystyle b_{s}}
테일러 급수 확장은 룽지-쿠타 방법이 다음과 같은 경우에만 일치함을 보여줍니다.
∑ i = 1 s b i = 1. {\displaystyle \sum_{i=1}^{s}b_{i}=1.} 또한 메소드에 특정 순서 p 가 필요한 경우 로컬 절단 오류가 O(hp +1 )임을 의미하는 요구 사항이 수반됩니다. 이들은 절단 오류 자체의 정의에서 파생될 수 있습니다. 예를 들어, 2단계 방법은 b + b = 1, bc = 1/2, ba = 1/2인 경우 차수가 2입니다. 계수를 결정하는 일반적인 조건은 다음과 같습니다.
∑ j = 1 i − 1 a i j = c i 위해서 i = 2 , … , s . {\displaystyle \sum _{j=1}^{i-1}a_{ij}=c_{i}{\text{ for }}i=2,\ldots ,s.} 그러나 이 조건만으로는 충분하지 않으며 일관성을 위해 필요하지도 않습니다.
In general, if an explicit s {\displaystyle s} -stage Runge–Kutta method has order p {\displaystyle p} , then it can be proven that the number of stages must satisfy s ≥ p {\displaystyle s\geq p} , and if p ≥ 5 {\displaystyle p\geq 5} , then s ≥ p + 1 {\displaystyle s\geq p+1} .[11] 그러나 이러한 경계가 모든 경우에 예리 한지 여부는 알 수 없습니다. 어떤 경우에는 한계를 달성할 수 없다는 것이 증명됩니다. 예를 들어, Butcher는 p > 6 {\displaystyle p> 6} 에 대해 s = p + 1 {\displaystyle s = p+1} 단계가 있는 명시적인 방법이 없음을 증명했습니다. Butcher는 또한 p > 7 {\displaystyle p> 7} 에 대해 p + 2 {\displaystyle p+2} 단계를 갖는 명시적인 Runge-Kutta 메서드가 없음을 증명했습니다.[13] 그러나 일반적으로 명시적인 Runge-Kutta 메서드가 순서 가 p {\displaystyle p} 인 경우 정확한 최소 단계 수 {\displaystyle s} 가 얼마인지는 여전히 미해결 문제입니다. 알려진 몇 가지 값은 다음과 같습니다.[14]
p 1 2 3 4 5 6 7 8 분 s 1 2 3 4 6 7 9 11 {\displaystyle {\begin{array}{c cccccccc}p&1&2&3&4&5&6&7&8\\\hline \min s&1&2&3&4&6&7&9&11\end{array}}} 그러면 위의 증명 가능 경계는 이러한 주문에 대해 이미 알고 있는 방법보다 더 적은 단계를 필요로 하는 주문 p = 1 , 2, …, 6 {\displaystyle p = 1, 2,\ldots, 6}의 방법을 찾을 수 없음을 의미합니다. Butcher의 작업은 7차와 8차의 차수 방법이 각각 최소 9단계와 11단계라는 것을 증명하기도 합니다.[15] [16] 7단계의 순서 6의 명시적인 방법의 예는 에서 찾을 수 있습니다.[17] 9단계의[18] 순서 7의 명시적인 방법과 11단계의[19] 순서 8의 명시적인 방법도 알려져 있습니다. 요약은 심판을 참조하십시오.[20] [21]
예 RK4 방법은 이 프레임워크에 해당합니다. 그것의 테이블오는[22]
0 1/2 1/2 1/2 0 1/2 1 0 0 1 1/6 1/3 1/3 1/6
"Rungge-Kutta" 방법의 약간의 변형은 1901년의 Kutta에 의한 것이기도 하며, 3/8-rule이라고 불립니다.[23] 이 방법의 가장 큰 장점은 거의 모든 오류 계수가 일반적인 방법보다 작지만 시간 단계당 약간 더 많은 FLOP(플로팅 포인트 연산)가 필요하다는 것입니다. 그곳의 정육점 테이블은
0 1/3 1/3 2/3 -1/3 1 1 1 −1 1 1/8 3/8 3/8 1/8
그러나 가장 간단한 룽지-쿠타 방법은 (순방향) 오일러 방법 으로, 공식 y n + 1 = y n + h f (t n, y n) {\displaystyle y_{n+1} = y_{n}+hf(t_{n}, y_{n})}로 제공됩니다. 이것은 하나의 단계를 갖는 유일한 일관된 명시적 룽지-쿠타 방법입니다. 그에 해당하는 표는
2단계 2차 방법 두 단계가 있는 2차 방법의 예는 명시적 중간점 방법 에 의해 제공됩니다.
y n + 1 = y n + h f ( t n + 1 2 h , y n + 1 2 h f ( t n , y n ) ) . {\displaystyle y_{n+1}=y_{n}+hf\left(t_{n}+{\frac {1}{2}}h,y_{n}+{\frac {1}{2}}hf(t_{n},\ y_{n})\right).} 그에 해당하는 표는
중간점 방법은 두 단계가 있는 유일한 2차 룽지-쿠타 방법이 아닙니다; α로 매개변수화되고 공식으로[24] 주어진 그러한 방법의 계열이 있습니다.
y n + 1 = y n + h ( ( 1 − 1 2 α ) f ( t n , y n ) + 1 2 α f ( t n + α h , y n + α h f ( t n , y n ) ) ) . {\displaystyle y_{n+1}=y_{n}+h{\bigl (}(1-{\tfrac {1}{2\alpha }})f(t_{n},y_{n})+{\tfrac {1}{2\alpha }}f(t_{n}+\alpha h,y_{n}+\alpha hf(t_{n},y_{n})){\bigr )}.} 그곳의 정육점 테이블은
0 α {\displaystyle \alpha} α {\displaystyle \alpha} ( 1 − 1 2 α ) {\displaystyle (1-{\tfrac {1}{2\alpha}})} 1 2 α {\displaystyle {\tfrac {1}{2\alpha}}
이 패밀리에서 α = 12 {\ displaystyle \alpha = {\tfrac {1}{2}} 는 중간점 방법을 제공하고, α = 1 {\displaystyle \alpha = 1}은 Heun의 방법이며, α = 23 {\displaystyle \alpha = {\tfrac {2}{3}}은 Ralston의 방법입니다.
사용하다 예를 들어, α = 2/3인 2단계 2차 룽지-쿠타 방법(Ralston 방법 )을 생각해 보십시오. 그것은 탁상공이 준 것입니다.
그에 상응하는 방정식으로
k 1 = f ( t n , y n ) , k 2 = f ( t n + 2 3 h , y n + 2 3 h k 1 ) , y n + 1 = y n + h ( 1 4 k 1 + 3 4 k 2 ) . {\displaystyle {\begin{aligned}k_{1}&=f(t_{n},\ y_{n}),\\k_{2}&=f(t_{n}+{\tfrac {2}{3}}h,\ y_{n}+{\tfrac {2}{3}}hk_{1}),\\y_{n+1}&=y_{n}+h\left({\tfrac {1}{4}}k_{1}+{\tfrac {3}{4}}k_{2}\right). \end{align}}} 이 방법은 초기값 문제를 해결하는 데 사용됩니다.
d y d t = 태닝하다 ( y ) + 1 , y 0 = 1 , t ∈ [ 1 , 1.1 ] {\displaystyle {\frac {dy}{dt}}=\tan(y)+1,\quad y_{0}=1,\ t\in [1,1.1]} 스텝 크기 h = 0.025이므로 메소드는 4단계를 수행해야 합니다.
방법은 다음과 같이 진행됩니다.
t 0 = 1 : {\displaystyle t_{0}=1\colon } y 0 = 1 {\displaystyle y_{0}=1} t 1 = 1.025 : {\displaystyle t_{1}=1.025\colon } y 0 = 1 {\displaystyle y_{0}=1} k 1 = 2.557407725 {\displaystyle k_{1}=2.557407725} k 2 = f ( t 0 + 2 3 h , y 0 + 2 3 h k 1 ) = 2.7138981400 {\displaystyle k_{2}=f(t_{0}+{\tfrac {2}{3}}h,\ y_{0}+{\tfrac {2}{3}}hk_{1})=2.7138981400} y 1 = y 0 + h ( 1 4 k 1 + 3 4 k 2 ) = 1.066869388 _ {\displaystyle y_{1}=y_{0}+h({\tfrac {1}{4}}k_{1}+{\tfrac {3}{4}}k_{2})={\underline {1.066869388}}} t 2 = 1.05 : {\displaystyle t_{2}=1.05\colon } y 1 = 1.066869388 {\displaystyle y_{1}=1.066869388} k 1 = 2.813524695 {\displaystyle k_{1}=2.813524695} k 2 = f ( t 1 + 2 3 h , y 1 + 2 3 h k 1 ) {\displaystyle k_{2}=f(t_{1}+{\tfrac {2}{3}}h,\ y_{1}+{\tfrac {2}{3}}hk_{1})} y 2 = y 1 + h ( 1 4 k 1 + 3 4 k 2 ) = 1.141332181 _ {\displaystyle y_{2}=y_{1}+h({\tfrac {1}{4}}k_{1}+{\tfrac {3}{4}}k_{2})={\underline {1.141332181}}} t 3 = 1.075 : {\displaystyle t_{3}=1.075\colon } y 2 = 1.141332181 {\displaystyle y_{2}=1.141332181} k 1 = 3.183536647 {\displaystyle k_{1}=3.183536647} k 2 = f ( t 2 + 2 3 h , y 2 + 2 3 h k 1 ) {\displaystyle k_{2}=f(t_{2}+{\tfrac {2}{3}}h,\ y_{2}+{\tfrac {2}{3}}hk_{1})} y 3 = y 2 + h ( 1 4 k 1 + 3 4 k 2 ) = 1.227417567 _ {\displaystyle y_{3}=y_{2}+h({\tfrac {1}{4}}k_{1}+{\tfrac {3}{4}}k_{2})={\underline {1.227417567}}} t 4 = 1.1 : {\displaystyle t_{4}=1.1\colon } y 3 = 1.227417567 {\displaystyle y_{3}=1.227417567} k 1 = 3.796866512 {\displaystyle k_{1}=3.796866512} k 2 = f ( t 3 + 2 3 h , y 3 + 2 3 h k 1 ) {\displaystyle k_{2}=f(t_{3}+{\tfrac {2}{3}}h,\ y_{3}+{\tfrac {2}{3}}hk_{1})} y 4 = y 3 + h ( 1 4 k 1 + 3 4 k 2 ) = 1.335079087 _ . {\displaystyle y_{4}=y_{3}+h({\tfrac {1}{4}}k_{1}+{\tfrac {3}{4}}k_{2})={\underline {1.335079087}}.}
수치 솔루션은 밑줄 친 값에 해당합니다.
적응적 룬지-쿠타 방법 적응 방법은 단일 Rungge-Kutta 단계의 로컬 절단 오류 추정치를 생성하도록 설계되었습니다. 순서 가 p {\displaystyle p} 인 방법과 순서 가 p - 1 {\displaystyle p-1} 인 방법의 두 가지 방법으로 수행됩니다. 이 방법은 서로 결합되어 있습니다. 즉, 공통적인 중간 단계를 갖습니다. 덕분에 오차를 추정하는 것은 고차 방법을 사용하는 단계에 비해 계산 비용이 거의 또는 무시할 수 있습니다.
통합하는 동안 스텝 크기는 추정된 오차가 사용자 정의 임계값 미만으로 유지되도록 조정됩니다. 오차가 너무 높으면 스텝 크기가 더 작은 스텝을 반복하고, 오차가 훨씬 작으면 스텝 크기를 늘려 시간을 절약할 수 있습니다. 이를 통해 (거의) 최적의 스텝 크기를 얻을 수 있어 계산 시간을 절약할 수 있습니다. 또한 사용자는 적절한 스텝 크기를 찾는 데 시간을 할애할 필요가 없습니다.
하위 단계는 다음과 같습니다.
y n + 1 ∗ = y n + h ∑ i = 1 s b i ∗ k i , {\displaystyle y_{n+1}^{* }=y_{n}+h\sum _{i=1}^{s}b_{i}^{*}k_{i},} 여기 서 ki {\ displaystyle k_{i}} 는 고차법과 같습니다. 그럼 오차는.
e n + 1 = y n + 1 − y n + 1 ∗ = h ∑ i = 1 s ( b i − b i ∗ ) k i , {\displaystyle e_{n+1}=y_{n+1}-y_{n+1}^{* }=h\sum _{i=1}^{s}(b_{i}-b_{i}^{*})k_{i},} O( h p ) {\displaystyle O(h^{p}}} 입니다. 이러한 종류의 방법에 대한 Butcher tableau는 확장되어 bi ∗ {\displaystyle b_{ i}^{*}의 값을 제공합니다.
0 c 2 {\displaystyle c_{2}} a 21 {\displaystyle a_{21}} c 3 {\displaystyle c_{3}} a 31 {\displaystyle a_{31}} a 32 {\displaystyle a_{32}} ⋮ {\displaystyle \vdots} ⋮ {\displaystyle \vdots} ⋱ {\displaystyle \dots} c s {\displaystyle c_{s}} a s 1 {\displaystyle a_{s1}} a s 2 {\displaystyle a_{s2}} ⋯ {\displaystyle \cdots} a s , s − 1 {\displaystyle a_{s,s-1}} b 1 {\displaystyle b_{1}} b 2 {\displaystyle b_{2}} ⋯ {\displaystyle \cdots} b s − 1 {\displaystyle b_{s-1}} b s {\displaystyle b_{s}} b 1 ∗ {\displaystyle b_{1}^{*}} b 2 ∗ {\displaystyle b_{2}^{*}} ⋯ {\displaystyle \cdots} b s − 1 ∗ {\displaystyle b_{s-1}^{*}} b s ∗ {\displaystyle b_{s}^{*}}
룬지-쿠타-펠베르크 방법 은 순서 5와 4의 두 가지 방법이 있습니다. 확장된 Butcher tableau는 다음과 같습니다.
0 1/4 1/4 3/8 3/32 9/32 12/13 1932/2197 −7200/2197 7296/2197 1 439/216 −8 3680/513 -845/4104 1/2 −8/27 2 −3544/2565 1859/4104 −11/40 16/135 0 6656/12825 28561/56430 −9/50 2/55 25/216 0 1408/2565 2197/4104 −1/5 0
그러나 가장 간단한 적응적 룽지-쿠타 방법은 훈의 방법 인 차수 2와 차수 1인 오일러 방법 을 결합하는 것입니다. 확장된 Butcher tableau는 다음과 같습니다.
다른 적응형 룽지-쿠타 방법은 보가키-샴파인 방법 (3차와 2차), 캐시-카르프 방법 및 도르망-프린스 방법 (5차와 4차)입니다.
불연속 룽지-쿠타 방법 모든 ci , i = 1 , 2, …, s {\displaystyle c_{i},\,i = 1,2,\ldots,s}가 서로 다른 경우 룽지-쿠타 방법은 혼동 되지 않는다고 합니다.
룽게-쿠타-니스트룀 방법 룽지-쿠타-니스트룀 방법은 2차 미분 방정식에 최적화된 특수 룽지-쿠타 방법입니다.
암묵적 룬지-쿠타 방법 지금까지 언급된 모든 룬지-쿠타 방법은 명시적 인 방법입니다. 명시적 룽지-쿠타 방법은 절대 안정성 영역이 작기 때문에 일반적으로 뻣뻣한 방정식 의 해결에 적합하지 않습니다. 특히 경계가 있습니다.[28] 이 문제는 편미분 방정식 의 해법에서 특히 중요합니다.
명시적인 룽지-쿠타 방법의 불안정성은 암시적 방법의 개발에 동기를 부여합니다. 암묵적인 룽지-쿠타 방법은 다음과 같은 형태를 갖습니다.
y n + 1 = y n + h ∑ i = 1 s b i k i , {\displaystyle y_{n+1}=y_{n}+h\sum _{i=1}^{s}b_{i}k_{i},} 어디에
k i = f ( t n + c i h , y n + h ∑ j = 1 s a i j k j ) , i = 1 , … , s . {\displaystyle k_{i}=f\left(t_{n}+c_{i}h,\ y_{n}+h\sum _{j=1}^{s}a_{ij}k_{j}\right),\quad i=1,\ldots ,s.} [29] 명시적 방법과의 차이점은 명시적 방법에서 j 를 초과하는 합 은 i - 1까지만 올라간다는 것입니다. 이것은 Butcher tableau에도 나타나는데, 명시적인 방법의 계수 행렬 aij {\ displaystyle a_{ij}} 는 삼각형 아래에 있습니다. 암묵적 방법에서 j 위 의 합은 s 로 올라가고 계수 행렬은 삼각형이 아니므로 형식의[22] Butcher tableau를 산출합니다.
c 1 a 11 a 12 … a 1 s c 2 a 21 a 22 … a 2 s ⋮ ⋮ ⋮ ⋱ ⋮ c s a s 1 a s 2 … a s s b 1 b 2 … b s b 1 ∗ b 2 ∗ … b s ∗ = c A b T {\displaystyle {\begin{array}{c cccc}c_{1}&a_{11}&a_{12}&\dots &a_{1s}\\c_{2}&a_{21}&a_{22}&\dots &a_{2s}\\\vdots &\vdots &\vdots &\ddots &\vdots \\c_{s}&a_{s1}&a_{s2}&\dots &a_{ss}\\\hline &b_{1}&b_{2}&\dots &b_{s}\\&b_{1}^{*}&b_{2}^{*}&\dots &b_{s}^{*}\\\end{array}}={\begin{array}{c c}\mathbf {c} &A\\\hline &\mathbf {b^{ T}\\\\end{array}}} b ∗ {\displaystyle b^{*} 행에 대한 설명은 위의 Adaptive Runge-Kutta 메서드 를 참조하십시오.
이 차이의 결과는 모든 단계에서 대수 방정식 체계가 해결되어야 한다는 것입니다. 이는 계산 비용을 상당히 증가시킵니다. 만약 m개의 성분이 있는 미분방정식을 푸는 데 s단이 있는 방법을 사용한다면, 대수방정식의 체계 는 m개의 성분을 갖습니다. 이는 암시적 선형 다단계 방법 (ODE를 위한 다른 큰 방법군)과 대조될 수 있습니다. 암시적 s-단계 선형 다단계 방법 은 m개의 구성 요소만 있는 대수 방정식 시스템을 해결해야 하므로 시스템의 크기가 단계 수가 증가함에 따라 증가하지 않습니다.[30]
예 암묵적인 룽지-쿠타 방법의 가장 간단한 예는 역방향 오일러 방법 입니다.
y n + 1 = y n + h f ( t n + h , y n + 1 ) . {\displaystyle y_{n+1}=y_{n}+hf(t_{n}+h,\ y_{n+1}).\,} 이를 위한 Butcher tableau는 간단히 다음과 같습니다.
1 1 1 {\displaystyle {\begin{array}{c}1&1\\hline &1\\\end{array}}} 이 Butcher tableau는 다음 공식에 해당합니다.
k 1 = f ( t n + h , y n + h k 1 ) 그리고. y n + 1 = y n + h k 1 , {\displaystyle k_{1}=f(t_{n}+h,\ y_{n}+hk_{1})\quad {\text{and}}\quad y_{n+1}=y_{n}+hk_{1},} 위에 나열된 역방향 오일러 방법에 대한 공식을 얻기 위해 재배열할 수 있습니다.
암묵적인 룽지-쿠타 방법의 또 다른 예는 사다리꼴 규칙 입니다. Butcher tableau는 다음과 같습니다.
0 0 0 1 1 2 1 2 1 2 1 2 1 0 {\displaystyle {\begin{array}{c cc}0&0&0\\1&{\frac {1}{2}}&{\frac {1}{2}}\\\hline &{\frac {1}{2}}&{\frac {1}{2}}\\&1&0\\\end{array}}} 사다리꼴 규칙은 (해당 기사에서 논의된 바와 같이) 위치 결정 방법 입니다. 모든 할당 방법은 암묵적 룬지-쿠타 방법이지만 모든 암묵적 룬지-쿠타 방법이 할당 방법인 것은 아닙니다.[31]
Gauss-Legendre 방법 은 Gauss 직교 를 기반으로 하는 코로케이션 방법의 계열을 형성합니다. 단계 가 있는 Gauss-Legendre 방법은 순서 2를 갖습니다(따라서 임의로 높은 순서를 가진 방법을 구성할 수 있습니다).[32] 두 단계(따라서 4차)가 있는 방법은 Butcher tableau를 갖습니다.
1 2 − 1 6 3 1 4 1 4 − 1 6 3 1 2 + 1 6 3 1 4 + 1 6 3 1 4 1 2 1 2 1 2 + 1 2 3 1 2 − 1 2 3 {\displaystyle {\begin{array}{c cc}{\frac {1}{2}}-{\frac {1}{6}}{\sqrt {3}}&{\frac {1}{4}}&{\frac {1}{4}}-{\frac {1}{6}}{\sqrt {3}}\\{\frac {1}{2}}+{\frac {1}{6}}{\sqrt {3}}&{\frac {1}{4}}+{\frac {1}{6}}{\sqrt {3}}&{\frac {1}{4}}\\\hline &{\frac {1}{2}}&{\frac {1}{2}}\\&{\frac {1}{2}}+{\frac {1}{2}}{\sqrt {3}}&{\frac {1}{2}}-{\frac {1}{2}}{\sqrt {3}}\end{array}}} [30] 안정성. 명시적 방법에 비해 암시적 룽지-쿠타 방법의 장점은 특히 뻣뻣한 방정식 에 적용될 때 더 큰 안정성입니다. 선형 테스트 방정식 y = λ y {\displaystyle y' =\ lambda y}를 생각해 보십시오. 이 방정식에 적용된 룽지-쿠타 방법은 반복 y n + 1 = r (h λ) y {\displaystyle y_{n+1} = r(h\lambda)\,y_{n}로 감소하며, r은 다음과 같습니다.
r ( z ) = 1 + z b T ( I − z A ) − 1 e = 디트 ( I − z A + z e b T ) 디트 ( I − z A ) , {\displaystyle r(z)=1+zb^{T}(I-zA)^{-1}e={\frac {\det(I-zA+zeb^{ T})}{\det(I-zA)}}} [33] 여기 서 e는 하나의 벡터를 의미합니다. 함수 r 을 안정 함수 라고 합니다.[34] 방법에 단계 가 s개 있는 경우 r은 차수 다항식 2개의 몫이라는 공식을 통해 알 수 있습니다. 명시적 방법은 엄격하게 더 낮은 삼각 행렬 A 를 갖는데, 이는 det(I - zA ) = 1이고 안정 함수가 다항식임을 의미합니다.
z = h λ으로 r(z ) < 1이면 선형 시험 방정식의 수치 해는 0으로 감소합니다. 이러한 z 의 집합을 절대 안정 영역 이라고 합니다. 특히 이 방법 은 Re(z) < 0인 모든 z 가 절대 안정의 영역에 있으면 절대 안정적 이라고 합니다. 명시적 룽지-쿠타 방법의 안정 함수는 다항식이므로 명시적 룽지-쿠타 방법은 절대 A-안정이 될 수 없습니다.[35]
메서드의 순서 가 p인 경우 안정 함수는 r( z ) = ez + O(z p + 1 ) {\display r(z) = {\textrm {e}}^{z}+O(z^{p+1})}를 z → 0 {\display z\to 0}으로 만족합니다. 따라서 지수 함수를 가장 잘 근사하는 주어진 차수의 다항식의 몫을 연구하는 것이 흥미롭습니다. 이들을 파데 근사치 라고 합니다. 분자가 m 이고 분모가 n 인 파데 근사치는 m ≤ n ≤ m + 2인 경우에만 A-안정적입니다.[36]
단계 가 있는 Gauss-Legendre 방법은 차수가 2이므로 안정 함수는 m = n = s 인 Padé 근사치입니다. 다음으로 방법은 A-stable입니다.[37] 이것은 A-stable 룽지-쿠타가 임의로 높은 차수를 가질 수 있음을 보여줍니다. 대조적으로, A-stable 선형 다단계 방법 의 순서는 2를 초과할 수 없습니다.[38]
B-안정성 미분 방정식 해법에 대한 A 안정성 개념은 선형 자율 방정식 y' = λy {\displaystyle y'=\ lambda y}와 관련이 있습니다. Dahlquist는 단조성 조건을 만족하는 비선형 시스템에 적용할 때 수치 체계의 안정성 조사를 제안했습니다. 해당 개념은 다단계 방법(및 관련 외다리 방법)의 경우 G-안정성 , Runge-Kutta 방법의 경우 B-안정성 (Butcher, 1975)으로 정의되었습니다. 비선형 시스템 y' = f (y ) {\ display y'=f(y )}에 적용된 룽지-쿠타 방법은 ⟨ f(y) - f(z), y - z ⟩ ≤ 0 {\displaystyle \f(y) - f(z),\ y - z\rangle \leq 0}을 검증하며, 이를 B-stable이라고 합니다. 이 조건이 ‖ y + 1 - z n + 1 ‖ ≤ ‖ y - z n ‖ {\displaystyle \ y_{n+1}-z_{n+1}\ \leq \ y_{n}-z_{n}\ }개의 수치 솔루션을 의미합니다.
B {\displaystyle B }, M {\displaystyle M} 및 Q {\displaystyle Q} 를 다음과 같이 정의된 3s × {\displaystyle s\times} 행렬이라고 가정합니다.
B = 다이아그 ( b 1 , b 2 , … , b s ) , M = B A + A T B − b b T , Q = B A − 1 + A − T B − A − T b b T A − 1 . {\displaystyle B=\operatorname {diag} (b_{1},b_{2},\ldots ,b_{s}),\,M=BA+A^{T}B-bb^{T},\,Q=BA^{-1}+A^{-T}B-A^{-T}bb^{ T}A^{-1}} 행렬 B {\displaystyle B} 와 M {\displaystyle M} 가 모두 음이 아닌 정이면 룽지-쿠타 방법은 대수적으로 안정 하다고[39] 합니다. B-안정성 에[40] 대한 충분한 조건 은 B {\displaystyle B} 와 Q {\displaystyle Q} 가 음이 아닌 것입니다.
룽지-쿠타 4차법의 유도 일반적으로 {\displaystyles} 순서 의 룽지-쿠타 방법은 다음과 같이 쓸 수 있습니다 .
y t + h = y t + h ⋅ ∑ i = 1 s a i k i + O ( h s + 1 ) , {\displaystyle y_{t+h}=y_{t}+h\cdot \sum _{i=1}^{s}a_{i}k_{i}+{\mathcal {O}}(h^{s+1}),} 위치:
k i = h ⋅ ∑ j = 1 s β i j f ( k j , t n + α i h ) {\displaystyle k_{i}=h\cdot \sum _{j=1}^{s}\beta _{ij}f\left(k_{j},\ t_{n}+\alpha _{i}h\right)} 는 i {\displaystyle i} 차에서 yt {\ displaystyle y_{t} 의 도함수를 평가하기 위해 얻은 증분입니다.
저희는 위에서 설명한 대로 모든 간격(t, t + h) {\displaystyle (t,\ t + h)}의 중간점과 끝점인 s = 4 {\displaystyle s=4}를 사용하여 일반 공식을 사용하여 룽지-쿠타 4차 방법을 유도합니다. 따라서 다음을 선택합니다.
α i β i j α 1 = 0 β 21 = 1 2 α 2 = 1 2 β 32 = 1 2 α 3 = 1 2 β 43 = 1 α 4 = 1 {\displaystyle {\begin{aligned}&\alpha_{i}&\beta _{ij}\\alpha_{1}&=0\beta _{21}&={\frac {1}{2}}\\alpha_{2}&={\frac {1}{2}}&\beta _{32}&={\frac {1}{2}}\\alpha_{3}&={\frac {1}{2}&\beta _{43}&\\alpha_{4}&=1&\\\end{aligned}} β ij = 0 {\displaystyle \beta _{ij} = 0} 이 아닌 경우. 먼저 다음 양을 정의합니다.
y t + h 1 = y t + h f ( y t , t ) y t + h 2 = y t + h f ( y t + h / 2 1 , t + h 2 ) y t + h 3 = y t + h f ( y t + h / 2 2 , t + h 2 ) {\displaystyle {\begin{aligned}y_{t+h}^{1 }&=y_{t}+hf\left(y_{t},\ t\right) \\y_{t+h}^{2 }&=y_{t}+hf\left(y_{t+h/2}^{1},\ t+{\frac {h}{2}}\right) \\y_{t+h}^{3 }&=y_{t}+hf\left(y_{t+h/2}^{2},\ t+{\frac {h}{2}}\right)\end{aligned}}} where y t + h / 2 1 = y t + y t + h 1 2 {\displaystyle y_{t+h/2}^{1}={\dfrac {y_{t}+y_{t+h}^{1}}{2}}} and y t + h / 2 2 = y t + y t + h 2 2 {\displaystyle y_{t+h/2}^{2}={\dfrac {y_{t}+y_{t+h}^{2}}{2}}} . If we define:
k 1 = f ( y t , t ) k 2 = f ( y t + h / 2 1 , t + h 2 ) = f ( y t + h 2 k 1 , t + h 2 ) k 3 = f ( y t + h / 2 2 , t + h 2 ) = f ( y t + h 2 k 2 , t + h 2 ) k 4 = f ( y t + h 3 , t + h ) = f ( y t + h k 3 , t + h ) {\displaystyle {\begin{aligned}k_{1}&=f(y_{t},\ t)\\k_{2}&=f\left(y_{t+h/2}^{1},\ t+{\frac {h}{2}}\right)=f\left(y_{t}+{\frac {h}{2}}k_{1},\ t+{\frac {h}{2}}\right) \\k_{3}&=f\left(y_{t+h/2}^{2},\ t+{\frac {h}{2}}\right)=f\left(y_{t}+{\frac {h}{2}}k_{2},\ t+{\frac {h}{2}}\right) \\k_{4}&=f\left(y_{t+h}^{3},\ t+h\right)=f\left(y_{t}+hk_{3},\ t+h\right)\end{aligned}}} 그리고 이전 관계에 대해 다음과 같은 등식 이 O( h 2) {\displaystyle {\mathcal {O}}(h^{2})} 까지 유지된다는 것을 보여줄 수 있습니다.
k 2 = f ( y t + h / 2 1 , t + h 2 ) = f ( y t + h 2 k 1 , t + h 2 ) = f ( y t , t ) + h 2 d d t f ( y t , t ) k 3 = f ( y t + h / 2 2 , t + h 2 ) = f ( y t + h 2 f ( y t + h 2 k 1 , t + h 2 ) , t + h 2 ) = f ( y t , t ) + h 2 d d t [ f ( y t , t ) + h 2 d d t f ( y t , t ) ] k 4 = f ( y t + h 3 , t + h ) = f ( y t + h f ( y t + h 2 k 2 , t + h 2 ) , t + h ) = f ( y t + h f ( y t + h 2 f ( y t + h 2 f ( y t , t ) , t + h 2 ) , t + h 2 ) , t + h ) = f ( y t , t ) + h d d t [ f ( y t , t ) + h 2 d d t [ f ( y t , t ) + h 2 d d t f ( y t , t ) ] ] {\displaystyle {\begin{aligned}k_{2}&=f\left(y_{t+h/2}^{1},\ t+{\frac {h}{2}}\right)=f\left(y_{t}+{\frac {h}{2}}k_{1},\ t+{\frac {h}{2}}\right)\ \&=f\left(y_{t},\ t\right)+{\frac {h}{2}}{\frac {d}{dt}}f\left(y_{t},\ t\right) \\k_{3}&=f\left(y_{t+h/2}^{2},\ t+{\frac {h}{2}}\right)=f\left(y_{t}+{\frac {h}{2}}f\left(y_{t}+{\frac {h}{2}}k_{1},\ t+{\frac {h}{2}}\right),\ t+{\frac {h}{2}}\right)\ \&=f\left(y_{t},\ t\right)+{\frac {h}{2}}{\frac {d}{dt}}\left[f\left(y_{t},\ t\right)+{\frac {h}{2}}{\frac {d}{dt}}f\left(y_{t},\ t\right)\right] \\k_{4}&=f\left(y_{t+h}^{3},\ t+h\right)=f\left(y_{t}+hf\left(y_{t}+{\frac {h}{2}}k_{2},\ t+{\frac {h}{2}}\right),\ t+h\right)\ \&=f\left(y_{t}+hf\left(y_{t}+{\frac {h}{2}}f\left(y_{t}+{\frac {h}{2}}f\left(y_{t},\ t\right),\ t+{\frac {h}{2}}\right),\ t+{\frac {h}{2}}\right),\ t+h\right)\ \&=f\left(y_{t},\ t\right)+h{\frac {d}{dt}}\left[f\left(y_{t},\ t\right)+{\frac {h}{2}}{\frac {d}{dt}}\left[f\left(y_{t},\ t\right)+{\frac {h}{2}}{\frac {d}{dt}}f\left(y_{t},\ t\right)\right]\right]\end{aligned}}} 위치: d d t f ( y t , t ) = ∂ ∂ y f ( y t , t ) y ˙ t + ∂ ∂ t f ( y t , t ) = f y ( y t , t ) y ˙ t + f t ( y t , t ) := y ¨ t {\displaystyle {\frac {d}{dt}}f(y_{t},\ t)={\frac {\partial }{\partial y}}f(y_{t},\ t){\dot {y}}_{t}+{\frac {\partial }{\partial t}}f(y_{t},\ t)=f_{y}(y_{t},\ t){\dot {y}}_{t}+f_{t}(y_{t},\ t):={\ddot {y}}_{t}} 는 시간에 대한 f {\displaystyle f} 의 총 도함수입니다.
방금 도출한 것을 사용하여 일반적인 공식을 표현하면 다음을 얻을 수 있습니다.
y t + h = y t + h { a ⋅ f ( y t , t ) + b ⋅ [ f ( y t , t ) + h 2 d d t f ( y t , t ) ] + + c ⋅ [ f ( y t , t ) + h 2 d d t [ f ( y t , t ) + h 2 d d t f ( y t , t ) ] ] + + d ⋅ [ f ( y t , t ) + h d d t [ f ( y t , t ) + h 2 d d t [ f ( y t , t ) + h 2 d d t f ( y t , t ) ] ] ] } + O ( h 5 ) = y t + a ⋅ h f t + b ⋅ h f t + b ⋅ h 2 2 d f t d t + c ⋅ h f t + c ⋅ h 2 2 d f t d t + + c ⋅ h 3 4 d 2 f t d t 2 + d ⋅ h f t + d ⋅ h 2 d f t d t + d ⋅ h 3 2 d 2 f t d t 2 + d ⋅ h 4 4 d 3 f t d t 3 + O ( h 5 ) {\displaystyle {\begin{aligned}y_{t+h}={}&y_{t}+h\left\lbrace a\cdot f(y_{t},\ t)+b\cdot \left[f(y_{t},\ t)+{\frac {h}{2}}{\frac {d}{dt}}f(y_{t},\ t)\right]\right. +\\&{}+c\cdot \left[f(y_{t},\ t)+{\frac {h}{2}}{\frac {d}{dt}}\left[f\left(y_{t},\ t\right)+{\frac {h}{2}}{\frac {d}{dt}}f(y_{t},\ t)\right]\right]+ \\&{}+d\cdot \left[f(y_{t},\ t)+h{\frac {d}{dt}}\left[f(y_{t},\ t)+{\frac {h}{2}}{\frac {d}{dt}}\left[f(y_{t},\ t)+\left. {\frac {h}{2}}{\frac {d}{dt}}f(y_{t}, \ t)\right]\right]\right]\right\rbrace +{\mathcal {O}}(h^{5})\\={}&y_{t}+a\cdot hf_{t}+b\cdot hf_{t}+b\cdot {\frac {h^{2}}{2}}{\frac {df_{t}}{dt}}+c\cdot hf_{t}+c\cdot {\frac {h^{2}}{2}}{\frac {df_{t}}{dt}}+\\&{}+c\cdot {\frac {h^{3}}{4}}{\frac {d^{2}f_{t}}{dt^{2}}}+d\cdot hf_{t}+d\cdot h^{2}{\frac {df_{t}}{dt}}+d\cdot {\frac {h^{3}}{2}}{\frac {d^{2}f_{t}}{dt^{2}}}+d\cdot {\frac {h^{4}}{4}}{\frac {d^{3}f_{t}}{dt^{3}}}+{\mathcal {O}}(h^{5})\end{aligned}}}
그리고 이를 t {\displaystyle t} 주변의 yt + h {\ displaystyle y_{t+h} 의 Taylor 시리즈 와 비교합니다.
y t + h = y t + h y ˙ t + h 2 2 y ¨ t + h 3 6 y t ( 3 ) + h 4 24 y t ( 4 ) + O ( h 5 ) = = y t + h f ( y t , t ) + h 2 2 d d t f ( y t , t ) + h 3 6 d 2 d t 2 f ( y t , t ) + h 4 24 d 3 d t 3 f ( y t , t ) {\displaystyle {\begin{aligned}y_{t+h}&=y_{t}+h{\dot {y}}_{t}+{\frac {h^{2}}{2}}{\ddot {y}}_{t}+{\frac {h^{3}}{6}}y_{t}^{(3)}+{\frac {h^{4}}{24}}y_{t}^{(4)}+{\mathcal {O}}(h^{5})=\\&=y_{t}+hf(y_{t},\ t)+{\frac {h^{2}}{2}}{\frac {d}{dt}}f(y_{t},\ t)+{\frac {h^{3}}{6}}{\frac {d^{2}}{dt^{2}}}f(y_{t}, \ t)+{\frac {h^{4}}{24}}{\frac {d^{3}}{dt^{3}}}f(y_{t},\ t)\end{aligned}}}
계수에 대한 제약 체계를 구합니다.
{ a + b + c + d = 1 1 2 b + 1 2 c + d = 1 2 1 4 c + 1 2 d = 1 6 1 4 d = 1 24 {\displaystyle {\begin{cases}&a+b+c+d=1\\[6pt]&{\frac {1}{2}}b+{\frac {1}{2}}c+d={\frac {1}{2}}\\[6pt]&{\frac {1}{4}}c+{\frac {1}{2}}d={\frac {1}{6}}\\[6pt]&{\frac {1}{4}}d={\frac {1}{24}}\end{cases}}} 위에서 언급한 대로 풀이하면 a = 16 , b = 13, c = 13, d = 16 {\display a = {\frac {1}{6}, b = {\frac {1}{3}, c = {\frac {1}{3}, d = {\frac {1}{6}}이 됩니다.
참고 항목
메모들 ^ "Runge-Kutta method" . Dictionary.com . Retrieved 4 April 2021 . ^ 데브리스, 폴 L; 하스분, 하비에르 E. 컴퓨터 물리학의 첫 번째 과정입니다. 세컨드 에디션. Jones and Bartlett Publishers: 2011. p. 215. ^ Press et al. 2007 , p. 908; Süli & Mayers 2003 , p. 328 ^ a b Atkinson(1989 , p. 423), Hairer, Nørset & Wanner(1993 , p. 134), Kaw & Kalu(2008 , § 8.4) 및 Stoer & Bulirsch (2002, p. 476)는 단계의 정의에서 요인 h를 제외합니다. Ascher & Petzold(1998 , 페이지 81), Butcher(2008 , 페이지 93) 및 Iserles(1996 , 페이지 38)는 이들 값을 단계로 사용합니다. ^ a b Sulli & Mayers 2003 , 페이지 328 ^ Press et al. 2007 , 페이지 907 ^ Iserles 1996 , p. 38 ^ Iserles 1996 , p. 39 ^ Iserles 1996 , p. 39 ^ 반대 예로 b 1 = b 2 = 1 / 2 {\displaystyle b_{1 } = b_{2 } = 1/2 } 및 c 1 {\displaystyle c_{1}} 과 랜덤하게 선택된 21 {\displaystyle a_{21} 인 명시적인 2단계 룽게-쿠타 방식을 고려해 보십시오. 이 방법은 일관적이고 (일반적으로) 1차 수렴입니다. 반면 , b 1 = 1 / 2 {\displaystyle b_{1 }=1/2}인 1단계 방법은 i = 2, …, s에 대해 ∑ j = 1 i - 1 a i j = ci를 약간 유지하지만 일관되지 않고 수렴에 실패합니다. {\displaystyle \sum _{j=1}^{i-1}a_{ij}=c_{i}{\text{for }i=2,\ldots,s.}. ^ 정육점 2008 , p. 187 ^ 정육점 1965 , 페이지 408 ^ 1985년 정육점 ^ Butcher 2008 , pp. 187–196 ^ 정육점 1965 , 페이지 408 ^ 1985년 정육점 ^ 정육점 1964 ^ 정육점 1965 , 페이지 408 ^ 커티스 1970 , 페이지 268 ^ Hairer, Nørsett & Wanner 1993 , 179쪽 ^ 정육점 1996 , 페이지 247 ^ a b Süli & Mayers 2003 , 페이지 352 ^ Hairer, Nørset & Wanner(1993 , 페이지 138)는 Kutta(1901 )를 참조한다. ^ Sulli & Mayers 2003 , 페이지 327 ^ Lambert 1991 , 278쪽 ^ Dormand, J. R.; Prince, P. J. (October 1978). "New Runge–Kutta Algorithms for Numerical Simulation in Dynamical Astronomy". Celestial Mechanics . 18 (3): 223–232. Bibcode :1978CeMec..18..223D . doi :10.1007/BF01230162 . S2CID 120974351 . ^ Fehlberg, E. (October 1974). Classical seventh-, sixth-, and fifth-order Runge–Kutta–Nyström formulas with stepsize control for general second-order differential equations (Report) (NASA TR R-432 ed.). Marshall Space Flight Center, AL: National Aeronautics and Space Administration. ^ Süli & Mayers 2003 , 페이지 349–351 ^ Iserles 1996 , p. 41; Süli & Mayers 2003 , p. 351–352 ^ a b Süli & Mayers 2003 , 페이지 353 ^ Iserles 1996 , pp. 43–44 ^ Iserles 1996 , p. 47 ^ Hairer & Wanner 1996 , 40–41쪽 ^ Hairer & Wanner 1996 , 40페이지 ^ a b Iserles 1996 , p. 60 ^ Iserles 1996 , pp. 62–63 ^ Iserles 1996 , 페이지 63 ^ 이 결과는 Dahlquist(1963 )에 기인합니다. ^ Lambert 1991 , p. 275 ^ 램버트 1991 , 페이지 274 ^ Lyu, Ling-Hsiao (August 2016). "Appendix C. Derivation of the Numerical Integration Formulae" (PDF) . Numerical Simulation of Space Plasmas (I) Lecture Notes . Institute of Space Science, National Central University. Retrieved 17 April 2022 . 참고문헌 Runge, Carl David Tolmé (1895), "Über die numerische Auflösung von Differentialgleichungen" , Mathematische Annalen , Springer , 46 (2): 167–178, doi :10.1007/BF01446807 , S2CID 119924854 . Kutta, Wilhelm (1901), "Beitrag zur näherungsweisen Integration totaler Differentialgleichungen" , Zeitschrift für Mathematik und Physik , 46 : 435–453 . Ascher, Uri M.; Petzold, Linda R. (1998), Computer Methods for Ordinary Differential Equations and Differential-Algebraic Equations , Philadelphia: Society for Industrial and Applied Mathematics , ISBN 978-0-89871-412-8 . Atkinson, Kendall A. (1989), An Introduction to Numerical Analysis (2nd ed.), New York: John Wiley & Sons , ISBN 978-0-471-50023-0 . Butcher, John C. (May 1963), "Coefficients for the study of Runge-Kutta integration processes", Journal of the Australian Mathematical Society , 3 (2): 185–201, doi :10.1017/S1446788700027932 . Butcher, John C. (May 1964), "On Runge-Kutta processes of high order", Journal of the Australian Mathematical Society , 4 (2): 179–194, doi :10.1017/S1446788700023387 Butcher, John C. (1975), "A stability property of implicit Runge-Kutta methods", BIT , 15 (4): 358–361, doi :10.1007/bf01931672 , S2CID 120854166 . Butcher, John C. (2000), "Numerical methods for ordinary differential equations in the 20th century", J. Comput. Appl. Math. , 125 (1–2): 1–29, Bibcode :2000JCoAM.125....1B , doi :10.1016/S0377-0427(00)00455-6 . Butcher, John C. (2008), Numerical Methods for Ordinary Differential Equations , New York: John Wiley & Sons , ISBN 978-0-470-72335-7 . Cellier, F.; Kofman, E. (2006), Continuous System Simulation , Springer Verlag , ISBN 0-387-26102-8 . Dahlquist, Germund (1963), "A special stability problem for linear multistep methods", BIT , 3 : 27–43, doi :10.1007/BF01963532 , hdl :10338.dmlcz/103497 , ISSN 0006-3835 , S2CID 120241743 . Forsythe, George E.; Malcolm, Michael A.; Moler, Cleve B. (1977), Computer Methods for Mathematical Computations , Prentice-Hall (6장 참조). Hairer, Ernst; Nørsett, Syvert Paul; Wanner, Gerhard (1993), Solving ordinary differential equations I: Nonstiff problems , Berlin, New York: Springer-Verlag , ISBN 978-3-540-56670-0 . Hairer, Ernst; Wanner, Gerhard (1996), Solving ordinary differential equations II: Stiff and differential-algebraic problems (2nd ed.), Berlin, New York: Springer-Verlag , ISBN 978-3-540-60452-5 . Iserles, Arieh (1996), A First Course in the Numerical Analysis of Differential Equations , Cambridge University Press , ISBN 978-0-521-55655-2 . Lambert, J.D (1991), Numerical Methods for Ordinary Differential Systems. The Initial Value Problem , John Wiley & Sons , ISBN 0-471-92990-5 Kaw, Autar; Kalu, Egwu (2008), Numerical Methods with Applications (1st ed.), autarkaw.com . Press, William H.; Teukolsky, Saul A. ; Vetterling, William T.; Flannery, Brian P. (2007), "Section 17.1 Runge-Kutta Method" , Numerical Recipes: The Art of Scientific Computing (3rd ed.), Cambridge University Press , ISBN 978-0-521-88068-8 Press, William H.; Teukolsky, Saul A. ; Vetterling, William T.; Flannery, Brian P. (2007), "Section 17.1 Runge-Kutta Method" , Numerical Recipes: The Art of Scientific Computing (3rd ed.), Cambridge University Press , ISBN 978-0-521-88068-8 또한 섹션 17.2. 룽지-쿠타 를 위한 어댑티브 스텝 크기 제어 . Stoer, Josef; Bulirsch, Roland (2002), Introduction to Numerical Analysis (3rd ed.), Berlin, New York: Springer-Verlag , ISBN 978-0-387-95452-3 . Süli, Endre; Mayers, David (2003), An Introduction to Numerical Analysis , Cambridge University Press , ISBN 0-521-00794-1 . Tan, Delin; Chen, Zheng (2012), "On A General Formula of Fourth Order Runge-Kutta Method" (PDF) , Journal of Mathematical Science & Mathematics Education , 7 (2): 1–10 . 고급 이산 수학 시그누 참조 책 (code- mcs033) 존 C. 정육점: "B-시리즈: 수치적 방법의 대수적 분석", 스프링어 SSCM, 제55권), ISBN 978-3030709556 (2021년 4월). Butcher, J.C. (1985), "The non-existence of ten stage eighth order explicit Runge-Kutta methods" , BIT Numerical Mathematics , 25 : 521–540 . Butcher, J.C. (1965), "On the attainable order of Runge-Kutta methods" , Mathematics of Computation , 19 : 408–417 . Curtis, A.R. (1970), "An eighth order Runge-Kutta process with eleven function evaluations per step" , Numerische Mathematik , 16 : 268–277 . Cooper, G.J.; Verner, J.H. (1972), "Some Explicit Runge"Kutta Methods of High Order" , SIAM Journal on Numerical Analysis , 9 . Butcher, J.C. (1996), "A History of Runge-Kutta Methods" , Applied Numerical Mathematics , 20 : 247–260 .
외부 링크