Pobieranie prezentacji. Proszę czekać

Pobieranie prezentacji. Proszę czekać

Jawny schemat Eulera Czy błąd całkowity maleje gdy  t maleje ? Czy maleje do zera? eksperyment numeryczny problem początkowy: u’= u, u(0)=1 z rozwiązaniem.

Podobne prezentacje


Prezentacja na temat: "Jawny schemat Eulera Czy błąd całkowity maleje gdy  t maleje ? Czy maleje do zera? eksperyment numeryczny problem początkowy: u’= u, u(0)=1 z rozwiązaniem."— Zapis prezentacji:

1 Jawny schemat Eulera Czy błąd całkowity maleje gdy  t maleje ? Czy maleje do zera? eksperyment numeryczny problem początkowy: u’= u, u(0)=1 z rozwiązaniem dokładnym u(t)=exp( t)   t=0.001 dokładny jawny Euler e (błąd globalny) = dokładny - numeryczny

2 rząd zbieżności (dokładności) określa jakość metody: jak szybko błąd globalny dla chwili T zmierza do zera w funkcji  t jawna metoda Eulera = pierwszy rząd dokładności O(  t) jest to minimalny rząd dokładności dla użytecznej metody zmniejszajmy krok czasowy, jaki wynik w chwili t=0.01 ? [1/e= ] n  t u n exp(  )  u n     10 -5

3 Definicja: Metody różnicowa jest zbieżna jeśli błąd globalny znika do zera w chwili T gdy z  t do 0 zbieżność a błędy zaokrągleń (skończona dokładność arytmetyki zmiennoprzecinkowej)

4 błędy zaokrągleń a zbieżność pojedyncza precyzja: 32 bity podwójna : 64 bity arytmetyka 21 – bitowa do tej pory zakładaliśmy, że błędy zaokrągleń nie ma (że arytmetyka dokładna) arytmetyka zmiennoprzecinkowa nie jest dokładna. błąd minimalny zmniejszanie kroku czasowego nie poprawi już wyniku

5 błędy zaokrągleń a metody różnicowe rozwiązanie równania różniczkowego w chwili t n rozwiązanie równania różnicowego z dokładną arytmetyką rozwiązanie uzyskane z arytmetyką skończonej dokładności błąd całkowity błąd globalny (jak wcześniej zdefiniowano) błąd zaokrąglenia oszacowanie od góry błędu całkowitego

6 błąd zaokrągleń rzędu liczby wykonanych kroków, czyli 1/dt błąd globalny dla schematu Eulera błędy zaokrągleń a metody różnicowe oszacowanie od góry błędu całkowitego optymalny krok czasowy remedium: używać się schematów o wyższym rzędzie zbieżności niż pierwszy błędy zaokrągleń dają o sobie znać gdy wykonamy zbyt wiele kroków dt błąd

7 Definicja: Metody różnicowa jest zbieżna jeśli błąd globalny znika do zera w chwili T gdy z  t do 0 błąd zaokrągleń błąd globalny dla schematu Eulera błędy zaokrągleń a metody różnicowe oszacowanie od góry błędu całkowitego optymalny krok czasowy błąd całkowity błąd globalny błąd zaokrąglenia uwaga: definicja zbieżności dotyczy błędu globalnego a nie całkowitego

8 Wróćmy do eksperymentu numerycznego i zwiększmy krok czasowy do  t=0.05 do bezwzględnej stabilności zasygnalizować sztywność (do której powrócimy) wsteczny Euler sposoby iteracji dla wstecznego Eulera problem początkowy: u’=-100u, u(0)=1 z rozwiązaniem dokładnym u(t)=exp(  t) t n u n iteracja się rozbiega  wniosek: wyniki metody zbieżnej mogą eksplodować dla zbyt dużego kroku czasowego

9 bezwzględna stabilność schematu różnicowego * schemat różnicowy dla du/dt = f (dla danego f) i dla danego kroku czasowego jest bezwzględnie stabilny jeśli kolejne generowane przez niego wartości pozostają skończone. stabilność bezwzględna: określana zazwyczaj dla autonomicznego problemu liniowego bezwzględna stabilność jawnej metody Eulera wsp. wzmocnienia wyniki będą skończone, jeśli

10 region bezwzględnej stabilności metody: zbiór par : krok czasowy  t oraz zespolone wartości  dla których metoda jest bezwzględnie stabilna region bezwzględnej stabilności jawnej metody Eulera: z=  t  t Re( )  t Im ( ) zbiór punktów odległych od (-1,0) o nie więcej niż 1 koło o środku w (-1,0) i promieniu 1 niestabilność bezwzględna metody dla prawej połowy p. Gaussa = nic dziwnego rozwiązania dokładne eksploduje do nieskończoności gdy t . -2 1

11 jawna metoda Eulera jest bezwzględnie stabilna jeśli |1+  t|  1 czyli dla rzeczywistego <0 :  t  -2/ Weźmy = -1, u(0)=1, rozwiązanie u(t)=exp(-t), warunek stabilności bzwz:  t  2 Przepis Eulera: u n+1 =u n (1-  t) u ( t ) dokładny  t=0.5  t=0.9  t=1 : wszędzie u ( t )  t=1.2  t=2  t=2.5 uwaga: rozwiązanie bezwzględnie stabilne (np.  t=1 lub  t=2) może być bardzo niedokładne lub wręcz - jakościowo złe = tutaj stałe i niemonotoniczne odpowiednio tt

12 pozbyć się ograniczenia na krok czasowy: niejawna metoda Eulera metoda jawna.... niejawna jawna metoda Eulerafunkcjonuje jak równanie nieliniowe (funkcjonuje jak podstawienie) „metoda odważna”„metoda ostrożna” zmiana u zgodna z prawą stroną w punkcie docelowym

13 niejawna metoda Eulera: problem początkowy: u’=-100u, u(0)=1 z rozwiązaniem dokładnym u(t)=exp(  t) t n u n jawny Euler niejawny Euler t n u n e(t n ) (6) (7) (629) itd.. exp(-100 t n ) gaśnie znacznie szybciej niż 1/6 n mało dokładne, ale zawsze to lepiej niż eksplodująca oscylacja jawnego Eulera

14 niejawna metoda Eulera: region bezwzględnej stabilności  t Re( )  t Im ( ) 1 rejon bezwzględnej stabilności: dopełnienie pustego koła o środku w (1,0) i promieniu 1

15  t Re( )  t Im ( ) 1  t Re( )  t Im ( ) -2 1 metoda Eulera jawna niejawna metoda Eulera regiony stabilności metod Eulera

16  t Re( )  t Im ( ) 1 niejawna metoda Eulera: region bezwzględnej stabilności Re( )<0 : niejawny Euler bezwzględnie stabilny dla dowolnego kroku czasowego takie metody: tzw. A-stabilne dla Re(  poza kołem metoda Eulera jest bezwzględnie stabilna mimo, że rozwiązania równania różniczkowego są niestabilne (patrz wyżej) w tym obszarze metoda jest nadstabilna daje skończone wartości, mimo że rozwiązania dokładne dąży do nieskończoności bezwzględna stabilność nie oznacza dobrej dokładności. W regionie stabilności dla Re(  błędy będą rosły w nieskończoność.

17 jak rozwiązać, gdy nie można rozwikłać równania (f nieliniowe względem u) lub gdy f nieznane w formie wzoru 1)iteracja funkcjonalna iterować do zbieżności jeśli się zbiegnie u  =u  -1 i mamy rozwiązanie równania nieliniowego

18 problem początkowy: u’=-100u, u(0)=1, dt=0.05 z rozwiązaniem dokładnym u(t)=exp(  t) iteracja funkcjonalna przykład 1, -4, 21, -104, 521, -2604,... kolejne oszacowania: iteracja się nie zbiega  cały zysk z niejawności stracony bo nie potrafimy wykonać kroku t n u n e(t n ) (6) (7) (629)

19 iteracja funkcjonalna przykład dt=0.01 (1,0,1,0,1,0) dt= , 0.9, 0.91, 0.909, , , , iteracja funkcjonalna się zbiega gdy  t max|f u (t,u)|  1 (w otoczeniu u) iteracja się nie zbiega . zmniejszymy krok dt, zaczynając iterację od u n-1 będziemy bliżej rozwiązania. Może się zbiegnie. u’=-100u,  t 100 < 1 uwaga: w tej sytuacji jawny Euler jest bezwzględnie stabilny dla 2-krotnie większego kroku!  dla jawnego Eulera  t 100 < 2] Z iteracją funkcjonalną stosować wstecznego Eulera nie ma sensu.

20 iteracja funkcjonalna – zapewniamy zbieżność modyfikując przepis iteracyjny zamiast: „mieszając” nowe i stare rozwiązania z wagą w, 0  w  1 jeśli się zbiegnie – to do rozwiązania schematu niejawnego 1, -4, 21, -104, 521, -2604,... problem początkowy: u’=-100u, u(0)=1, dt=0.05 z rozwiązaniem dokładnym u(t)=exp(  t) oscylująca rozbieżność - stłumimy ją: Zabieg podobny do “podrelaksacji”

21 problem początkowy: u’=-100u, u(0)=1, dt=0.05 z rozwiązaniem dokładnym u(t)=exp(  t) iterujemy u(dt) w=0.1 w=0.2 w=0.3 wybierając w odpowiedni sposób wagę w: potrafimy ustabilizować iterację i doprowadzić ją do zbieżności.

22 dt=0.01 (1,0,1,0,1,0) dt= , 0.9, 0.91, 0.909, , , , w=0 w=1 0.8,0.68, 0.608, , , , , , , 0.503, , , , ,..., 1/2 w=.2 (optymalne dla dt=0.05) tutaj optymalne byłoby w=1/2 (zbieżność w jednej iteracji) dla w=.7 0.3,0.58,0.468,0.512,0.4948,0.5003, w=0.2

23 dt=0.01 (1,0,1,0,1,0) dt= , 0.9, 0.91, 0.909, , , , w=0 w=1 0.8,0.68, 0.608, , , , , , , 0.503, , , , ,..., 1/2 w=.2 (optymalne dla dt=0.05) tutaj optymalne byłoby w=.5 (zbieżność w jednej iteracji natychmiastowa) dla w=.7 0.3,0.58,0.468,0.512,0.4948,0.5003, w=0.2 Problem: 1) w trzeba odpowiednio dobrać (mniejszy krok czasowy, w bliższe 1) 2) dla źle dobranego w iteracja może być wolnozbieżna Proces optymalizacji (np. dynamicznej) w może być kłopotliwy.

24 Na szczęście nie jesteśmy skazani na iterację funkcjonalną 2)metoda Newtona-Raphsona szukamy zera równania nieliniowegoF(x) F(x n +  x)=F(x n )+  x F’(x n ) F(x n +  x)=0 x n+1 =x n -F(x n )/F’(x n )

25 2)metoda Newtona-Raphsona szukamy zera równania nieliniowego F(x n +  x)=F(x n )+  x F’(x n ) F(x n +  x)=0 x n+1 =x n -F(x n )/F’(x n )

26 niejawny schemat Eulera z metodą Newtona-Raphsona, zastosowanie problem początkowy: u’=-100u, u(0)=1 z rozwiązaniem dokładnym u(t)=exp(  t) kolejne przybliżenia:  t=0.05 (jawny Euler stabilny bezwzględnie dla  t <0.02) 1, , zbieżność w jednej iteracji - f jest liniowa w u zakres zbieżności: w praktyce  t znacznie większy niż w iteracji funkcjonalnej ale: niedostępne proste oszacowane przedziału zbieżności w praktyce iteracja Newtona – szybsza i szerzej zbieżna niż iteracja funkcjonalna

27 niejawny schemat Eulera z metodą Newtona-Raphsona, zastosowanie dla problemu nieliniowego problem początkowy: dla równania: u’=u(u-1)

28 czerwone niejawny Euler z krokiem  t=0.1 u(0)=0.8 iteracja dla u(  t) ze startem w u(0):

29 niejawny schemat Eulera z metodą Newtona-Raphsona gdy przepis funkcyjny nieznany (np. programujemy metodę dla dowolnego f ) można szacować z ilorazu różnicowego (poniżej centralny = dokładnie różniczkuje parabole) cena zastąpienia dokładnej pochodnej ilorazem różnicowym? przy osiągniętej zbieżności - nie zmieni rozwiązania! może tylko spowolnić iterację! dla naszego przykładu u’=u(u-1) centralny iloraz różnicowy zadziała dokładnie dla dowolnego du żeby przykład był ciekawszy: policzmy pochodną z wstecznego ilorazu różnicowego

30 dokładna pochodna u’=f(u)=u(u-1) metoda Newtona dla pochodnej f liczonej numerycznie w każdej iteracji: u(0)=0.8, pierwszy krok t=  t: iloraz wsteczny du=u/10 iloraz wsteczny du=u/ numeryczne liczenie pochodnych w każdej iteracji może być kosztowne przybliżenie w liczeniu pochodnej nie zmienia wyniku do którego iteracja zbiega bo: x n+1 =x n -F(x n )/F’(x n ) nieco spowalnia iterację w praktyce można np. wstawić tutaj u n-1 można również używać oszacowania pochodnej w wielu kolejnych iteracjach odnawiać pochodną gdy iteracja zwalnia

31 dla naszego przykładu: f(u)=u(u-1) z dt=0.1 iterowana pochodna pochodna brana z punktu t n-1, u n bez różnicy! dt=0.5 iterowana z poprzedniego kroku dt=1 iterowana stara wolniej brak zbieżności  iteracja Newtona z pochodną liczoną w poprzednim kroku (nieiterowaną) w mianowniku: 1-dt(2u-1) stara: 0.94, doiterowana stara: 0.7 doiterowana: stara 0.4 doiterowana 0.89 zamiast

32 t u(t) f(t,u) tt [t,u(t)] dokładne [t+  t,u(t+  t)] jawny schemat Eulera [globalny błąd O(  t)] t u(t) f(t,u) tt [t+  t,u(t+  t)] niejawny schemat Eulera [globalny błąd O(  t)] t u(t) f(t,u) tt [t,u(t)] dokładne [t+  t,u(t+  t)] przesunięcie wyliczane na podstawie średniej arytmetycznej z chwil t i t+  t [wzór trapezów]

33 dokładność wzóru trapezów a jawnego schematu Eulera: eksperyment Równanie: Warunek początkowy: u 1 =u(t 1 =0)=1 Rozwiązanie: Punkt t 2 =0.5 u 2 = ? [dokładnie: ] Euler jawny jeden krok: u 2 =u 1 +  t t 1 u 1 =u 1 = 1 jawny Euler u2u2 wzór trapezów u 2 =u 1 +(t 1 u 1 +t 2 u 2 )  t /2 = u 1 +t 2 u 2  t /2 u 2 := u 1 +u 2 /8 iteracja funkcjonalna wynik 8/7 TR wygląda na bardziej dokładny od E: niejawny Euler: 4/3=1.333 (pokazać) nieco gorzej niż jawny

34 Oszacować błąd lokalny wzoru trapezów 1. rozw. Taylora wstecz 2. dla dowolnej funkcji ciągłej f(t)=f(t+  t)+O(  t) (wstawimy, rząd błędu pozostanie trzeci) 3. Rozwiązać na u(t+  t) Euler miał rząd obcięcia  t 2 pozbyć się go.

35 3. Rozwiązać na u(t+  t) [przepisane] 4. Uśrednić z rozwinięciem Taylora do przodu 5. Wynik 6. Korzystamy z równania jawny i niejawny Euler – lokalny błąd rzędu drugiego (rząd dokładności 1) wzór trapezów – lokalny błąd rzędu trzeciego (rząd dokładności 2)

36 stabilność bezwzględną wzoru trapezów problem modelowy: WP: u(t=0)=1. rozwiązanie u=exp( t) zbiór punktów na p. Gaussa, które są nie dalej od (-2,0) niż od (0,2)

37 Wniosek: dla <0 wzór trapezów bezwzględnie stabilny dla dowolnego kroku czasowego ! A-stabilny druga bariera Dahlquista: maksymalny rząd dokładności metody A-stabilnej =2 schemat trapezów jest najdokładniejszą metodą A-stabilną spośród liniowych metod wielokrokowych Implementowana np. w SPICE.  t Re( )  t Im ( ) region bzwz. stabilności wzoru trapezów

38  t Re( )  t Im ( ) region bzwz. stabilności Eulera: koło o promieniu 1 i środku (-1,0)  t Re( )  t Im ( ) region bzwz. stabilności wzoru trapezów  t Re( )  t Im ( ) 1 niejawna metoda Eulera: region bezwzględnej stabilności  =0,1,1/2 – Euler jawny, niejawny i wzór trapezów odpowiednio w wykładzie na temat niejawnych formuł RK zobaczymy, że dokładność rzędu 2 uzyskana tylko dla  =1/2 region stabilności ? między metodami można przechodzić w sposób ciągły

39 problem początkowy: u’=-100u, u(0)=1 z rozwiązaniem dokładnym u(t)=exp(  t) iteracja funkcjonalna a wzór trapezów  t=0.01 = graniczny dla zbieżności IF dla niejawnego Eulera 1,0, 0.5, 0.25, 0.375, , , , , , ,..., niestety iteracja funkcjonalna dla  t=0.02 już przestaje być zbieżna (+1,-1,+1,-1,itd..) wzór trapezów zwiększa zakres zbieżności iteracji dwukrotnie (wyraz podkreślony stabilizuje iteracje) ale to wciąż mało metoda Newtona-Raphsona pozostaje wzór trapezów = używa prawej strony z poprzedniego kroku czasowego z wagą 0.5 – co nieco stabilizuje iterację.

40 jawne metody różnicowe wysokiej dokładności ?? 1) 2) 3) Poznane metody: jednokrokowe (1-3), jawna (1) i niejawne (2-3), pierwszego (1-2) i drugiego (3) rzędu dokładności Metody (2-3) A stabilne, metoda (2) nadstabilna poznane metody: )

41 rozwinięcie Taylora ponownie: jawne metody jednokrokowe wyższego rzędu dokładności niż jawny Euler u’=f(t,u), u(0)=u 0 liczymy pochodne: z RR. RR różniczkujemy po czasie czyli podobnie Zależnie od tego gdzie się zatrzymamy uzyskamy błąd lokalny zadanego rzędu

42 Zależnie od tego gdzie się zatrzymamy uzyskamy błąd lokalny zadanego rzędu np. pomysł: mało przydatny w praktyce ze względu na konieczność analitycznego wyliczenia pochodnych cząstkowych f. Dla metod ogólnych: nie powinniśmy liczyć, że f jest dane wzorem

43 podejście alternatywne: inspirowane całkowaniem prawa strona = funkcja tylko t z rozwiązaniem: t n-1 t n jeśli zastąpimy całkę kwadraturą prostokątów z wywołaniem funkcji w lewym końcu przedziału u(t n )=u(t n-1 )+  t f(t n-1 ) + O(  t 2 ) - rozpoznajemy jawny schemat Eulera t n-1 t n kwadratura prostokątów z wywołaniem funkcji w prawym końcu przedziału u(t n )=u(t n-1 )+  t f(t n ) + O(  t 2 ) - rozpoznajemy niejawny schemat Eulera t n-1 t n kwadratura trapezów u(t n )=u(t n-1 )+  t f(t n )/2+  t f(t n-1 )/2 + O(  t 3 ) - rozpoznajemy niejawny schemat trapezów

44 t n-1 t n-1/2 t n wzór prostokątów z wywołaniem funkcji w środku przedziału (dokładny dla funkcji liniowej, znoszenie błędów) uogólniony wzór na równanie równania u’=f(t,u) reguła punktu środkowego ale - skąd rozwiązanie w środku przedziału? np. ze schematu Eulera: błąd lokalny Eulera O(  t 2 ), czy reguła punktu środkowego zachowa trzeci rząd błędu lokalnego?

45 sprawdźmy to rozważając bardziej ogólny schemat: obliczone gdzieś w środku przedziału (t n-1,t n ) z odpowiednio oszacowanym rozwiązaniem u dla tego t (wzór typu Eulera) jest to jawny dwustopniowy schemat Rungego-Kutty. potencjalna wyższa dokładność od jawnego Eulera kosztem dwóch wywołań f (podobnie jak we wzorze trapezów, ale RK: jawny) reguła punktu środkowego:należy do tej klasy z b 1 =0, b 2 =1, c=1/2, a =1/2 b1,b2,a,c – parametry metody –jakie muszą być aby RK2 (2 = rząd dokładności) obliczone na początku kroku

46 Jawne metody Rungego-Kutty dwustopniowe: wybór parametrów jak dobrać b 1,b 2,c,a ? – metodą brutalnej siły - tak aby rozwinięcie Taylora metody zgadzało się z rozwinięciem Taylora dokładnego równania różniczkowego do wyrazów tak wysokiego rzędu jak to tylko możliwe przypominamy: rozwinięcie Taylora dla funkcji dwóch zmiennych u’=f(t,u) wstawiamy rozwiązanie dokładne u(t n ), u(t n-1 ) do (*) i rozwijamy względem t n-1, u n-1 (*)

47 to trzeba rozwinąć (wszystko liczone w t n-1,u n-1 ) wstawmy k 2 do rozwinięcia. Zachowajmy człony do  t 2: rozwinięcie Taylora rozwiązania dokładnego uzyskaliśmy kilka slajdów wcześniej czyli: rząd  t: b 1 +b 2 =1, rząd  t 2 : b 2 c=b 2 a=1/2 czyli reguła punktu środkowego: b 1 =0, b 2 =1, c=1/2, a =1/2 ma błąd lokalny rzędu O(  t 3 ) mamy metodę równie dokładną co wzór trapezów – ale jawną (co ma swoje zalety i wady) Wyższy rząd błędu do uzyskania tylko w metodach o większej niż 2 liczbie stopni

48 cztery parametry i trzy równania b 1 +b 2 =1 b 2 c=b 2 a=1/2- pozostaje swoboda w wyborze parametrów reguła punktu środkowego RK2 albo (przesunięty indeks) t u(t) tt [t,u(t)] dokładne [t+  t/2,y(t+  t/2)] 1) Szacujemy metodą Eulera punkt środkowy [t+  t/2,u(t+  t/2)] korzystając z f(t,u) w lewym końcu przedziału 2) Wykorzystujemy wartość f w tym punkcie do wyliczenia zmiany y na całym przedziale  t dwa zastosowania jawnego schematu Eulera b 1 =0, b 2 =1, c=1/2, a =1/2 oszacowanie wstępne w punkcie pośrednim (błąd lokalny rzędu drugiego) oszacowanie docelowe (błąd lokalny oszacowania: rzędu trzeciego)

49 inny wybór: b 1 =b 2 =1/2, wtedy musi a=c=1 RK punktu środkowego:b 1 +b 2 =1, b 2 c=b 2 a=1/2 metoda podobna do wzoru trapezów (ale jawna) t u(t) tt [t,u(t)] dokładne 1) Szacujemy metodą Eulera punkt końcowy [t+  t,u(t+  t)] korzystając z f(t,u) w lewym końcu przedziału 2) krok z t do t+  t wykonujemy biorąc średnią arytmetyczną z f na początku i końcu metoda RK2 trapezów

50 punkt środkowy b2=1, b1=0 [b1+b2]=1 czy ma sens b1=1, b2=0 ? dla błędu lokalnego O(  t 3 ) potrzeba aby, rząd  t: b 1 +b 2 =1, rząd  t 2 : b 2 c=b 2 a=1/2

51 Metody Rungego-Kutty, forma ogólna są to metody jednokrokowe, czyli można zapisać: metoda RK w s-odsłonach (stage) (unikamy słowa „krok”) z wzory przedstawiane w formie tabel Butchera c A b

52 czasem zapisywane w postaci: tutaj U i – przybliżone rozwiązanie w chwili t n-1 +c i  t zazwyczaj niższej dokładności niż rozwiązanie końcowe Metody Rungego-Kutty, forma ogólna

53 jawne metody Rungego-Kutty a ij =0 dla j  i jawne: obcięte sumowanie: odsłona i-ta wyliczana na podstawie tylko wcześniejszych odsłon historycznie wszystkie RK były jawne, uogólnienie okazało się przydatne dla problemów sztywnych

54 Wyprowadzanie formuł RK (a,b,c) 1)Rozwijamy rozwiązanie dokładne w szereg Taylora względem t n-1 2)Podstawiamy rozwiązanie dokładne do ogólnej formy RK i rozwijamy względem t n-1 3)Wartości parametrów a,b,c uzyskujemy z porównania. zazwyczaj w sposób niejednoznaczny najbardziej popularne: jawne formuły 4-etapowe RK4: o 4-tym stopniu zbieżności (4-tym rzędzie dokładności) i 5-tym rzędzie błędu lokalnego ogólna tabela Butchera: dla jawnych RK4 c 1 =0 (dla każdej jawnej RK, zaczynamy – k 1 od wyliczenia prawej strony w kroku początkowym)

55 klasyczna formuła RK4: u(t) k1k1 k2k2 k3k3 k4k4 u’ 4 wywołania f na krok, błąd lokalny O(  t 5 ) gdy f tylko funkcja czasu RK4 redukuje się do formuły Simpsona (dokładnie całkuje wielomiany trzeciego stopnia):

56 Jawne schematy RK dla układu równań różniczkowych 2 zmienne zależne u 1, u 2, 2 prawe strony f 1, f 2 2 równania, s-odsłon (i=1,2,...,s) zapis wektorowy u n-1, u n, f, U 1, U 2,... U N są wektorami o 2 składowych

57 / /61/3 1/6 Tabela Butchera dla klasycznej jawnej RK4

58 Liczba kroków a rząd zbieżności jawnych metod RK: rząd minimalna liczba odsłon RK4 – wyjątkowo opłacalna Dlaczego RK4 najbardziej popularna: RK1 – metoda RK w jednej odsłonie b1+b2=1, przy b 1 =1, b2=0 dostaniemy jawnego Eulera warunek a*b2=c*b2 =1/2 nie będzie spełniony jawny schemat Eulera to jawna metoda RK1

59 jawny Euler RK2 trapezów tabela Butchera b 1 =b 2 =1/2, a=c=1 RK2 punktu środkowego 000 1/2 0 01

60 Szacowanie błędu lokalnego w metodach jednokrokowych Po co? 1)W rachunkach numerycznych musimy znać oszacowanie błędu 2)Aby ustawić krok czasowy tak, aby błąd był akceptowalny 3)Gdy oszacowanie jest w miarę dokładne: można poprawić wynik

61 Oszacowanie błędu lokalnego w metodach jednokrokowych wybór b 1 =0, b 2 =1, c=1/2, a =1/2 dawał RK2 punktu środkowego W każdym kroku generujemy nowy błąd w rachunkach. Znamy jego rząd. dla RK: wstawialiśmy rozwiązanie dokładne do schematu i je rozwijaliśmy w szereg T. Rozwijając do jednego rzędu wyżej z  t uzyskamy oszacowanie błędu lokalnego d n = u(t n ) - u n [przy założeniu, że u(t n-1 ) = u n-1 ] świetny wzór choć mało praktyczny

62 Oszacowanie błędu (lokalnego) w metodach jednokrokowych 1)ekstrapolacja Richardsona (step doubling) 2)osadzanie (embedding) może zależeć od t n-1 oraz u n-1, ale nie zależy od  t metodą rzędu p z chwili t n-1 wykonujemy krok do t n folia wcześniej szacowanie błędu:

63 t n-1 t n t n+1 t n-1 t n+1 tt tt  t ekstrapolacja Richardsona dwa kroki  t: dostaniemy lepsze oszacowanie u(t n+1 ) jeden krok 2  t: dostaniemy gorsze oszacowanie u(t n+1 ) szacujemy C n z porównania obydwu rozwiązań

64 błąd lokalny u(t n )-u n =d n jest: wykonujemy krok następny od t n do t n+1 1)zakładamy, że krok jest na tyle mały, że stała błędu się nie zmienia C n  C n+1 (lub, ze w jednym kroku zmienia się o O(  t)] wtedy błąd lokalny popełniony w chwili t n+1 jest d n+1  d n. 2) gdy krok mały: współczynnik wzmocnienia błędu   1 [np. du/dt=- u jawny E. (1-  t)] (błąd popełniony w kroku pierwszym nie jest istotnie wzmacniany) Przy tym założeniu: błąd po drugim kroku – suma błędów  d n +d n+1  2d n, ekstrapolacja Richardsona odchylenie wyniku numerycznego od dokładnego u(t n+1 )-u n+1 =  d n +d n+1

65 to chwili t n+1 dojdziemy z t n-1 w pojedynczym kroku 2  t t n-1 t n t n+1 t n-1 t n+1 tt tt  t chcemy poznać C n (to + znajomość p da nam oszacowanie błędu): odejmujemy niebieskie wzory tak aby wyeliminować rozwiązanie dokładne (nam niedostępne) dostaniemy gorsze oszacowanie u(t n+1 ) ekstrapolacja Richardsona

66 błąd wykonany po dwóch krokach  t wynosi więc: pierwszy wniosek: jeśli znamy rząd metody p to potrafimy go podnieść o jeden

67 ekstrapolacja Richardsona podnosimy rząd dokładności metody „algorytm”

68 Przykład: Euler po poprawce: błąd lokalny O(  t 3 ) kreski: RK2 punktu środkowego (p=2), b.lok. O(  t 3 ) ekstrapolacja Richardsona znając rząd dokładności możemy radykalnie poprawić dokładność metody przy natdatku (50 procent) numeryki r. dokładne: Euler (p=1) błąd lokalny O(  t 2 )

69 Euler RK2 RK2 z odciętym błędem ekstrapolacja Richardsona

70 Oszacowanie błędu lokalnego w metodach jednokrokowych 1)ekstrapolacja Richardsona (step doubling) 2)osadzanie (embedding) cel: szacujemy błąd lokalny metody rzędu p przy pomocy lepszej metody, np. rzędu p+1 obydwie metody szacują rozwiązanie w tych samych chwilach czasowych co daje oszacowanie błędu gorszej metody nie nadaje się do poprawiania schematu p po cóż zresztą poprawiać gdy mamy p+1

71 JAKI KROK CZASOWY SYMULACJI USTAWIĆ gdy coś ciekawego zdarza się tylko czasem ? celem szacowania błędu nie jest poprawa wyniku, (dla poprawy zawsze można  t zmienić) lecz adaptacja  t : stały krok zawsze może okazać się zbyt wielki albo zbyt mały.

72 Automatyczna kontrola kroku czasowego dla metod jednokrokowych  t(nowy)=(S tol /E) 1/(p+1)  t dla bezpieczeństwa S<1  t(nowy)=(tol/E) 1/(p+1)  t Program może sam dobierać krok czasowy w zależności od tego co dzieje się w symulacji. Szacujemy błąd lokalny E (ekstrapolacja Richardsona lub metody embedding) Chcemy utrzymać błąd na poziomie zbliżonym do parametru tol. nie większy aby zachować wymaganą dokładność, nie mniejszy aby nie tracić czasu na rachunki zbyt dokładne E=C[  t] p+1 chcemy zmienić krok odpowiednio do naszych wymagań z  t do  t(nowy) tol=C[  t(nowy)] p+1 wzór zwiększy zbyt mały krok i vice versa uwaga: błąd jest szacowany, zawsze warto dorzucić sztywne ograniczenia na  t

73 Automatyczna kontrola kroku czasowego dla metod jednokrokowych jeśli E

74 Przykład: oscylator harmoniczny używane oszacowanie błędu z RK2 Uwaga: tutaj rozwiązania nie poprawiamy przez ekstrapolacje tol=1e-2 tol=1e-3 start x2x2 V2V2 tt algorytm ustawia minimalny krok czasowy gdy zmiany prędkości lub położenia są maksymalne RK2 tolerancja błędu obcięcia tol=0.1

75 wyniki Konrada Rekiecia RK2 tol=.1 RK4 E(t) RK4 – spirala się skręca zamiast rozkręcać przy założonej tolerancji RK4 wcale nie jest dokładniejsze od RK2

76 dt... tylko pozwala stawiać dłuższe kroki


Pobierz ppt "Jawny schemat Eulera Czy błąd całkowity maleje gdy  t maleje ? Czy maleje do zera? eksperyment numeryczny problem początkowy: u’= u, u(0)=1 z rozwiązaniem."

Podobne prezentacje


Reklamy Google