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=0.3678794] n  t u n exp(  )  u n 1010 -3 0.348671.920  10 -2 10 2 10 -4 0.366031.847  10 -3 10 3 10 -5 0.367691.840  10 -4 10 4 10 -6 0.367841.839  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 01 0.05-4 0.18 0.15-16 0.2256 0.25-1024 0.34096 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) 0246810 0.0 0.2 0.4 0.6 u ( t ) dokładny  t=0.5  t=0.9  t=1 : wszędzie 0 0246810 -4 -2 0 2 4 6 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 01 0.05-4 0.18 0.15-16 0.2256 0.25-1024 0.34096 jawny Euler niejawny Euler t n u n e(t n ) 010 0.05.166(6)-.15992 0.1.027(7)-.02773 0.15.004(629)-.00462 0.2.0007716 0.25.0001286 0.3.00002143 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 ) 010 0.05.166(6)-.15992 0.1.027(7)-.02773 0.15.004(629)-.00462 0.2.0007716 0.25.0001286 0.3.00002143

19 iteracja funkcjonalna przykład dt=0.01 (1,0,1,0,1,0) dt=0.001 1, 0.9, 0.91, 0.909, 0.9091, 0.90909, 0.909091,... 0.90909090909 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.001 1, 0.9, 0.91, 0.909, 0.9091, 0.90909, 0.909091,... 0.90909090909 w=0 w=1 0.8,0.68, 0.608, 0.5648, 0.53888, 0.5233, 0.51399, 0.50839, 0.50503, 0.503, 0.5018, 0.5010, 0.50065, 0.50039,..., 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,0.4998 w=0.2

23 dt=0.01 (1,0,1,0,1,0) dt=0.001 1, 0.9, 0.91, 0.909, 0.9091, 0.90909, 0.909091,... 0.90909090909 w=0 w=1 0.8,0.68, 0.608, 0.5648, 0.53888, 0.5233, 0.51399, 0.50839, 0.50503, 0.503, 0.5018, 0.5010, 0.50065, 0.50039,..., 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,0.4998 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, 0.1666677, 0.1666677 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): 0.80000 0.78297 0.78300 0.78300

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 0.80000 0.78312 0.78301 0.78300 dokładna pochodna 0.80000 0.78297 0.78300 0.78300 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/2 0.80000 0.78367 0.78303 0.78301 0.78300 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 0.80000 0.78297 0.78300 0.78300 pochodna brana z punktu t n-1, u n-1 0.80000 0.78297 0.78300 0.78300 bez różnicy! dt=0.5 iterowana 0.8 0.6857 0.6937 0.6937 z poprzedniego kroku 0.8 0.6857 0.6950 0.6935 0.6938 0.6937 dt=1 iterowana 0.8 0.4 0.5333 0.5523 0.5527 0.5527 stara 0.8 0.4 0.8 0.4 0.8 wolniej brak zbieżności  iteracja Newtona z pochodną liczoną w poprzednim kroku (nieiterowaną) w mianowniku: 1-dt(2u-1) stara: 0.94, doiterowana 0.9434 stara: 0.7 doiterowana: 0.806 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: 1.1331] 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, 0.3125, 0.34375, 0.328125, 0.33593, 0.33203, 0.333984,...,0.333333 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 00000 1/2 000 0 00 10010 1/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 1 2 3 4 5 6 7 8 minimalna liczba odsłon 1 2 3 4 6 7 9 11 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<tol { tn:=tn+  t n:=n+1 (oznacza akceptację wyniku) }  t:=(S tol /E) 1/(p+1)  t do { } while ( t<T) symulacja ustawiająca krok czasowy może wyglądać np. tak: u 0 = warunek początkowy t 0 =0 n=1

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

77 u(0)=0 proste równanie traktowane jawnym schematem Eulera

78 niech  >> 0 szybkozmienna składowa wolnozmienna  prosty problem nieco skomplikujemy

79 rozwiązanie  krok dt=0.02 jest bardzo drobny w porównaniu ze skalą zmienności składowej parabolicznej

80 rozwiązanie dokładne dt=0.019 dt=0.02 dt=0.021  krok dt=0.02 okazuje się zbyt długi gdy włączyć składową szybkozmienną nawet tam, gdy znika ona z rozwiązania

81 rozwiązanie dokładne dt=0.019 dt=0.02 dt=0.021  część szybkozmienna gaśnie szybko, ale w schemacie jawnym Eulera nakłada ograniczenie na krok czasowy : u’=-  u  =100  dt<0.02, gdy szybkozmienna składowa zaniknie dt jest bardzo mały w porównaniu do skali zmienności u(t)

82  t Re( )  t Im ( ) 1  t Re( )  t Im ( ) -2 1 metoda Eulera jawna niejawna metoda Eulera regiony stabilności metod Eulera w metodzie niejawnej problemu ze stabilnością bezwzględna nie ma...

83 niejawna metoda Eulera: zastosowanie do problemu sztywnego dokładny dt=0.02 dt=0.04 rozwiązania są stabilne i dokładne dla dużych t nawet gdy dt duże dla małych t można wstawić mniejsze dt, potem krok zwiększyć

84 Problemy sztywne (drętwe) (stiff, stiffness) Problem jest praktyczny i ścisłej definicji, która byłaby użyteczna, nie ma. Jedna z możliwych: problem jest sztywny, gdy stosując schemat jawny musimy przyjąć krok czasowy bardzo mały w porównaniu ze skalą zmienności funkcji. RRZ jest problemem sztywnym gdy: 1.Problem jest charakteryzowany bardzo różnymi skalami czasowymi 2.Stabilność bzwz nakłada silniejsze ograniczenia na krok czasowy niż dokładność. 3.Metody jawne się nie sprawdzają. niech  >> 0 szybkozmienna składowa wolnozmienna

85 Problemy sztywne (drętwe) (stiff) Ogólna postać układu równań pierwszego rzędu wektor R n fcja R  R n  R Tylko niekiedy można podać rozwiązanie w zamkniętej formie analitycznej. Można, np. dla jednorodnego problemu liniowego problem najczęściej spotykany dla układ równań różniczkowych opisujących sprzężone procesy o bardzo różnych skalach czasowych

86 gdzie np. problem rozpadu promieniotwórczego Izotop 2 o stałej rozpadu 2 rozpada się promieniotwórczo na inny izotop 1 o stałej rozpadu 1 c j liczone z warunku początkowego y 1 (0)=0 y 2 (0)=1 dla niezdegenerowanych wartości własnych problemy sztywne wartości własne – 1, – 2 rozłożyć warunek początkowy na wektory własne

87 problemy sztywne gdy duża rozpiętość między minimalną a maksymalną wartością własną | max / min |>>1: wektor własny który odpowiada największej wartości własnej wygaśnie najprędzej, ale (dla metod jawnych) pozostawi najsilniejsze ograniczenie dla kroku czasowego (np. Euler, RK2 dt<2/| max |) jesteśmy zmuszeni przyjąć malutki krok w porównaniu z przebiegiem rozwiązania (w przeciwnym wypadku eksplozja) duże różnice skal czasowych

88 podobny do poprzedniego problem sztywny z liniowego równania drugiego rzędu o bliskich współczynnikach następny przykład: wartości / wektory własne: -1 / [-1,1] T -1000 / [1,-1000] T bardzo różne skale czasowe u’’+1001u’+1000u=0

89 szczególnie dotkliwy przypadek: równanie niejednorodne (bez rozwiązania analitycznego) Rozwiązanie będzie miało postać: stan przejściowy (wszystkie zgasną) stan ustalony wolnozmienny Na czym polega problem? : Rozwiązując problem numerycznie metodą jawną (Euler, RK2) musimy przyjąć krok czasowy  t < 2/| _max| aby uniknąć eksplozji rozwiązań nawet gdy wszystkie wyrazy z powyższej sumy w rozwiązaniu znikają problemy sztywne załóżmy, że wartości własne A są ujemne

90 y 2 (0)=1 y 1 (0)=0 1 =1/10 2 =1/10 000 bardzo wolno się rozpada [taka i większa rozpiętość lambd typowa również dla reakcji chemicznych spotykana również dla układów elektrycznych] y 2 – izotop matka wolno rozpadająca się na y 1 y 1 – izotop szybko rozpadający się, niejednorodność: dodatkowo pewna ilość jest w stałym tempie doprowadzana z zewnątrz przy zaniedbywalnej wielkości 2 y 1 =0.5 spełnia pierwsze równanie

91 tol=0.001 t t tt automatyczna kontrola kroku czasowego dla jawnego RK2 z krokiem czasowym ustawianym przez ekstrapolację Richardsona tol=0.00001 w obydwu przypadkach  t tylko chwilowo przekracza krytyczną wartość 2/(1/10)=20 zęby: zaakceptowane błędy y y t 1 =1/10 2 =1/10 000

92 RK4 2.78 / 1

93 Wzór trapezów stały krok, bardzo dłuuugi stały  t=200 nic złego się nie dzieje ze stabilnością w stanie „ustalonym” Zastosujmy metodę A-stabilną = wzór trapezów (p=2) t y

94 Wzór trapezów i krok automatycznie dobierany przez ekstrapolację Richardsona tol=0.01 kropki -tam gdzie postawiony krok Krok czasowy – zmienność 4 rzędów wielkości. raptem 10 kroków i załatwione! zamiast 10 4 kroków RK4 t t y y

95 trapezy (najdokładniejsza metoda A-stabilna spośród wielokrokowych) tt maksymalnie parę tysięcy metoda trapezów: jako A-stabilna radzi sobie nieźle z doborem kroku czasowego w problemach sztywnych – ale jest stosunkowo mało dokładna dokładniejsza A-stabilna pozwoliłaby stawiać jeszcze dłuższe kroki niestety = dokładniejszej A-stabilnej tej w klasie metod (liniowe wielokrokowe) nie ma dlatego : niejawne metody RK (jednokrokowe, nieliniowe) poziom jawnych RK t y t z tolerancją 0.00001

96 trapezy z tolerancją 0.00001 (najdokładniejsza metoda A-stabilna spośród wielokrokowych) niejawna dwustopniowa metoda RK (rzędu 4) z tolerancją 0.00001 (A-stabilna) tt tt maksymalnie parę tysięcy maksymalnie kilkadziesiąt tysięcy t t tt y y

97


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