Analiza numeryczna i symulacja systemów 2. Równania różniczkowe zwyczajne - cz.2 - metody Rungego-Kutty Janusz Miller
ANiSS 2014/15 - Równania różniczkowe zwyczajne cz.2 - ERK 2 Przypomnienie z poprzedniego wykładu: Mówimy o zagadnieniu początkowym, metodach sekwencyjnych Koszt Rząd Zależność kosztu od rzędu dla LMWK Zgodność, stabilność absolutna Omawiane LMWK: - wymagały stałego kroku h - zbudowane na podstawie ilorazów różnicowych i kwadratur “wstecznych” (a nie “lepszych” - centralnych)
ANiSS 2014/15 - Równania różniczkowe zwyczajne cz.2 - ERK 3 Równania różniczkowe zwyczajne Metody Rungego-Kutty 1. Zagadnienie początkowe IVP - przede wszystkim metody jawne 2. Zagadnienie brzegowe BVP (będzie w 3. części wykładu) - stosuje się także metody niejawne i kolokacyjne
ANiSS 2014/15 - Równania różniczkowe zwyczajne cz.2 - ERK 4 Metody RK - idea W metodzie jawnej / niejawnej Eulera obliczana była pochodna tylko na początku / końcu przedziału całkowania (t n, y n albo t n+1, y n+1 ). W metodach RK oblicza się średnią ważoną pochodnych obliczanych wewnątrz tego przedziału. Pierwszy pomysł (1895) - wzorowany na metodzie punktu środkowego: a przybliżane metodą Eulera. Czy błąd tego przybliżenia nie “położy” całej metody? Po rozpisaniu na etapy: zauważmy, że to “kontrowersyjne” przybliżenie jest mnożone przez h, a więc nieznacznie wpływa na dokładność końcową!
ANiSS 2014/15 - Równania różniczkowe zwyczajne cz.2 - ERK 5 Metody Rungego-Kutty (RK) Jawne metody Rungego-Kutty (explicit Runge-Kutta ERK) - rzędu s lub mniejszego, - jednokrokowe, wieloetapowe (s - etapowe). ss sssss bbbb aaac aac ac 121 1, Tablica Butchera:
ANiSS 2014/15 - Równania różniczkowe zwyczajne cz.2 - ERK 6 Metody Rungego-Kutty (RK) Przykład: najbardziej znana, klasyczna metoda Rungego-Kutty: RK4 - 4 etapowa, 4. rzędu. Tablica Butchera:
ANiSS 2014/15 - Równania różniczkowe zwyczajne cz.2 - ERK 7 Metody Rungego-Kutty Zalety i wady w stosunku do LMWK - wyższy koszt jednego kroku - dla obliczenia każdej pochodnej k i trzeba wyznaczyć wartość funkcji f, - samostartujące, - łatwość zmiany kroku - ważna dla algorytmów adaptacyjnych. Warunek zgodności (błąd maleje do zera, gdy krok h 0): stąd warunek: Obszar stabilnosci absolutnej Wielomiany stabilności absolutnej metod Rungego-Kutty pełnego rzędu Metoda jest stabilna bezwzględnie dla h jeżeli
ANiSS 2014/15 - Równania różniczkowe zwyczajne cz.2 - ERK 8 Metody RK - obszary stabilności absolutnej
ANiSS 2014/15 - Równania różniczkowe zwyczajne cz.2 - ERK 9 Metody RK - szkic obliczania współczynników a, b, c. [na podstawie P.F.Góra: Metody Rungego-Kutty Instytut Fizyki UJ 2001] Współczesne podejście (ogólne dla metod jawnych i niejawnych): Sposób obliczania rozwiązania w t n+1 zapisujemy w postaci (dla uproszczenia oznaczeń - y n oznacza tu wartość dokładną rozwiązania). Rozwijamy (względem h) w szeregi potęgowe do wyrazów rzędu O(h p+1 ) osobno lewą i prawą stronę tego równania. Zależności jakie muszą spełniać współczynniki metod RK rzędu p otrzymuje się z przyrównania wyrazów “tej samej postaci”. Powstaje nieliniowy układ równań na współczynniki a ij, b i, c i.
ANiSS 2014/15 - Równania różniczkowe zwyczajne cz.2 - ERK 10 Rozwinięcie lewej strony: Metody RK - szkic obliczania współczynników a, b, c (cd).
ANiSS 2014/15 - Równania różniczkowe zwyczajne cz.2 - ERK 11 Rozwinięcie prawej strony: Metody RK - szkic obliczania współczynników a, b, c (cd). Pamiętamy, że zatem Uwaga 1: Obliczana pochodna występuje po obu stronach =
ANiSS 2014/15 - Równania różniczkowe zwyczajne cz.2 - ERK 12 Dalsze pochodne mają coraz więcej składników, np.: Metody RK - szkic obliczania współczynników a, b, c (cd). Uwaga 2: Uwikłanie postępuje, powstają składniki nieliniowe względem współczynników a,c. itd.
ANiSS 2014/15 - Równania różniczkowe zwyczajne cz.2 - ERK 13 Korzystna okoliczność: mamy obliczyć pochodne w zerze, a po podstawieniu h=0 otrzymujemy wzory w postaci jawnej (ale nie uwalniamy się od nieliniowości): Metody RK - szkic obliczania współczynników a, b, c (cd). Funkcje f i jej pochodne obliczamy w punkcie (t n,y n ).
ANiSS 2014/15 - Równania różniczkowe zwyczajne cz.2 - ERK 14 Ostatnia faza to porównanie wyrazów rozwinięć lewej i prawej strony z tymi samymi potęgami h i iloczynami funkcji f i jej pochodnych. Dla p=1 otrzymujemy równanie Metody RK - szkic obliczania współczynników a, b, c (cd). czyli tj. warunek zgodności. Dla p=2:
ANiSS 2014/15 - Równania różniczkowe zwyczajne cz.2 - ERK 15 Metody RK - szkic obliczania współczynników a, b, c (cd). Dla p=3:Dla p=4:
ANiSS 2014/15 - Równania różniczkowe zwyczajne cz.2 - ERK 16 Metody RK - rząd Liczba związków rośnie ze wzrostem żądanego rzędu. Otrzymujemy układy równań nieliniowych - nie dla każdy ma rozwiązanie. Skutek: Liczba etapów s: Maksymalny osiągalny rząd p: Liczba warunków: Dlaczego RK4 jest popularny? - korzystny stosunek kosztu obliczeniowego (liczby etapów ) do błędu (a właściwie do rzędu). Częściej stosuje się metody “sprzed progu utraty rzędu”.
ANiSS 2014/15 - Równania różniczkowe zwyczajne cz.2 - ERK 17 Metody Rungego-Kutty (RK) Algorytmy adaptacyjne a stałokrokowe Algorytmy stałokrokowe - Użytkownik ustala długość (stałego) kroku, decydując tym samym o dokładności (błędzie) rozwiązania. Efekt - użytkownik musi przeprowadzić analizę błędu - najprostszy sposób, to powtórzyć obliczenia przy innym kroku, np. h/2. - Koszt jednego kroku: oszczędność bo nie ma analizy błędu - Koszt całego rozwiązania - mały jeżeli: - znany jest właściwy krok (dobrany do wymaganej dokładności), - wydłużenie dowolnego kroku spowodowałoby istotny wzrost błędu. Algorytmy adaptacyjne - Idea - dostosować długość każdego kroku do założonego poziomu błędu. - Zalety - „przejmuje odpowiedzialność za błąd”, - oszczędność, gdy krok trzeba zagęścić tylko lokalnie - np. stiff equations, - Należy pamiętać - nie ma gwarancji zachowania założonej dokładności, Czy metody wielokrokowe nadają się do algorytmów adaptacyjnych?
ANiSS 2014/15 - Równania różniczkowe zwyczajne cz.2 - ERK 18 Metody Rungego-Kutty (RK) - Algorytmy adaptacyjne Ekstrapolacja Richardsona Porównajmy przybliżone rozwiązania w tym samym punkcie t 0 +2h otrzymane po zastosowaniu metody RK rzędu p na dwa sposoby, tj. wykonując: 1. 2 kroki, każdy o długości h - otrzymujemy przybliżenie y 2,h, 2. 1 krok o długości 2h - otrzymujemy przybliżenie y 1,2h. W przypadku 1. błąd po 1. kroku (stała C zawiera współczynnik metody i pochodną odpowiedniego rzędu funkcji f). Błąd po 2. kroku zawiera, poza błędem lokalnym - analogicznym do e 1,h, także składową wynikającą z przeniesienia błędu e 1,h (drugi krok nie jest wykonany z dokładnego warunku początkowego y(t 0 +h ), lecz z jego przybliżenia y 1 ): Taką postać można wyprowadzić wychodząc z wzoru na różniczkę zupełną funkcji 2 zmiennch: i scałkować względem czasu aby otrzymać dy.
ANiSS 2014/15 - Równania różniczkowe zwyczajne cz.2 - ERK 19 Metody Rungego-Kutty (RK) - Algorytmy adaptacyjne Ekstrapolacja Richardsona e 1,2h = 1,2h 1,h e 2,h 1,h 2,h h h Rozwiązanie numeryczne z krokiem 2h Rozwiązanie numeryczne z krokiem h Rozwiązanie dokładne - błąd lokalny e - błąd globalny y 1,h y(t 0 +h) y 2,h y 1,2h y(t 0 +2h) t y
ANiSS 2014/15 - Równania różniczkowe zwyczajne cz.2 - ERK 20 Metody Rungego-Kutty (RK) - Algorytmy adaptacyjne Ekstrapolacja Richardsona W sumie błąd (globalny) po 2 krokach h: a błąd po jednym kroku o długości 2h (obliczony analogicznie jak e 1,h ): Mamy 2 równania z niewiadomymi: rozwiązaniem dokładnym, stałą C oraz O duże. Pomysł Richardsona: Wyrugować z 2 powyższych równań stałą C i uzyskać metodę rzędu p+1.
ANiSS 2014/15 - Równania różniczkowe zwyczajne cz.2 - ERK 21 Metody Rungego-Kutty (RK) - Algorytmy adaptacyjne Ekstrapolacja Richardsona Po wyrugowaniu stałej C otrzymujemy czyli nowe przybliżenie jest rzędu p+1 !
ANiSS 2014/15 - Równania różniczkowe zwyczajne cz.2 - ERK 22 Metody Rungego-Kutty (RK) - Algorytmy adaptacyjne Zastosowanie pomysłu Richardsona do metod RK: Mając wyniki dwóch metod można: - wyrugować stałą błędu rzędu p i uzyskać przybliżenie rozwiązania rzędu p +1, ale także: - z tych samych równań wyrugować rozwiązanie dokładne i uzyskać przybliżenie błędu rzędu p. Dodatkowe koszty obliczeniowe ? Jeżeli zastosujemy dowolną parę metod, to koszt wzrośnie ok. 2-krotnie. Propozycja Mersona (1957): używając tych samych pochodnych k i (cały koszt to obliczanie k i ) skonstruować dwie metody różnych rzędów. Tak powstała grupa metod typu włożonego (Embeded Runge-Kutta Formulas)
ANiSS 2014/15 - Równania różniczkowe zwyczajne cz.2 - ERK 23 Metody Rungego-Kutty (RK) - Metody typu włożonego metoda “osadzona”, zazwyczaj niższego rzędu, służy do oceny błędu.
ANiSS 2014/15 - Równania różniczkowe zwyczajne cz.2 - ERK 24 Metody Rungego-Kutty (RK) Przykłady jawnych metod Rungego-Kutty z osadzoną metodą niższego rzędu - ode23 Bogacki-Shampine (1989) 3. rzędu, koszt=3 (tylko 3) bo należy do grupy FSAL—first same as last, tj. k 1 w kroku następnym jest identyczne jak k 4 w kroku poprzednim. z n+1 obliczane dla oceny błędu y n+1
ANiSS 2014/15 - Równania różniczkowe zwyczajne cz.2 - ERK 25 Metody Rungego-Kutty (RK) Przykłady jawnych metod Rungego-Kutty cd. - Runge-Kutta-Fehlberg RKF45 (1969), 4. rzędu, koszt=6, - minimalizowany błąd y n+1. - jest metodą rzędu 4. bo y n+1 jest warunkiem początkowym następnego kroku. przybliżenie 4. rzędu przybliżenie 5. rzędu dla oceny błędu
ANiSS 2014/15 - Równania różniczkowe zwyczajne cz.2 - ERK 26 Metody Rungego-Kutty (RK) Przykłady jawnych metod Rungego-Kutty cd. - Dormand-Prince ode45 (DOPRI45) (1980) 5. rzędu, koszt=6 (FSAL), - minimalizowany błąd y n+1, - jest metodą rzędu 5., a nie - jak u Fehlberga - rzędu 4. przybliżenie 5. rzędu przybliżenie 4. rzędu dla oceny błędu
ANiSS 2014/15 - Równania różniczkowe zwyczajne cz.2 - ERK 27 Metody Rungego-Kutty (RK) Przykłady jawnych metod Rungego-Kutty cd. - Cash-Karp CK45 (1990), 4. rzędu, koszt=6, - szacowany błąd: y n+1 - z n+1 przybliżenie 4. rzędu
ANiSS 2014/15 - Równania różniczkowe zwyczajne cz.2 - ERK 28 Podsumowanie metod rozwiązywania zagadnienia początkowego Grupy metod - jednokrokowe, jednoetapowe - Euler - wielokrokowe, jednoetapowe - Gear, Adams-Bashforth - jednokrokowe, dwuetapowe - Heun (PECE), m. trapezowa - wielokrokowe, dwuetapowe (PECE) - Adams-Bashforth-Moulton - jednokrokowe, wieloetapowe - Runge-Kutta Algorytmy - stałokrokowe - adaptacyjne - RK, ale także wielokrokowe (Variable Step-Size Multistep Methods) np. program DGEAR w bibliotece IMSL.
ANiSS 2014/15 - Równania różniczkowe zwyczajne cz.2 - ERK 29 Podsumowanie metod rozwiązywania r.r. zwyczajnych Funkcje dostępne w MATLABie: ode45 - dobra w większości przypadków, ode23 - dobra gdy chcemy szybko otrzymać mało dokładny wynik, ode113 - polecana gdy obliczanie wartości funkcji f wymaga długiego czasu, ode 15s, ode23s, ode23tb - dla równań „stiff”, ode15s i ode113 – nie są dobre przy niegładkiej funkcji f, ode15s – ma możliwość wyboru rzędu, ode15s, ode23t – obejmuje DAE (Differential Algebraic Equations) W Symbolic Math Toolbox - implementacje 37 metod (RK, RKF, DOPRI, CK...). Dokładniejsze informacje na ogólnodostępnych stronach, np.: Dobre biblioteki „wielojęzykowe”: NAG (The Numerical Algorithms Group) IMSL Numerical Libraries (International Mathematics and Statistics Library) GSL (GNU Scientific Library)
ANiSS 2014/15 - Równania różniczkowe zwyczajne cz.2 - ERK 30 O czym nie wolno zapomnieć: Koszt obliczeniowy Mierzony liczbą obliczeń funkcji prawej strony r.r. w jednym kroku. Warto zauważyć: - wzrostowi rzędu towarzyszy wzrost kosztu, - metody wielokrokowe są mniej kosztowne od jednokrokowych, - metody niejawne są bardziej kosztowne od niejawnych (dlaczego?). Każda symulacja numeryczna jest obarczona błędem. Symulacja bez „oszacowania błędu” jest bezwartościowa. Jak w prosty (choć zawodny) sposób ocenić błąd? Powtórzyć symulację używając innej metody lub chociażby innego kroku. Stosując algorytmy stałokrokowe jesteśmy sami odpowiedzialni za wielkość błędu. Wielkość obszaru stabilności absolutnej nie przesądza o „jakości”/przydatności metody - przykład: niejawna metoda Eulera (A-stabilna) Stosując algorytmy adaptacyjne trzeba pamiętać, że: a. zadana tolerancja błędu nie jest gwarantowana, b. zadajemy wielkość błędu lokalnego, a nie globalnego (globalny zazwyczaj jest wielokrotnie większy niż lokalny).