상위 Runge–Kutta 방법이 더 자주 사용되지 않는 이유는 무엇입니까?


17

나는 왜 높은 차수 (즉, 4보다 큰) Runge-Kutta 방법이 거의 논의되지 않은지 (최소한 나의 지식으로는) 왜 궁금했다. 나는 단계 당 더 많은 계산 시간이 필요하다는 것을 이해하지만 (예 : 12 차 임베디드 단계가있는 RK14 ) 더 높은 Runge-Kutta 방법 (예 : 안정성 문제)을 사용하는 다른 단점이 있습니까? 극단적 인 시간 척도에서 고진동 솔루션으로 방정식에 적용 할 때, 그러한 고차 방법이 일반적으로 선호되지 않습니까?


2
나는 이것이 매우 주관적인 질문이라고 생각합니다. 이미 언급했듯이 가장 큰 단점은 계산 비용입니다. 일반적으로 정확성과 계산 시간의 균형을 유지하려고합니다. PDE에서는 사람들이 고차에 대해 이야기 할 때 일반적으로 3 차 또는 4 차에 대해 생각합니다. 그리고 시간 스텝핑도 같은 순서로 유지됩니다.
Vikram

3
PDE에서 시간적 의존성에 대한 높은 차수 정확도 체계는 공간 정확도가 더 나쁘면 의미가 없습니다. 실제로 공간 의존성의 정확도는 특히 비정형 메쉬에서 작업 할 때 주로 2 차 또는 3 차 정도입니다. 사람들은 최소한의 비용으로 전역 오류 잘림을 제어해야하므로 특정 경우에는 충분히 높은 정확도로 Runge-Kutta를 고려합니다.
tqviet

@tqviet 공간 도함수에 대해 차수 또는 중심 차분 근사값을 최대 차수 8 까지 사용하는 경우 RK8이 적합합니까? 일반적으로, 공간 미분의 이러한 고차 유한 차분 근사를 사용하는 데 정확성 또는 안정성 문제가 있습니까?
Mathews24

1
@ Mathews24 : 나는 방정식에 크게 의존하는 안정성에 대해서는 언급하지 않았습니다. 공간 의존성에 매우 정확한 방식을 적용 할 때, 우리는 적어도 동일한 순서의 정확도로 시간적 의존성을 위해 RK를 채택하지만, 안정성 조건은 더 작은 값인 요구할 수있다 . Δ
tqviet

답변:


17

Runge-Kutta 방법을 사용하여 5 차 이상의 수천 개의 논문과 수백 개의 코드가 있습니다. 참고 MATLAB에서 가장 일반적으로 사용되는 명시 적 통합이 5 번째 순서 룽게 - 쿠타 방법을 사용하여 솔루션을 전진 ODE45이다.

널리 사용되는 고차 Runge-Kutta 방법의 예

Google Scholar에 따르면 5 차 방법을 제공하는 Dormand & Prince논문 에는 1700 개가 넘는 인용이 있습니다. 그 중 대부분은 문제를 해결하기 위해 방법을 사용하는 논문입니다. Cash-Karp 분석법 논문의 인용 횟수는 400 회가 넘습니다 . 아마도 5보다 높은 순서로 가장 널리 사용되는 방법은 Google Scholar에서 400 회 이상 인용 한 Prince-Dormand의 8 차 방법 일 것입니다 . 다른 많은 예를들 수 있습니다. 이 방법을 사용하는 많은 사람들은 (종일은 아니지만) 논문을 인용하지 않는다는 것을 명심하십시오.

또한 고차 외삽 법 및 지연 보정 법은 Runge-Kutta 방법 입니다.

고차 방법 및 반올림 오류

반올림 오류로 정확도가 제한 되면 더 높은 차수의 방법을 사용해야합니다 . 이는 높은 차수의 방법은 더 적은 단계를 필요로하고 (단계 당 더 많은 평가가 있어도 더 적은 함수 평가), 더 적은 반올림 오류를 저지르기 때문입니다. 간단한 실험을 통해이를 쉽게 확인할 수 있습니다. 수치 분석의 첫 번째 과정에서 좋은 숙제 문제입니다.

10 차 방법은 배정 밀도 산술에 매우 유용합니다. 반대로, 우리가 가진 모든 것이 Euler의 방법이라면, 반올림 오차가 큰 문제가 될 것이고 고차 솔버가 잘 작동하는 많은 문제에 대해 매우 높은 정밀도의 부동 소수점 숫자가 필요합니다.

높은 차수 방법은 안정적 일 수 있습니다

@RichardZhang은 두 번째 Dahlquist 장벽을 참조했지만 이는 다단계 방법에만 적용됩니다. 여기에 게시 된 질문 은 Runge-Kutta 방법에 관한 것이며 stable뿐만 아니라 B- stable (일부 비선형 문제에 유용한 안정성 속성) 인 모든 순서의 Runge-Kutta 방법이 있습니다. 이러한 방법에 대한 자세한 내용은 Hairer & Wanner의 텍스트를 참조하십시오.

천체 역학의 고차 방법

물어

극단적 인 시간 척도에서 고진동 솔루션으로 방정식에 적용 할 때, 그러한 고차 방법이 일반적으로 선호되지 않습니까?

당신 말이 맞아요! 이것의 대표적인 예는 천상의 역학입니다. 나는 그 분야의 전문가가 아닙니다. 그러나이 논문 은 예를 들어 천구 역학에 대한 방법을 비교하고 5보다 낮은 차수를 고려하지도 않습니다. 11 차 또는 12 차 차수의 방법이 종종 가장 효율적이라고 결론을 내립니다. 실력 있는).


Ketchson :이 진술에 대한 증거 나 설명을 제공해 주시겠습니까? "고차 외삽 법과 지연된 교정법은 Runge-Kutta 법"입니까? 특히 "지연된 보정 방법". 감사.
tqviet

@David Ketcheson 외곽 반올림 간격 또는 방사형 산술과 같은 검증 된 (검증 된) 컴퓨팅 기술을 사용하는 경우 답변이 어떻게 변하는 지 논의 할 수 있습니까? 배정도의 바깥 쪽 반올림 간격 또는 방사형 산술보다 높은 경우는 어떻습니까? Runge-Kutta 순서가 증가함에 따라 줄 바꿈 및 종속성은 어떻게됩니까? 재미를 위해서 ODE가 매우 뻣뻣하다고 가정 해 봅시다.
Mark L. Stone

@ MarkL.Stone 완전히 다른 질문입니다. 문의하려면 별도의 질문으로 게시하십시오. 그러나 나는 그 일에 전문가가 아니며 대답 할 수 없습니다.
David Ketcheson

1
@tqviet 설명 을 위해이 백서 를 보십시오 .
David Ketcheson

12

표준 배정도 부동 소수점 산술을 사용하는 한 합리적인 수의 단계로 높은 정확도로 솔루션을 얻는 데 매우 높은 차수의 방법이 필요하지 않습니다. 실제로 솔루션의 정확도는 일반적으로 RKF45로 수행되는 단계의 수 / 길이가 아니라 배정 밀도 부동 소수점 표현으로 1.0e-16의 상대 오차로 제한됩니다.

배정 밀도 부동 소수점 산술 체계보다 높은 것으로 전환하면 10 차 방법을 사용하는 것이 좋습니다.


5
이 답변이 잘못된 것이라고 생각합니다. 높은 차수의 방법은 반올림 오차를 훨씬 덜 발생시키는 반면, 낮은 차수의 방법은 필요한 정확도가 크거나 시간 간격이 길면 라운딩 오차가 지배적입니다. 아래 내 답변을 참조하십시오.
David Ketcheson

2
요점은 배정도 부동 소수점에서는 상대 정확도가 1.0e-16보다 높은 솔루션을 나타낼 수도 없다는 것입니다. 많은 실제 상황에서 오래된 RKF45는 작은 단계를 거치지 않고도 원하는 기간 동안 정확도 수준에 도달 할 수 있습니다. 뻣뻣한 시스템이나 상징적 인 적분기가 필요한 상황에는 적합하지 않지만 Runge Kutta 방법은 높은 상황에서도 좋은 해결책이 아닙니다. 나는 매우 오랜 기간 동안 Runge Kutta의 고차 방법이 의미가 있다는 데 동의합니다.
Brian Borchers

10

Brian Borcher의 탁월한 답변에 추가하기 위해 많은 실제 응용 프로그램은 매우 엄격한 ODE 또는 DAE를 인정합니다. 직관적으로, 이러한 문제는 시간이 지남에 따라 부드럽 지 않고 급격한 변화를 겪기 때문에 긴 스텝 크기에 걸쳐 늘어난 고차 다항식과는 달리 짧은 단계 크기에 걸쳐 잘게 분포 된 저차 다항식을 사용하여 더 잘 모델링됩니다. 또한, 안정성은 종종 내재적 방법 의 사용을 필요로하며 , 이로 인해 고차 방법의 계산 불이익이 훨씬 가파 릅니다.

보다 엄격하게, 고차 방법은 뻣뻣한 문제에 대한 저차 방법보다 덜 안정적입니다. 예를 들어 선형 다단계 방법에 대한 Dahlquist 장벽이 있습니다.

아르 자형2

RK 공식에서 L- 안정성에 대해 유사한 (그러나 훨씬 더 복잡한) 진술을 할 수 있습니다. 모든 경우에 순서가 증가한다고해서 항상보다 정확한 솔루션이되는 것은 아닙니다. 다음은 Prothero와 Robinson의 1974 년 논문에서 발췌 한 것입니다.

A- 안정적인 1 단계 방법을 사용하여 뻣뻣한 비선형 미분 방정식의 큰 시스템을 풀 때
(a) 일부 A- 안정 방법은 매우 불안정한 솔루션을 제공하며
(b) 방정식이 뻣뻣함은 종종 사용 된 방법의 순서와 관련이없는 것처럼 보입니다.

이 주제에 대한보다 엄격한 처리에 대해서는 Hairer & Wanner의 고전 텍스트 인 "일반 미분 방정식 II : 뻣뻣하고 미분-대수 문제 해결"(1991)을 참조하십시오.

실제로 뻣뻣한 방정식은 거의 항상 사다리꼴 규칙 또는 TR-BDF2 공식 (MATLAB의 ode23t 및 ode23tb 함수)을 사용하여 해결됩니다. 이 두 가지 방법 모두 암시 적 2 차 방법입니다. 물론, 안정성이 문제가되지 않는 경우 (즉, 뻣뻣한 방정식에서) 다양한 옵션 중에서 자유롭게 선택할 수 있습니다. RK45가 가장 일반적인 선택입니다.


매우 흥미로운. 순서가 A- 안정 다단계 방법이 되려면 2보다 작거나 같은 이유에 대한 (직관적 인) 설명이 있습니까? RK 공식에 대해 비슷한 진술을 할 수 있다고 말할 때, 다시 한 번 순서 2입니까?
Mathews24

그러나 Runge-Kutta 방법에는 임의 순서의 A- 안정적인 방법이 있습니다.
David Ketcheson

예 @DavidKetcheson,하지만 그들은없는 강력 A-안정 (즉, L-안정적). 간단한 트랜지스터 회로를 시뮬레이션하는 등 DAE를 해결하는 데 사용될 때 많은 문제가 있습니다. 실제로, TR은 SPICE에서 인공 울림을 일으키는 것으로 악명 높으며, 이는 TR-BDF2의 개발에 동기를 부여한 것입니다.
Richard Zhang

참고로 @DavidKetcheson는 참조 doi.org/10.1090/S0025-5718-1974-0331793-2를 . A- 안정성의 개념은 DAE에 대해 충분히 강하지 않으며, 고차 A- 안정 방법은 종종 DAE를 해결하는 데 사용될 때 이상한 결과를 생성합니다.
Richard Zhang

물론 DAE 나 다단계 방법에 관한 문제는 아닙니다.
David Ketcheson

9

벤치 마크 설정

Julia 소프트웨어 DifferentialEquations.jl에서 우리는 Feagin 메소드를 포함하여 많은 고차 메소드를 구현했습니다. 당신은 우리 의 방법 목록 에서 그것을 볼 수 있으며 , 당신은 제공된 tableaus로 사용할 수있는 다른 것들이 많이 있습니다. 이러한 모든 방법이 통합되어 있으므로 쉽게 벤치마킹 할 수 있습니다. 여기서 온라인으로 가지고있는 벤치 마크를 볼 수 있으며 다양한 알고리즘을 벤치마킹하는 것이 매우 간단하다는 것을 알 수 있습니다. 따라서 벤치 마크를 실행하는 데 몇 분이 걸리려면 계속 진행하십시오. 다음은 나오는 내용에 대한 요약입니다.

먼저, 각 벤치 마크를 살펴보면 DP5(Dormand-Prince Order 5) 및 DP8메소드가 Hairer Fortran 코드 ( dopri5dop853) 보다 빠르 므로 이러한 구현이 매우 최적화되어 있음을 알아야합니다. . 이들은 다른 스레드 에서 언급 한 바와 같이 Dormand-Prince 메소드의 과다 사용은 메소드가 여전히 최고이기 때문에 작성되지 않았기 때문임을 보여줍니다. 따라서 가장 최적화 된 구현 간의 실제 비교는 Tsitorous 메서드, Verner 메서드 및 DifferentialEquations.jl의 Feagin 메서드 사이에 있습니다.

결과

일반적으로, 7보다 높은 차수의 방법은 선택된 공차를 고려할 때 일반적으로 차수보다 큰 계산 비용을가집니다. 이것의 한 가지 이유는 낮은 차수 방법에 대한 계수 선택이보다 최적화되어 있기 때문입니다 (비대칭 적으로 작지 않을 때 더 중요한 "원소 잘림 오류 계수"가 작음). 여기와 같은 많은 문제 에서 Verner Efficient 6 및 7 방법은 매우 잘 작동하지만 Verner Efficient 8과 같은 방법은 기울기가 더 낮을 수 있습니다. 높은 차수의 "게인"이 더 낮은 공차에서 합성되기 때문에, 높은 차수의 방법이 더 효율적일 수있는 공차가 항상 있기 때문입니다.

그러나 질문은 얼마나 낮습니까? 잘 최적화 된 구현에서는 두 가지 이유로 상당히 낮아집니다. 첫 번째 이유는 하위 메소드가 FSAL이라는 것을 구현하기 때문입니다 (첫 번째는 마지막과 동일 함). 이 특성은 하위 메소드가 다음 단계에서 이전 단계의 함수 평가를 재사용하므로 효과적으로 하나의 함수 평가를 갖지 않음을 의미합니다. 이것이 올바르게 사용된다면, 5 차 방법 (Tsitorous 또는 Dormand-Prince)과 같은 것이 실제로 tableaus가 제안하는 6 개 대신 5 개의 기능 평가를 수행하고 있습니다. 이것은 Verner 6 방법에서도 마찬가지입니다.

다른 이유는 보간 때문입니다. 매우 높은 차수의 방법을 사용하는 한 가지 이유는 더 적은 단계를 수행하고 단순히 중간 값을 보간하는 것입니다. 그러나 중간 값을 얻기 위해 보간 함수는 단계 수행에 사용 된 것보다 더 많은 함수 평가가 필요할 수 있습니다. Verner 방법을 보면, Order 8 보간법을 얻기 위해서는 Order 8 방법에 대해 8 개의 추가 함수 평가가 필요합니다. 하위 차수 방법은 "자유"보간법을 제공하는 경우가 많습니다. 예를 들어 대부분의 5 차 방법에는 자유 4 차 보간법이 있습니다 (추가 기능 평가 없음). 따라서 중간 값이 필요한 경우 (고차 수 방법을 사용하는 경우 좋은 플롯이 필요함) 숨겨진 비용이 추가로 발생합니다. 이러한 보간 된 값이 이벤트 처리 및 지연 미분 방정식 해결에 실제로 중요하다는 사실을 고려하면 추가 보간 비용이 왜 영향을 받는지 알 수 있습니다.

Feagin 방법은 어떻습니까?

따라서 Feagin 방법이 벤치 마크에서 의심스럽게 누락되었음을 알 수 있습니다. 그것들은 훌륭하고 수렴 테스트는 임의의 정밀도 수 등에서 작동하지만 실제로 잘 수행하려면 약간의 허용 오차를 요구해야합니다. 예를 들어, 게시되지 않은 벤치 마크에서 (9 차 Verner Efficient Method)가 다음과 같은 허용 오차 Feagin14보다 우수한 것으로 나타났습니다 . 혼돈 역학 (Pleides 또는 3-body 천체 물리학 문제에서와 같이)이있는 응용 프로그램의 경우 민감한 의존성 (혼돈 시스템의 오류가 빠름)으로 인해이 정도의 정확도를 원할 수 있습니다. 그러나 대부분의 사람들은 아마도 배정 밀도 부동 소수점 숫자로 계산하고 있으며이 허용 오차 영역에서 성능이 우수한 벤치 마크를 찾지 못했습니다.Vern91e-30

또한 Feagin 방법과 함께 보간법이 없습니다. 그래서 내가하는 일은 단순히 3 차 Hermite 보간법을 사용하여 하나가 존재하는 방식으로 만드는 것입니다 (놀랍게도 잘 작동합니다). 그러나 표준 보간 함수가없는 경우 재귀 Hermite 방법을 사용하여 (이 보간을 사용하여 중간 점을 얻은 다음 5 차 보간 등을 수행하여) 고차 보간을 얻을 수 있지만 비용이 많이 들고 결과 보간은 원칙적으로 잘림 오류가 낮을 필요는 없습니다 (따라서 dt실제로 작을 때만 좋습니다 , 우리가 원하는 경우의 정반대입니다!). 따라서 정확도와 일치하기 위해 정말 좋은 보간이 필요한 경우 최소한으로 돌아 가야 Vern9합니다.

외삽에 대한 참고 사항

외삽 방법은 임의의 순서의 Runge-Kutta 방법을 생성하기위한 알고리즘 일뿐입니다. 그러나 순서에 따라 필요한 것보다 더 많은 단계를 수행하고 높은 기본 잘림 오류 계수를 가지므로 주어진 순서에서 잘 최적화 된 RK 방법만큼 효율적이지 않습니다. 그러나 이전의 분석에서 볼 때, 이는 "알려진"RK 방법보다이 방법이 더 잘 수행 될 수있는 내성이 매우 낮은 영역이 있음을 의미합니다. 그러나 내가 실행 한 모든 벤치 마크에서, 나는 그렇게 낮아지지 않은 것 같습니다.

안정성에 대한 참고 사항

선택은 실제로 안정성 문제와 관련이 없습니다. 실제로 DifferentialEquations.jl tableaus ( plot(tab)안정성 영역에 대해서만 가능) 를 거치면 대부분의 방법에 의심되는 안정성 영역이 있음을 알 수 있습니다. 이것은 실제로 선택입니다. 일반적으로 메소드를 파생시킬 때 작성자는 일반적으로 다음을 수행합니다.

  1. 가장 낮은 원리 잘림 오차 계수 (즉, 다음 차수 항의 계수)를 찾습니다.
  2. 주문 제약 조건에 따라
  3. 그리고 안정성 영역을 Dormand-Prince Order 5 방법의 안정성 영역에 가깝게 만드십시오.

왜 마지막 상태입니까? PI-controlled adaptive stepize가 선택을 수행하는 방식에 따라이 방법은 항상 안정적인 경향이 있기 때문에 "충분한"안정 영역에 대한 좋은 기준이됩니다. 따라서 안정성 영역이 모두 비슷한 경향이있는 것은 우연이 아닙니다.

결론

모든 선택 방법에는 장단점이 있습니다. 가장 높은 차수의 RK 방법은 계수 선택을 최적화하기가 어렵고 함수 평가의 수가 복합적이기 때문에 (그리고 보간이 관련 될 때 더욱 빠르게 증가하기 때문에) 더 낮은 공차에서 효율적이지 않습니다. 그러나 공차가 충분히 낮아지면 승리하지만 필요한 공차는 "표준"응용 프로그램보다 훨씬 낮을 수 있습니다 (즉, 실제로 혼란스러운 시스템에만 적용 가능).

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.