수치 적분기와 관련하여“증상”이란 무엇을 의미하며 SciPy의 odeint는이를 사용합니까?


25

의견에서 나는 다음과 같이 썼다.

... 기본 SciPy 인티 그레이터는 상징적 인 방법 만 사용한다고 가정합니다.

여기서는 odeint"비 강성 (Adams) 방법"또는 "강성 (BDF) 방법"을 사용 하는 SciPy 's를 참조합니다 . 소스 에 따르면 :

def odeint(func, y0, t, args=(), Dfun=None, col_deriv=0, full_output=0,
           ml=None, mu=None, rtol=None, atol=None, tcrit=None, h0=0.0,
           hmax=0.0, hmin=0.0, ixpr=0, mxstep=0, mxhnil=0, mxordn=12,
           mxords=5, printmessg=0):
    """
    Integrate a system of ordinary differential equations.

    Solve a system of ordinary differential equations using lsoda from the
    FORTRAN library odepack.

    Solves the initial value problem for stiff or non-stiff systems
    of first order ode-s::
        dy/dt = func(y, t0, ...)
    where y can be a vector.
    """

여기입니다 예를 들어 그냥 예상대로 세차 운동 것을 보여주기 위해 3 개월 동안 지구 주위에 위성의 궤도를 전파.

비 증폭 적분기는 에너지 (또는 다른 양)를 보존하지 않는 경향이있어 궤도 역학에서 바람직하지 않은 바람직하지 않은 특성을 가지고 있다고 생각합니다 . 그러나 나는 그것이 상징적 인 통합자를 상징적으로 만드는 것이 무엇인지 정확히 확신하지 못합니다.

재산이 무엇인지 (증가 적분자를 상징적으로 만드는 것) 간단하고 (공정하게) 이해하기 쉽지만 부정확하지 않은 방법으로 설명 할 수 있습니까? 나는 통합자가 테스트에서 수행하는 방식이 아니라 내부적 으로 어떻게 작동하는지 관점에서 묻습니다 .

그리고 odeint내적 통합 자만을 사용 한다는 내 의혹이 맞 습니까?


4
강력한 경험 법칙으로서, 위치와 운동량 방정식을 분리해야하는 경우에만 블랙 박스 적분기가 상징적이어야합니다.
origimbo

@origimbo 감사합니다. 이것들은 odeint분명히 블랙 박스 모드에서 사용하는 것을 인정하지만 상당히 오래되고 확립되고 잘 참조 된 소스 코드 (편집 된 질문, ODEPACK 및 LSODA 참조)에 대한 파이썬 랩퍼 처럼 보입니다 . 내 링크 된 는 6D 상태 벡터가 3 개의 위치와 3 개의 속도로 구성되어 있음을 보여줍니다.
uhoh

11
ODEPACK 및 LSODA의 ODE 적분기는 증상 적분기가 아닙니다 .
Brian Borchers

2
Euler와 Symplectic Euler : idontgetoutmuch.wordpress.com/2013/08/06/…의 두 가지 매우 간단한 솔버를 비교 한 예제가 있습니다.
idontgetoutmuch

2
Hairer, Nørsett 및 Wanner 의 저서에는 상징적 인 방법에 대한 좋은 설명이 있습니다. 특히 그림 16.1과 여기 의 그림을 보십시오 .
JM

답변:


47

수정부터 시작하겠습니다. 아니요, odeint증상이있는 적분기가 없습니다. 아닙니다. 증상 적 통합이 에너지 절약을 의미하지는 않습니다.

증상의 의미는 무엇이며 언제 사용해야합니까?

우선, 상징적 인 의미는 무엇입니까? 증상은 용액이 증상 매니 폴드에 존재 함을 의미합니다. 증상 매니 폴드는 2- 형태로 정의 된 솔루션 세트입니다. 증상 매니 폴드의 세부 사항은 아마도 수학적으로 말도 안되는 것처럼 들릴 수 있으므로 대신에 그 매니 폴드의 두 변수 세트 사이에 직접적인 관계가 있습니다. 이것이 물리학에 중요한 이유는 해밀턴의 방정식이 자연스럽게 해가 위상 공간의 상징적 매니 폴드에 존재하고 자연 분할이 위치와 운동량 성분이라는 점에서 해가 있기 때문입니다. 진정한 해밀턴 솔루션의 경우 위상 공간 경로는 일정한 에너지입니다.

O(Δtn)n

이것이 의미하는 것은 상징적 인 적분기가 드리프트 부족과 주기성을 거의 보장하기 때문에 일반적인 적분기보다 장기 패턴을 더 잘 포착하는 경향이 있다는 것입니다. 이 노트북은 Kepler 문제에서 이러한 속성을 잘 표시합니다 . 첫 번째 이미지는 솔루션의주기적인 특성에 대해 이야기하고있는 내용을 보여줍니다.

여기에 이미지 설명을 입력하십시오

이것은 Kahan6 차 대칭 적분기와 DifferentialEquations.jl의 Li를 사용하여 해결되었습니다 . 에너지가 정확히 보존되지는 않지만 변동은 변동 된 솔루션 매니 폴드가 실제 매니 폴드에서 얼마나 멀리 떨어져 있는지에 따라 다릅니다. 그러나 수치 해법 자체는 대칭 매니 폴드에 상주하기 때문에 거의 정확한주기적인 경향이 있으며 (여기서 볼 수있는 선형 수치 드리프트) 장기 통합에 매우 적합합니다. RK4와 동일한 작업을 수행하면 재해가 발생할 수 있습니다.

여기에 이미지 설명을 입력하십시오

문제는 수치 해에 실제 주기성이 없기 때문에 초과 근무가 표류하는 경향이 있다는 것을 알 수 있습니다.

이는 대칭 적 통합자를 선택해야하는 진정한 이유를 강조합니다. 대칭 적 통합자는 대칭 적 특성 (해밀턴 시스템)이있는 문제에 대한 장기 통합에 적합합니다 . 몇 가지를 살펴 보겠습니다. 증상 문제가 있더라도 항상 대칭 적분기가 필요하지는 않습니다. 이 경우, 적응 형 5 차 Runge-Kutta 방법이 적합합니다. 여기 있습니다 Tsit5:

여기에 이미지 설명을 입력하십시오

두 가지를 주목하십시오. 하나는 위상 공간 플롯에서 실제 드리프트를 볼 수 없을 정도로 충분한 정확도를 얻습니다. 그러나 오른쪽에는이 에너지 드리프트가 있음을 알 수 있으므로 충분히 긴 통합을 수행하는 경우주기적인 특성을 가진 솔루션 방법뿐만 아니라이 방법도 수행하지 않습니다. 그러나 그것은 의문을 제기합니다. 어떻게 효율성을 현명하게 대하는가? 글쎄, 이것은 조금 덜 확실합니다. 에서 DiffEqBenchmarks.jl 이 질문을 조사하고 일부 벤치 마크를 찾을 수 있습니다. 예를 들어이 노트Quadruple Boson 모델에서 Hamiltonian 방정식 시스템의 에너지 오류와 런타임을 살펴보고 실제로 높은 정확도를 원한다면 통합 시간이 길더라도 고차 RK 또는 Runge-Kutta Nystrom을 사용하는 것이 더 효율적이라는 것을 보여줍니다. RKN) 방법. 이는 통합 자들이 약간의 효율성을 포기하고 고정 된 시간 단계를 거쳐야하는 대칭 적 특성을 만족시키기 때문에 의미가있다 (일부 연구는 후자에 대한 연구가 있지만 그다지 멀지 않다).

또한이 두 노트북에서 표준 방법을 사용하여 각 단계 (또는 몇 단계마다)를 솔루션 매니 폴드에 다시 투영 할 수 있습니다. 이것이 DifferentialEquations.jl ManifoldProjection 콜백을 사용하는 예제 가 수행하는 작업입니다. 보전법이 보장되지만 각 단계마다 암시 적 시스템을 해결하는 데 추가 비용이 든다는 것을 알 수 있습니다. 완전 암시 적 ODE 솔버 또는 단일 질량 행렬을 사용하여 보존 방정식을 추가 할 수도 있지만 결과적으로 이러한 방법은 계산 비용이 많이 듭니다.

요약하면, 대칭 적분기에 도달하려는 문제의 클래스는 계산 리소스를 매우 정확하게 (허용 <1e-12) 하기 위해 투자하지 않으려는 대칭 매니 폴드 (해밀턴 시스템)에 대한 솔루션이있는 문제입니다. 정확한 에너지 등이 필요하지 않습니다. 보존. 이것은 장기 통합 속성에 관한 것임을 강조하므로 일부 문헌에서 제안한 것처럼 모든 것에 대해 무리하지 않아야합니다. 그러나 그들은 천체 물리학과 같은 많은 분야에서 여전히 매우 중요한 도구로, 오랜 시간 통합되어 불충분 한 정확도없이 충분히 빨리 풀어야합니다.

상징적 통합기를 어디에서 찾을 수 있습니까? 어떤 종류의 증상 적분기가 존재합니까?

일반적으로 두 가지 종류의 대칭 적분기가 있습니다. 위의 예에 표시된 것과 같은 상징적 인 Runge-Kutta 적분기가 있으며 그 특성을 갖는 암시적인 Runge-Kutta 방법이 있습니다. @origimbo가 언급했듯이, 상징적 인 Runge-Kutta 적분기는 위치 및 운동량 부품을 개별적으로 처리 할 수 ​​있도록 분할 된 구조를 제공해야합니다. 그러나 암시 적으로 암시적인 Runge-Kutta 방법은이를 요구하지 않고 상징적이지만 대신 비선형 시스템을 해결해야합니다. 시스템이 뻣뻣하지 않으면이 비선형 시스템을 기능적 반복 또는 Anderson 가속으로 해결할 수 있기 때문에 이것은 나쁘지 않습니다.하지만 RK 방법은 여전히 ​​효율성을 위해 선호되어야합니다.

즉, odeint에는 이러한 제품군 중 하나의 방법이 없으므로 증상 적분기를 찾고 있다면 좋은 선택이 아닙니다. Fortran의 Hairer 사이트에는 사용할 수있는 작은 세트가 있습니다 . Mathematica는 몇 가지 내장되어 있습니다. GSL ODE 솔버 에는 IIRC가 상징적 인 RK 가우시안 포인트 적분기 가 있지만 GSL 방법을 사용해야하는 유일한 이유입니다.

그러나 가장 포괄적 인 대칭 적분기 세트는 Julia의 DifferentialEquations.jl에서 찾을 수 있습니다 (위의 노트북에 사용 된 것을 상기하십시오). 사용 가능한 대칭 Runge-Kutta 방법의 목록은 이 페이지 에서 찾을 수 있으며 암시 적 중간 점 방법도 상징적 임을 알 수 있습니다 (암시 적 Runge-Kutta Trapezoid 방법은 가역적이므로 "거의 증상"으로 간주 됨). 가장 큰 메소드 세트를 가지고있을뿐만 아니라 공개 소스이며 (코드 및 테스트를 고급 언어로 볼 수 있음) 벤치 마크 가 많습니다 . 실제 문제를 해결하기 위해 사용하기에 좋은 입문용 노트북 이 튜토리얼 노트북입니다. 물론 첫 번째 ODE 튜토리얼을 통해 패키지를 시작하는 것이 좋습니다 .

일반적 으로이 블로그 게시물 에서 수치 미분 방정식 스위트에 대한 자세한 분석을 볼 수 있습니다 . 그것은 매우 상세하지만 많은 주제를 다루어야하기 때문에 각각 이것보다 덜 자세하게 수행되므로 어떤 식 으로든 확장하도록 요청하십시오.


10
이 답변으로 나는 스택 교환 잭팟을 때린 것 같습니다! 이것은 내가 그중 일부를 즉시 이해하고 더 이상 읽지 않아도되는 부분을 이해하기 때문에 나에게 완벽한 대답입니다. 이 답변의 출처를 밝히고 다른 유용한 링크를 포함시키는 데 많은 시간을 투자 해 주셔서 감사합니다.
uhoh

수학적인 세부 사항으로 가기 전에, 우리는 대략 말할 수 있습니다 사교 의 수단 보존 볼륨을 우리는 할 수 없었다?
Miguel

2
FTR은 적응 형 5 차 Runge-Kutta가 RK4보다 성능이 훨씬 우수한 이유는 높은 순서가 아니라보다 적합한 단계 크기를 선택하기 때문입니다. RK4의 성능이 좋지 않은 이유는 주로 계단 크기가 부적절하게 높기 때문입니다. 스텝 크기가 절반 인 동일한 솔버가 훨씬 나은 솔루션을 제공합니다. (그냥 전혀 필요하지 않은
최고점

1
뛰어난 박람회. 부수적 인 질문 : OP는 Python에 대한 참조로 시작합니다-연결된 Julia 예제의 라인을 따라 권장되는 Python 자습서 / 패키지가 있습니까?
케찰코아틀

1
이러한 종류의 통합 자에 대해 내가 아는 유일한 Python 패키지는 diffeqpy 이며, 여기서는 README에 문서화되어 있지 않지만 동일한 모든 메소드에 액세스하고 해당 패키지를 사용하여 Python으로 다시 작성할 수 있습니다.
Chris Rackauckas

14

pqH(p,q)

dqdt=+Hp
dpdt=Hq.
H
p(t),q(t)=ϕt(p(t0),q(t0))
dpdqpq위상 공간의 닫힌 곡선 내부 영역이 보존된다고 말하는 것으로 생각할 수있는 1 차원입니다. 궤적의 "공"이 서로 "가까운"상태를 유지해야하기 때문에 모든 종류의 우수한 안정성 특성이 보장됩니다.

숫자의 관점에서, 대칭 적분기는 동일한 방식으로 작용하여이 영역 / 두 형태를 보존합니다. 결과적으로 이것은 보존 된 "숫자 Hamiltonian"(정확한 것과 동일하지 않을 수도 있음)이 있음을 의미합니다. 안정성은 정확도와 동일하지 않으므로 매우 긴 시간 동안 통합 할 때 상징적 방법의 장점 대부분이옵니다 (예 : 방법은 위성을 지구의 반대편에 빠르게 배치 할 수는 있지만 결코 붕괴되지 않도록 할 수 있습니다) 그것).


감사합니다! 이제 급여 수준 이상의 단어를 사용하겠습니다. 궤적의 n- 볼은 3- 바디 시뮬레이션과 같은 분기점 근처에있을 때 더 위험합니다. cf. Doedel et al. 2007, Int. J. 분기와 혼돈, v 17, no. 8 (2007) 2625–2677 어떻게 했습니까? 또한 ieec.cat/hosted/web-libpoint/papers/…
uhoh

2
독자가 수학적 세부 사항을 알고 있지 않는 한, 부피를 보존한다고해서 개별 궤적이 가깝게 유지되는 것은 아니기 때문에 안정성에 대한 언급이 잘못되었습니다.
Miguel

1
@Miguel 나는 이것이 수학적 세부 사항을 따르지 않는 독자가 어느 쪽이든 망칠 수있는 상황 중 하나라고 생각하지만, 평범한 수치 주의자의 정확성, 안정성 및 계산 효율의 트로 키 측면에서 안정성을 강조한다고 주장합니다. 이점이 유용합니다. 고의로 부정확하지 않은 더 나은 것을 생각할 수 있다면 재 작성 제안을 받아들이게되어 기쁩니다.
origimbo

22

1
@Miguel : 그러나 입자 덩어리는 둘 이상의 부분으로 나눌 수 있습니다. 그것의 부피는 일정하게 유지해야한다.
Wolfgang Bangerth
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.