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

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 / [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/ 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= 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 RK / 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ą

96 trapezy z tolerancją (najdokładniejsza metoda A-stabilna spośród wielokrokowych) niejawna dwustopniowa metoda RK (rzędu 4) z tolerancją (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