Pobieranie prezentacji. Proszę czekać

Pobieranie prezentacji. Proszę czekać

jawny schemat Eulera [globalny błąd O(Dt)]

Podobne prezentacje


Prezentacja na temat: "jawny schemat Eulera [globalny błąd O(Dt)]"— Zapis prezentacji:

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

2 Punkt t2=0.5 u2 = ? [dokładnie: 1.1331]
dokładność wzóru trapezów a jawnego schematu Eulera: Równanie: Warunek początkowy: u1=u(t1=0)=1 Rozwiązanie: Punkt t2=0.5 u2 = ? [dokładnie: ] jawny Euler Euler jawny jeden krok: u2=u1+Dt t1u1=u1= 1 u2 wzór trapezów u2=u1+(t1u1+t2u2) Dt /2 = u1+t2u2 Dt /2 u2:= u1+u2 /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+Dt)+O(Dt) (wstawimy, rząd błędu pozostanie trzeci) 3. Rozwiązać na u(t+Dt) Euler miał rząd obcięcia Dt2 pozbyć się go.

4 3. Rozwiązać na u(t+Dt) [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 rozwiązanie u=exp(lt)
stabilność bezwzględną wzoru trapezów problem modelowy: WP: u(t=0)=1. rozwiązanie u=exp(lt) zbiór punktów na p. Gaussa, które są nie dalej od (-2,0) niż od (2,0)

6 jest najdokładniejszą metodą A-stabilną spośród liniowych metod
region bzwz. stabilności wzoru trapezów Dt Im (l) Dt Re(l) Wniosek: dla l<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.

7 region bzwz. stabilności Eulera: koło o promieniu 1 i środku (-1,0)
Dt Im (l) Dt Re(l) region bzwz. stabilności wzoru trapezów Dt Im (l) Dt Re(l) niejawna metoda Eulera: region bezwzględnej stabilności Dt Im (l) między metodami można przechodzić w sposób ciągły 1 Dt Re(l) q=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 q=1/2 region stabilności ? -1

8 wzór trapezów = używa prawej strony z poprzedniego kroku czasowego
iteracja funkcjonalna a wzór trapezów problem początkowy: u’=-100u, u(0)=1 z rozwiązaniem dokładnym u(t)=exp(-100 t ) Dt=0.01 = graniczny dla zbieżności IF dla niejawnego Eulera 1,0, 0.5, 0.25, 0.375, , , , , , , ... , wzór trapezów = używa prawej strony z poprzedniego kroku czasowego z wagą 0.5 – co nieco stabilizuje iterację. niestety iteracja funkcjonalna dla Dt=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

9 ) jawne metody różnicowe wysokiej dokładności ?? poznane metody: 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 jawne metody różnicowe wysokiej dokładności ??

10 jawne metody jednokrokowe wyższego rzędu dokładności niż jawny Euler
u’=f(t,u), u(0)=u0 rozwinięcie Taylora ponownie: 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: jeśli zastąpimy całkę kwadraturą prostokątów z wywołaniem funkcji w lewym końcu przedziału u(tn)=u(tn-1)+Dt f(tn-1) + O(Dt2) - rozpoznajemy jawny schemat Eulera tn-1 tn kwadratura prostokątów z wywołaniem funkcji w prawym końcu przedziału u(tn)=u(tn-1)+Dt f(tn) + O(Dt2) - rozpoznajemy niejawny schemat Eulera tn-1 tn kwadratura trapezów u(tn)=u(tn-1)+Dt f(tn)/2+ Dt f(tn-1)/2 + O(Dt3) - rozpoznajemy niejawny schemat trapezów tn-1 tn

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

14 sprawdźmy to rozważając bardziej ogólny schemat:
obliczone na początku kroku obliczone gdzieś w środku przedziału (tn-1,tn) 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) b1,b2,a,c – parametry metody –jakie muszą być aby RK2 (2 = rząd dokładności) reguła punktu środkowego: należy do tej klasy z b1=0, b2=1, c=1/2, a =1/2

15 u’=f(t,u) jak dobrać b1,b2,c,a ? – metodą brutalnej siły -
Jawne metody Rungego-Kutty dwustopniowe: wybór parametrów (*) u’=f(t,u) jak dobrać b1,b2,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 wstawiamy rozwiązanie dokładne u(tn), u(tn-1) do (*) i rozwijamy względem tn-1, un-1

16 to trzeba rozwinąć wstawmy k2 do rozwinięcia. Zachowajmy człony do Dt2: (wszystko liczone w tn-1,un-1) rozwinięcie Taylora rozwiązania dokładnego uzyskaliśmy kilka slajdów wcześniej czyli: rząd Dt: b1+b2=1, rząd Dt2: b2c=b2a=1/2 czyli reguła punktu środkowego: b1=0, b2=1, c=1/2, a =1/2 ma błąd lokalny rzędu O(Dt3) 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
b1+b2=1 b2c=b2a=1/2 - pozostaje swoboda w wyborze parametrów reguła punktu środkowego RK2 b1=0, b2=1, c=1/2, a =1/2 dwa zastosowania jawnego schematu Eulera oszacowanie wstępne w punkcie pośrednim (błąd lokalny rzędu drugiego) oszacowanie docelowe (błąd lokalny oszacowania: rzędu trzeciego) albo (przesunięty indeks) u(t) [t,u(t)] dokładne 1) Szacujemy metodą Eulera punkt środkowy [t+Dt/2,u(t+Dt/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 Dt [t+Dt/2,y(t+Dt/2)] Dt t

18 inny wybór: b1=b2=1/2, wtedy musi a=c=1
RK punktu środkowego:b1+b2=1, b2c=b2a=1/2 inny wybór: b1=b2=1/2, wtedy musi a=c=1 metoda podobna do wzoru trapezów (ale jawna) u(t) 1) Szacujemy metodą Eulera punkt końcowy [t+Dt,u(t+Dt)] korzystając z f(t,u) w lewym końcu przedziału 2) krok z t do t+Dt wykonujemy biorąc średnią arytmetyczną z f na początku i końcu [t,u(t)] dokładne Dt t 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(Dt3) potrzeba aby, rząd Dt: b1+b2=1, rząd Dt2: b2c=b2a=1/2 punkt środkowy b2=1, b1=0 [b1+b2]=1 czy ma sens b1=1, b2=0 ?

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 c A b wzory przedstawiane w formie tabel Butchera

21 Metody Rungego-Kutty, forma ogólna
czasem zapisywane w postaci: tutaj Ui – przybliżone rozwiązanie w chwili tn-1+ciDt zazwyczaj niższej dokładności niż rozwiązanie końcowe

22 jawne metody Rungego-Kutty
aij=0 dla ji 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 (dla każdej jawnej RK, zaczynamy – k1
Wyprowadzanie formuł RK (a,b,c) Rozwijamy rozwiązanie dokładne w szereg Taylora względem tn-1 Podstawiamy rozwiązanie dokładne do ogólnej formy RK i rozwijamy względem tn-1 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 c1=0 (dla każdej jawnej RK, zaczynamy – k1 od wyliczenia prawej strony w kroku początkowym)

24 klasyczna formuła RK4: k2 u’ u(t) k3 k1 k4 4 wywołania f na krok, błąd lokalny O(Dt5) 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 u1, u2, 2 prawe strony f1, f2 2 równania, s-odsłon (i=1,2,...,s) zapis wektorowy un-1, un , f, U1, U2, ... UN są wektorami o 2 składowych

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

27 Liczba kroków a rząd zbieżności jawnych metod RK: rząd 1 2 3 4 5 6 7 8
Dlaczego RK4 najbardziej popularna: Liczba kroków a rząd zbieżności jawnych metod RK: rząd minimalna liczba odsłon RK4 – wyjątkowo opłacalna RK1 – metoda RK w jednej odsłonie b1+b2=1, przy b1=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 tabela Butchera b1=b2=1/2, a=c=1 RK2 trapezów 1/2 1
RK2 punktu środkowego 1/2 1

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

30 Oszacowanie błędu lokalnego w metodach jednokrokowych
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. wybór b1=0, b2=1, c=1/2, a =1/2 dawał RK2 punktu środkowego Rozwijając do jednego rzędu wyżej z Dt uzyskamy oszacowanie błędu lokalnego dn= u(tn) - un [przy założeniu, że u(tn-1) = un-1] świetny wzór choć mało praktyczny

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

32 ekstrapolacja Richardsona
dwa kroki Dt: dostaniemy lepsze oszacowanie u(tn+1) tn-1 tn tn+1 Dt Dt jeden krok 2Dt: dostaniemy gorsze oszacowanie u(tn+1) tn-1 tn+1 2Dt szacujemy Cn z porównania obydwu rozwiązań

33 odchylenie wyniku numerycznego od dokładnego u(tn+1)-un+1= g dn +dn+1
ekstrapolacja Richardsona błąd lokalny u(tn)-un=dn jest: wykonujemy krok następny od tn do tn+1 odchylenie wyniku numerycznego od dokładnego u(tn+1)-un+1= g dn +dn+1 zakładamy, że krok jest na tyle mały, że stała błędu się nie zmienia Cn Cn+1 (lub, ze w jednym kroku zmienia się o O(Dt)] wtedy błąd lokalny popełniony w chwili tn+1 jest dn+1  dn. 2) gdy krok mały: współczynnik wzmocnienia błędu g  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 g dn+dn+1  2dn,

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

35 ekstrapolacja Richardsona
błąd wykonany po dwóch krokach Dt 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 Euler (p=1) błąd lokalny O(Dt2)
Przykład: ekstrapolacja Richardsona r. dokładne: Euler (p=1) błąd lokalny O(Dt2) Euler po poprawce: błąd lokalny O(Dt3) kreski: RK2 punktu środkowego (p=2), b.lok. O(Dt3) znając rząd dokładności możemy radykalnie poprawić dokładność metody przy natdatku (50 procent) numeryki

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

39 Oszacowanie błędu lokalnego w metodach jednokrokowych
ekstrapolacja Richardsona (step doubling) osadzanie (embedding) cel: szacujemy błąd lokalny metody rzędu p przy pomocy lepszej metody, np. rzędu p 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 celem szacowania błędu nie jest poprawa wyniku,
(dla poprawy zawsze można Dt zmienić) lecz adaptacja Dt : stały krok zawsze może okazać się zbyt wielki albo zbyt mały. JAKI KROK CZASOWY SYMULACJI USTAWIĆ gdy coś ciekawego zdarza się tylko czasem ?

41 Dt(nowy)=(tol/E)1/(p+1) Dt
Automatyczna kontrola kroku czasowego dla metod jednokrokowych Program może sam dobierać krok czasowy w zależności od tego co dzieje się w symulacji. 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 Szacujemy błąd lokalny E (ekstrapolacja Richardsona lub metody embedding) E=C[Dt]p+1 chcemy zmienić krok odpowiednio do naszych wymagań z Dt do Dt(nowy) tol=C[Dt(nowy)]p+1 Dt(nowy)=(tol/E)1/(p+1) Dt Dt(nowy)=(S tol /E)1/(p+1) Dt dla bezpieczeństwa S<1 wzór zwiększy zbyt mały krok i vice versa uwaga: błąd jest szacowany, zawsze warto dorzucić sztywne ograniczenia na Dt

42 do { } while ( t<T) Dt:=(S tol /E)1/(p+1) Dt
Automatyczna kontrola kroku czasowego dla metod jednokrokowych symulacja ustawiająca krok czasowy może wyglądać np. tak: u0= warunek początkowy t0=0 n=1 do { jeśli E<tol { tn:=tn+Dt n:=n+1 (oznacza akceptację wyniku) } Dt:=(S tol /E)1/(p+1) Dt } while ( t<T)

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

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

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


Pobierz ppt "jawny schemat Eulera [globalny błąd O(Dt)]"

Podobne prezentacje


Reklamy Google