Metoda Dormanda-Prince'a
W analizie numerycznej metoda Dormanda -Prince'a ( RKDP ) lub metoda DOPRI jest wbudowaną metodą rozwiązywania równań różniczkowych zwyczajnych ( Dormand i Prince 1980 ). Metoda należy do rodziny solwerów ODE Runge-Kutta . Mówiąc dokładniej, wykorzystuje sześć ocen funkcji do obliczenia dokładnych rozwiązań czwartego i piątego rzędu. Różnica między tymi rozwiązaniami jest następnie traktowana jako błąd rozwiązania (czwartego rzędu). To oszacowanie błędu jest bardzo wygodne dla adaptacyjnych algorytmów całkowania stopniowego. Inne podobne metody integracji to Fehlberg (RKF) i Cash-Karp (RKCK).
Metoda Dormand-Prince ma siedem etapów, ale wykorzystuje tylko sześć ocen funkcji na krok, ponieważ ma właściwość FSAL (First Same As Last): ostatni etap jest oceniany w tym samym punkcie, co pierwszy etap następnego kroku. Dormand i Prince wybrali współczynniki swojej metody, aby zminimalizować błąd rozwiązania piątego rzędu. Jest to główna różnica w stosunku do metody Fehlberga, która została tak skonstruowana, że rozwiązanie czwartego rzędu ma mały błąd. Z tego powodu metoda Dormanda-Prince'a jest bardziej odpowiednia, gdy rozwiązanie wyższego rzędu jest używane do kontynuowania integracji, praktyka znana jako ekstrapolacja lokalna ( Shampine 1986 ; Hairer, Nørsett i Wanner 2008 , s. 178-179).
Dormand-Prince jest obecnie domyślną metodą w solverze ode45
dla MATLAB i GNU Octave i jest domyślnym wyborem dla solvera eksploratora modeli Simulink . Jest to opcja w bibliotece integracyjnej SciPy ODE Pythona oraz w bibliotece solwerów ODE Julia (język programowania) . Dostępne są również implementacje Fortran , Java i C++ .
Tablica Rzeźnika to:
0 | ||||||||
1/5 | 1/5 | |||||||
3/10 | 3/40 | 9/40 | ||||||
4/5 | 44/45 | −56/15 | 32/9 | |||||
8/9 | 19372/6561 | −25360/2187 | 64448/6561 | -212/729 | ||||
1 | 9017/3168 | −355/33 | 46732/5247 | 49/176 | -5103/18656 | |||
1 | 35/384 | 0 | 500/1113 | 125/192 | −2187/6784 | 11/84 | ||
35/384 | 0 | 500/1113 | 125/192 | −2187/6784 | 11/84 | 0 | ||
5179/57600 | 0 | 7571/16695 | 393/640 | −92097/339200 | 187/2100 | 1/40 |
Pierwszy rząd współczynników b daje rozwiązanie dokładne piątego rzędu, a drugi rząd — rozwiązanie dokładne czwartego rzędu.
Notatki
- Implementacja oprogramowania w MATLAB : https://www.mathworks.com/help/matlab/ref/ode45.html
- Implementacja w GNU Octave : https://octave.org/doc/interpreter/Matlab_002dzgodny-solvers.html#Matlab_002dzgodny-solvers
- Implementacja w Pythonie (język programowania) : https://web.archive.org/web/20150907215914/http://adorio-research.org/wordpress/?p=6565
- Dormand JR; Prince, PJ (1980), „Rodzina osadzonych formuł Runge-Kutty”, Journal of Computational and Applied Mathematics , 6 (1): 19–26, doi : 10.1016/0771-050X (80) 90013-3 .
- Dormand, John R. (1996), Metody numeryczne dla równań różniczkowych: podejście obliczeniowe , Boca Raton: CRC Press , s. 82–84, ISBN 0-8493-9433-3 .
- Włos, Ernst; Nørsett, Syvert Paul; Wanner, Gerhard (2008), Rozwiązywanie równań różniczkowych zwyczajnych I: Problemy niesztywne , Berlin, Nowy Jork: Springer-Verlag , ISBN 978-3-540-56670-0 .
- Shampine, Lawrence F. (1986), „Niektóre praktyczne formuły Runge-Kutta”, Matematyka obliczeniowa , American Mathematical Society, 46 (173): 135–150, doi : 10,2307/2008219 , JSTOR 2008219 .
Dalsza lektura
- Engstler, C. i Lubich, C. (1997). MUR8: wielostopniowe rozszerzenie metody Dormanda-Prince'a ósmego rzędu. Stosowana matematyka numeryczna, 25(2-3), 185-192.
- Calvo, M., Montijano, JI i Randez, L. (1990). Interpolant piątego rzędu dla metody Dormanda i Prince'a Runge-Kutty. Journal of Computational and Applied Mathematics , 29 (1), 91-100.
- Aristoff, JM, Horwood, JT i Poore, AB (2014). Propagacja orbity i niepewności: porównanie podejść opartych na Gaussa-Legendre'a, Dormanda-Prince'a i Czebyszewa-Picarda. Mechanika nieba i astronomia dynamiczna, 118 (1), 13-28.
- Seen, WM, Gobithaasan, RU i Miura, KT (2014, lipiec). Akceleracja GPU metody Runge Kutta-Fehlberg i jej porównanie z metodą Dormanda-Prince'a. W AIP Conference Proceedings (t. 1605, nr 1, s. 16–21). AIP.