Metoda Bogackiego-Shampine’a

Z testwiki
Przejdź do nawigacji Przejdź do wyszukiwania

Metoda Bogackiego-Shampine’ametoda numeryczna do rozwiązywania równań różniczkowych zwyczajnych w postaci y=f(t,y) 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 k (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 f 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 y=f(t,y). Jeśli yn oznacza numeryczne rozwiązanie w chwili tn, zaś hn jest krokiem czasowym zdefiniowanym jako hn=tn+1tn, wtedy jeden krok metody Bogackiego-Shampine’a jest dany jako:

k1=f(tn,yn)k2=f(tn+12hn,yn+12hk1)k3=f(tn+34hn,yn+34hk2)yn+1=yn+29hk1+13hk2+49hk3k4=f(tn+hn,yn+1)zn+1=yn+724hk1+14hk2+13hk3+18hk4.

gdzie zn+1 jest przybliżeniem drugiego rzędu rozwiązania dokładnego. Sposób obliczania yn+1 został wybrany za Ralstonem[3]. Z drugiej strony yn+1 jest przybliżeniem trzeciego rzędu, więc różnica pomiędzy yn+1 i zn+1 może być użyta do adaptacyjnej zmiany długości kroku całkowania. Właściwość FSAL (pierwszy jak ostatni) oznacza, że k4 w danym kroku jest równa k1 w kroku następnym, stąd tylko trzy wywołania funkcji f są potrzebne w każdej iteracji.

Przypisy

Szablon:Przypisy

  1. P. Bogacki, L.F. Shampine, A 3(2) pair of Runge–Kutta formulas, Applied Mathematics Letters, vol. 2, iss. 4, 1989.
  2. L.F. Shampine, M.W. Reichelt, The Matlab ODE Suite, SIAM Journal on Scientific Computing, vol. 18, iss. 1, 1997.
  3. A. Ralston, A First Course in Numerical Analysis, McGraw-Hill, Nowy Jork, 1965.