Metoda Bogackiego-Shampine’a – metoda numeryczna do rozwiązywania równań różniczkowych zwyczajnych w postaci
zaproponowana przez Przemysława Bogackiego i Lawrence’a Shampine’a w 1989[1]. Metoda Bogackiego-Shampine’a jest metodą Rungego-Kutty trzeciego rzędu z czterema współczynnikami
(patrz dalej) z tzw. własnością pierwszy taki jak ostatni (ang. FSAL, first same as last), dzięki której w każdej iteracji funkcja
wywoływana jest trzykrotnie. Metoda ta ma wbudowaną metodę rzędu drugiego dzięki czemu możliwa jest adaptacyjna zmiana kroku całkowania. Metoda Bogackiego-Shampine’a zaimplementowana jest jako funkcja ode23
w programie MATLAB[2].
W ogólności metody niższego rzędu są bardziej odpowiednie niż algorytmy wyższego rzędu jak np. Metoda Dormanda-Prince’a (piątego rzędu) do numerycznego rozwiązywania równań różniczkowych zwyczajnych, jeśli nie jest wymagana wysoka dokładność rozwiązania przybliżonego. Bogacki i Shampine twierdzą ponadto, że zaproponowana przez nich metoda przewyższa inne metody trzeciego rzędu z osadzonym metodami rzędu drugiego.
Tabela Butchera dla metody Bogackiego-Shampine’a wygląda następująco:
0
|
1/2 |
1/2
|
3/4 |
0 |
3/4
|
1 |
2/9 |
1/3 |
4/9 |
|
|
2/9 |
1/3 |
4/9 |
0
|
|
7/24 |
1/4 |
1/3 |
1/8
|
Rozważmy równanie różniczkowe w postaci
Jeśli
oznacza numeryczne rozwiązanie w chwili
zaś
jest krokiem czasowym zdefiniowanym jako
wtedy jeden krok metody Bogackiego-Shampine’a jest dany jako:
![{\displaystyle {\begin{aligned}k_{1}&=f(t_{n},y_{n})\\k_{2}&=f(t_{n}+{\tfrac {1}{2}}h_{n},y_{n}+{\tfrac {1}{2}}hk_{1})\\k_{3}&=f(t_{n}+{\tfrac {3}{4}}h_{n},y_{n}+{\tfrac {3}{4}}hk_{2})\\y_{n+1}&=y_{n}+{\tfrac {2}{9}}hk_{1}+{\tfrac {1}{3}}hk_{2}+{\tfrac {4}{9}}hk_{3}\\k_{4}&=f(t_{n}+h_{n},y_{n+1})\\z_{n+1}&=y_{n}+{\tfrac {7}{24}}hk_{1}+{\tfrac {1}{4}}hk_{2}+{\tfrac {1}{3}}hk_{3}+{\tfrac {1}{8}}hk_{4}.\end{aligned}}}](https://wikimedia.org/api/rest_v1/media/math/render/svg/f174a3e16e0e0a19ef3e0b18cd8bd95e9c70f7e0)
gdzie
jest przybliżeniem drugiego rzędu rozwiązania dokładnego. Sposób obliczania
został wybrany za Ralstonem[3]. Z drugiej strony
jest przybliżeniem trzeciego rzędu, więc różnica pomiędzy
i
może być użyta do adaptacyjnej zmiany długości kroku całkowania. Właściwość FSAL (pierwszy jak ostatni) oznacza, że
w danym kroku jest równa
w kroku następnym, stąd tylko trzy wywołania funkcji
są potrzebne w każdej iteracji.
Przypisy
- ↑ P. Bogacki, L.F. Shampine, A 3(2) pair of Runge–Kutta formulas, Applied Mathematics Letters, vol. 2, iss. 4, 1989.
- ↑ L.F. Shampine, M.W. Reichelt, The Matlab ODE Suite, SIAM Journal on Scientific Computing, vol. 18, iss. 1, 1997.
- ↑ A. Ralston, A First Course in Numerical Analysis, McGraw-Hill, Nowy Jork, 1965.