Runge-Kutta 및 데이터 포인트 재사용


11

파이썬에서 1 차 ODE를 해결하기 위해 4 차 Runge-Kutta 방법을 구현하려고합니다. 즉 입니다. 방법이 어떻게 작동하는지 이해하지만 비용이 많이 들기 때문에 계산 횟수를 최소화하는 효율적인 알고리즘을 작성하려고합니다 . 단계를 통해 증가함에 따라 이전에 계산 된 데이터 포인트를 재사용 할 수 있지만 방법을 볼 수 없다는 말을 들었습니다. 누구든지 이것을하는 방법을 알고 있습니까 아니면 불가능합니까?f(x,y)dydx=f(x,y)f(x,y)


"암기"연구. f(x,y)결과가 기억되도록 쉽게 "랩핑"할 수 있습니다 .

2
@ S.Lott : "r"이없는 "메모리"라는 용어입니다.

1
@ DietrichEpp : 완전히 맞습니다. Mac OS X에는 기술에 정통하지 않은 새로운 공격적인 맞춤법 검사기가 있습니다.

이것이 4 차 방법으로 시뮬레이션 된 2 차 시스템입니까?

다음은 대체 솔루션 목록입니다. google.com/…이 중 하나가 도움이 될 것입니다.

답변:


8

당신은에서가는 경우 yp_1 = f(x_1, y_1)yp_2 = f(x_1+h, y_2)당신이 중간 포인트를 필요로하기 위하여려고하고있다 :

K1 = f(x_1+h/2, y_1+h/2*yp_1)
K2 = f(x_1+h/2, y_1+h/2*K1)
K3 = f(x_1+h, y_1+h*K2)

x_2 = x_1 + h
y_2 = y_1 + h/6*(yp_1+2*K1+2*K2+K3)
yp_2 = f(x_2, y_2)

일반적으로 중간 단계 중 어느 것도 다음 단계에서 유용하지 않습니다. 이 때문에 K1, <> K2K3<> yp_2.


4

일반적으로 명시 적 Runge-Kutta 차수 방법은 최소한 함수 평가가 필요 하며 이를 피할 수있는 방법은 없습니다. 과거 는 개 이상의 기능 평가가 필요합니다 .N NN=4N

과거의 기능 평가를 재사용하려면 Adams-Bashforth와 같은 다단계 방법을 사용해야합니다.

어쨌든 각 전략에 대해 비용을 지불합니다. 단일 단계 방법에는 많은 수의 기능 평가가 필요하지만 다단계 방법에는 최대 메모리 요구 사항이 있습니다.

편집 : 수정. 내 진술은 명시 적 방법에 대해서만 사실입니다. 단계의 수가 기능 평가의 수로 직접 변환되지 않기 때문에 암시 적 방법의 경우 상황이 명확하지 않습니다.


아마 좀 더 구체적이어야합니다. 자세한 내용은 정육점, JC 및 J. Wiley를 참조하십시오. 정규 미분 방정식에 대한 수치 적 방법. Wiley Online Library, 2008. ODE 솔루션에 대한 탁월한 참조 자료 및 RK 방법에 대한 존재하지 않는 많은 증거를 제공합니다 (예 : 4 가지 기능 평가 만 사용하는 5 Runge-Kutta 방법은 존재하지 않습니다)
Reid.Atcheson

1
완전성 : "일반 Runge-Kutta 방법"에 대한 귀하의 주장은 사실이 아니며 명시적인 Runge-Kutta 방법에 대해서만 적용됩니다 .
David Ketcheson

으악! 네 말이 맞아 미안해
Reid. Atcheson

1

Runge-Kutta Methods를 사용하여 ODE를 해결한다는 것을 알고 있지만 f (x, y)의 오래된 계산 값을 재사용하려면 Adams-Bashforth 또는 Adams-Moulton과 같은 다단계 방법을 고려할 수 있습니다 행동 양식. 물론 이러한 방법의 단점은 적응 형 타임 스텝핑을 매우 쉽게 사용할 수 없다는 것입니다.


0

"내장 된"방법을 확인하십시오.이 유형의 RK 방법의 목표는 순서가 다른 두 가지 방법을 사용하는 것입니다. 여기서 고차 방법은 저차 방법과 동일한 함수 평가를 사용합니다. 이를 통해 매우 효율적인 오류 추정이 가능합니다. Hairer, Norsett 및 Wanner의 p.165 및 "일반 미분 방정식 I : 비 강성 문제 해결"의 추가 내용을 참조하십시오. 전형적인 예는 차수 7 (8)의 Fehlberg 방법입니다.

또한 PYTHON에서 ODE를 해결하려는 경우 assimulo를 확인하십시오 . 나는이 패키지를 몇 주 동안 가지고 놀았으며 매우 행복하다.

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