Pobieranie prezentacji. Proszę czekać

Pobieranie prezentacji. Proszę czekać

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.

Podobne prezentacje


Prezentacja na temat: "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."— Zapis prezentacji:

1 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]

2 dokładność wzóru trapezów a jawnego schematu Eulera: 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

3 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.

4 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)

5 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 (2,0)

6 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

7  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

8 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ę.

9 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: )

10 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 żą danego rzędu

11 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

12 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

13 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?

14 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

15 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 (*)

16 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

17 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)

18 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

19 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

20 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

21 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

22 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

23 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)

24 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 :

25 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

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

27 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

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

29 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

30 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

31 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:

32 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ń

33 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 (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

34 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

35 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

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

37 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 )

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

39 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

40 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.

41 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

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

43 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

44 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

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


Pobierz ppt "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."

Podobne prezentacje


Reklamy Google