Szacowanie błędu lokalnego w meodach jednokrokowych Po co? 1) W rachunkach numerycznych musimy znać oszacowanie błędu 2) Gdy oszacowanie jes w miarę dokładne: można poprawić wynik 3) Aby usawić krok czasowy ak, aby błąd był akcepowalny
Oszacowanie błędu lokalnego w meodach jednokrokowych W każdym kroku generujemy nowy błąd w rachunkach. Znamy jego rząd. dla RK: wsawialiśmy rozwiązanie dokładne do schemau i je rozwijaliśmy w szereg T. wybór b 1 =0, b 2 =1, c=1/2, a=1/2 dawał RK2 punku środkowego Rozwijając do jednego rzędu wyżej z D uzyskamy oszacowanie błędu lokalnego d n = u( n ) - u n [przy założeniu, że u( n-1 ) = u n-1 ] świeny wzór choć mało prakyczny
Oszacowanie błędu (lokalnego) w meodach jednokrokowych meodą rzędu p z chwili n-1 wykonujemy krok do n może zależeć od n-1 oraz u n-1, ale nie zależy od D folia wcześniej szacowanie błędu: 1) eksrapolacja Richardsona (sep doubling) 2) osadzanie (embedding)
eksrapolacja Richardsona dwa kroki D: dosaniemy lepsze oszacowanie u( n+1 ) n-1 n n+1 D D jeden krok 2D: dosaniemy gorsze oszacowanie u( n+1 ) n-1 n+1 2D szacujemy C n z porównania obydwu rozwiązań
eksrapolacja Richardsona błąd lokalny u( n )-u n =d n jes: wykonujemy krok nasępny od n do n+1 odchylenie wyniku numerycznego od dokładnego u( n+1 )-u n+1 = g d n +d n+1 1) zakładamy, że krok jes na yle mały, że sała błędu się nie zmienia C n C n+1 (lub, ze w jednym kroku zmienia się o O(D)] wedy błąd lokalny popełniony w chwili n+1 jes d n+1 d n. 2) gdy krok mały: współczynnik wzmocnienia błędu g 1 (błąd popełniony w kroku pierwszym nie jes isonie wzmacniany) Przy ym założeniu: błąd po drugim kroku suma błędów g d n +d n+1 2d n,
eksrapolacja Richardsona n-1 n n+1 D D o chwili n+1 dojdziemy z n-1 w pojedynczym kroku 2D n-1 n+1 2D dosaniemy gorsze oszacowanie u( n+1 ) chcemy poznać C n (o + znajomość p da nam oszacowanie błędu): odejmujemy niebieskie wzory ak aby wyeliminować rozwiązanie dokładne (nam niedosępne)
eksrapolacja Richardsona błąd wykonany po dwóch krokach D wynosi więc: pierwszy wniosek: jeśli znamy rząd meody p o porafimy go podnieść o jeden
eksrapolacja Richardsona podnosimy rząd dokładności meody algorym
Przykład: r. dokładne: eksrapolacja Richardsona Euler (p=1) błąd lokalny O(D 2 ) Euler po poprawce: błąd lokalny O(D 3 ) kreski: RK2 punku środkowego (p=2), b.lok. O(D 3 ) znając rząd dokładności możemy radykalnie poprawić dokładność meody przy nadaku (50 procen) numeryki
Euler eksrapolacja Richardsona RK2 RK2 z odcięym błędem
Oszacowanie błędu lokalnego w meodach jednokrokowych 1) eksrapolacja Richardsona (sep doubling) 2) osadzanie (embedding) cel: szacujemy błąd lokalny meody rzędu p przy pomocy lepszej meody, np. rzędu p+1 obydwie meody szacują rozwiązanie w ych samych chwilach czasowych co daje oszacowanie błędu gorszej meody nie nadaje się do poprawiania schemau p po cóż zreszą poprawiać gdy mamy p+1
celem szacowania błędu nie jes poprawa wyniku, (dla poprawy zawsze można D zmienić) lecz adapacja D : sały krok zawsze może okazać się zby wielki albo zby mały. JAKI KROK CZASOWY SYMULACJI USTAWIĆ gdy coś ciekawego zdarza się ylko czasem?
Auomayczna konrola kroku czasowego dla meod jednokrokowych Program może sam dobierać krok czasowy w zależności od ego co dzieje się w symulacji. Chcemy urzymać błąd na poziomie zbliżonym do parameru ol. nie większy aby zachować wymaganą dokładność, nie mniejszy aby nie racić czasu na rachunki zby dokładne Szacujemy błąd lokalny E (eksrapolacja Richardsona lub meody embedding) E=C[D] p+1 chcemy zmienić krok odpowiednio do naszych wymagań z D do D(nowy) ol=c[d(nowy)] p+1 D(nowy)=(ol/E) 1/(p+1) D D(nowy)=(S ol /E) 1/(p+1) D dla bezpieczeńswa S<1 wzór zwiększy zby mały krok i vice versa uwaga: błąd jes szacowany, zawsze waro dorzucić szywne ograniczenia na D
Auomayczna konrola kroku czasowego dla meod jednokrokowych do { symulacja usawiająca krok czasowy może wyglądać np. ak: u 0 = warunek począkowy 0 =0 n=1 jeśli E<ol { n:=n+d n:=n+1 (oznacza akcepację wyniku) } D:=(S ol /E) 1/(p+1) D } while ( <T)
V () V () V () Przykład: oscylaor harmoniczny używane oszacowanie błędu z RK2 Uwaga: uaj rozwiązania nie poprawiamy przez eksrapolacje olerancja błędu obcięcia ol=0.1 sar RK2 ol=1e-2 x 2 V 2 D x () x () ol=1e-3 x () algorym usawia minimalny krok czasowy gdy zmiany prędkości lub położenia są maksymalne
wyniki Konrada Rekiecia RK4 spirala się skręca zamias rozkręcać E() RK2 ol=.1 RK4 przy założonej olerancji RK4 wcale nie jes dokładniejsze od RK2
d... ylko pozwala sawiać dłuższe kroki
Problemy szywne
u(0)=0 prose równanie rakowane jawnym schemaem Eulera 5 4 3 u= 2 2 1 d=0.02 d=0.2 0 0.0 0.4 0.8 1.2 1.6 2.0
prosy problem nieco komplikujemy 1.00 a=10 0.80 0.60 niech a >> 0 0.40 0.20 0.00 0.00 0.20 0.40 0.60 0.80 1.00 szybkozmienna składowa składowa wolnozmienna
rozwiązanie a=0 krok d=0.02 jes bardzo drobny w porównaniu ze skalą zmienności składowej parabolicznej krzyżyki : 2 kółka : 2 + exp(-100)
10.00 rozwiązanie a=100 5.00 0.00 d=0.019 d=0.02 d=0.021 dokładne -5.00 krok d=0.02 okazuje się zby długi gdy włączyć składową szybkozmienną nawe am, gdy znika ona z rozwiązania -10.00 0.00 0.10 0.20 0.30 0.40 0.50
10.00 rozwiązanie a=100 5.00 0.00 d=0.019 d=0.02 d=0.021 dokładne część szybkozmienna -5.00 gaśnie szybko, ale w schemacie jawnym Eulera nakłada ograniczenie na krok czasowy : u =-au a=100 d<0.02, gdy szybkozmienna składowa zaniknie d jes bardzo mały w porównaniu do skali zmienności u() -10.00 0.00 0.10 0.20 0.30 0.40 0.50
regiony sabilności meod Eulera D Im (l) D Im (l) -2-1 1 1-1 D Re(l) -1 D Re(l) meoda Eulera jawna niejawna meoda Eulera w meodzie niejawnej problemu ze sabilnością bezwzględna nie ma...
niejawna meoda Eulera: zasosowanie do problemu szywnego 1.00 rozwiązania są sabilne i dokładne dla dużych nawe gdy d duże dla małych można wsawić mniejsze d, poem krok zwiększyć 0.80 0.60 0.40 0.20 0.00 dokładny d=0.02 d=0.04 0.00 0.10 0.20 0.30 0.40 0.50
Problemy szywne (dręwe) (siff, siffness) Problem jes prakyczny i ścisłej definicji, kóra byłaby użyeczna, nie ma. Jedna z możliwych: problem jes szywny, gdy sosując schema jawny musimy przyjąć krok czasowy bardzo mały w porównaniu ze skalą zmienności funkcji. RRZ jes problemem szywnym gdy: 1. Problem jes charakeryzowany bardzo różnymi skalami czasowymi 2. Sabilność bzwz nakłada silniejsze ograniczenia na krok czasowy niż dokładność. 3. Meody jawne się nie sprawdzają. 1.00 0.80 0.60 0.40 0.20 niech a >> 0 szybkozmienna składowa składowa wolnozmienna 0.00 0.00 0.20 0.40 0.60 0.80 1.00
Problemy szywne (dręwe) (siff) problem najczęściej spoykany dla układ równań różniczkowych opisujących sprzężone procesy o bardzo różnych skalach czasowych Ogólna posać układu równań pierwszego rzędu fcja R R n R wekor R n Tylko niekiedy można podać rozwiązanie w zamknięej formie analiycznej. Można, np. dla jednorodnego problemu liniowego
problemy szywne gdzie dla niezdegenerowanych warości własnych c j liczone z warunku począkowego np. problem rozpadu promieniowórczego Izoop 2 o sałej rozpadu l 2 rozpada się promieniowórczo na inny izoop 1 o sałej rozpadu l 1 y 1 (0)=0 y 2 (0)=1 warości własne l 1, l 2 rozłożyć warunek począkowy na wekory własne
problemy szywne gdy duża rozpięość między minimalną a maksymalną warością własną l max /l min >>1: duże różnice skal czasowych wekor własny kóry odpowiada największej warości własnej wygaśnie najprędzej, ale (dla meod jawnych) pozosawi najsilniejsze ograniczenie dla kroku czasowego (np. Euler, RK2 d<2/ l max ) jeseśmy zmuszeni przyjąć maluki krok w porównaniu z przebiegiem rozwiązania (w przeciwnym wypadku eksplozja)
nasępny przykład: podobny do poprzedniego problem szywny z liniowego równania drugiego rzędu o bliskich współczynnikach u +1001u +1000u=0 warości / wekory własne: -1 / [-1,1] T -1000 / [1,-1000] T bardzo różne skale czasowe
problemy szywne szczególnie dokliwy przypadek: równanie niejednorodne (bez rozwiązania analiycznego) załóżmy, że warości własne A są ujemne Rozwiązanie będzie miało posać: san przejściowy (wszyskie zgasną) san usalony wolnozmienny Na czym polega problem? : Rozwiązując problem numerycznie meodą jawną (Euler, RK2) musimy przyjąć krok czasowy D < 2/ l_max aby uniknąć eksplozji rozwiązań nawe gdy wszyskie wyrazy z powyższej sumy w rozwiązaniu znikają
y 2 izoop maka wolno rozpadająca się na y 1 y 1 izoop szybko rozpadający się, niejednorodność: dodakowo pewna ilość jes w sałym empie doprowadzana z zewnąrz y 2 (0)=1 y 1 (0)=0 l 1 =1/10 l 2 =1/10 000 1.0 0.5 y2 y1 bardzo wolno się rozpada [aka i większa rozpięość lambd ypowa również dla reakcji chemicznych spoykana również dla układów elekrycznych] 1.0 0.5 y2 y1 przy zaniedbywalnej wielkości l 2 y 1 =0.5 spełnia pierwsze równanie 0.01 10 100 1000 10000 100000 0.00 10000 20000 30000
auomayczna konrola kroku czasowego dla jawnego RK2 z krokiem czasowym usawianym przez eksrapolację Richardsona y 1 0.8 0.6 0.4 y2 ol=0.001 zęby: zaakcepowane błędy y1 D 50 40 30 20 y1 l 1 =1/10 l 2 =1/10 000 y 0.2 0.8 0.6 0.4 0.2 0 0 40000 80000 120000 160000 1 y2 0 0 40000 80000 120000 160000 ol=0.00001 y1 50 40 30 20 10 10 0 0 4000 8000 12000 16000 0 0 4000 8000 12000 16000 y1 w obydwu przypadkach D ylko chwilowo przekracza kryyczną warość 2/(1/10)=20
RK4 2.78 / l 1
1.00 Zasosujmy meodę A-sabilną = wzór rapezów (p=2) 0.80 0.60 y 0.40 sały D=200 Wzór rapezów sały krok, bardzo dłuuugi nic złego się nie dzieje ze sabilnością w sanie usalonym 0.20 0.00 0 10000 20000 30000 40000 50000
1 10 100 1000 10000100000 Wzór rapezów i krok auomaycznie dobierany przez eksrapolację Richardsona 1.00 0.80 ol=0.01 kropki 1.00 -am gdzie 0.80 posawiony krok y 0.60 0.40 y 0.60 0.40 0.20 0.00 100000 10000 0 10000 20000 30000 40000 50000 0.20 0.00 10 100 1000 10000 rapem 10 kroków i załawione! zamias 10 4 kroków RK4 D 1000 100 10 Krok czasowy zmienność 4 rzędów wielkości.
rapezy (najdokładniejsza meoda A-sabilna spośród wielokrokowych) 1.00 0.80 z olerancją 0.00001 10000.00 1000.00 maksymalnie parę ysięcy D y 0.60 0.40 100.00 10.00 poziom jawnych RK 0.20 0.00 10.00 100.00 1000.00 10000.00 100000.00 1.00 0.10 10.00 100.00 1000.00 10000.00 100000.00 meoda rapezów: jako A-sabilna radzi sobie nieźle z doborem kroku czasowego w problemach szywnych ale jes sosunkowo mało dokładna dokładniejsza A-sabilna pozwoliłaby sawiać jeszcze dłuższe kroki niesey = dokładniejszej A-sabilnej ej w klasie meod (liniowe wielokrokowe) nie ma dlaego : niejawne meody RK (jednokrokowe, nieliniowe)
rapezy z olerancją 0.00001 (najdokładniejsza meoda A-sabilna spośród wielokrokowych) 1.00 10000.00 0.80 1000.00 D 0.60 y 0.40 100.00 10.00 maksymalnie parę ysięcy 0.20 0.00 10.00 100.00 1000.00 10000.00 100000.00 1.00 0.10 10.00 100.00 1000.00 10000.00 100000.00 1.00 0.80 100000.00 10000.00 D maksymalnie kilkadziesią ysięcy y 0.60 0.40 0.20 0.00 1.00 10.00 100.00 1000.00 10000.00 100000.00 1000000.00 1000.00 100.00 10.00 1.00 0.10 1.00 10.00 100.00 1000.00 10000.00 100000.00 1000000.00 niejawna dwusopniowa meoda RK (rzędu 4) z olerancją 0.00001 (A-sabilna)
-1 8 9 10 11 12 Mówimy, że RRZ jes problemem szywnym gdy: 1. Problem jes charakeryzowany różnymi skalami czasowymi. 2. Sabilność bzwz nakłada silniejsze ograniczenia na krok czasowy niż dokładność. 3. Meody jawne się nie sprawdzają. Nasępny przykład: szywny problem w pojedynczym równaniu: dla dużych rozwiązanie usalone 2 u()=cos() 1 0 cos() dwie bardzo różne skale czasowe 1) rozwiązania usalonego okres 2pi 2) skala czasowa łumienia odchylenia od sanu usalonego exp(-100 ) czasowa sała zaniku 0.01
0 1 2 z u(0)=2 rozwiązanie: sacjonarne u()=cos() Sały krok czasowy: 4 Euler d = 0.01 jawny schema Eulera rozpoznajemy ograniczenie: D < 2/ 100 0-4 d=0.019 d=0.02 d=0.021
niejawny schema Eulera krok sały 1.2 0.8 0.4 0.0-0.4 d=0.1 d=0.2 d=0.5-0.8 0 1 2 uaj: sarowane od warunku u(0)=1
u u u u akcepowane d 10 2 1 wyniki do uzyskania na laboraorium sar u(0)=2,olerancja 1e-2 niejawny, jawny, cos () akcepowane d 1 0.1 0.01 0.001 niejawny jawny ol1e-2 0 0.4 0.0001 0.00 5.00 10.00 15.00 20.00 25.00-1 0.00 1.00 2.00 3.00 2 niejawny Euler olerancja 1e-3 niejawny, jawny, cos () akcepowane d 0.3 0.2 0.1 0 ol1e-3 1 0-1 0.00 1.00 2.00 3.00 akcepowane d 0.016 0.012 0.008 0.004 0 0.00 5.00 10.00 15.00 20.00 25.00 ol 1e-6 gdy wymagana b. duża dokładność niejawny sawia równie krókie kroki co jawny, obydwie meody ego samego rzędu dokładności 0.00 5.00 10.00 15.00 20.00 25.00
nasępny przykład: równanie swobodnego oscylaora van der Pola [hisorycznie = odkrycie deerminisycznego chaosu w lampach firmy Philips aperiodyczne oscylacje przy periodycznym wymuszeniu ] (l=0 = zwykły o. harmoniczny) u 4.00 2.00 0.00 l=1 jawny RK4 = zmienny krok czasowy punk u() policzony = krzyż po lewej: krzyże położone rozsądnie w porównaniu ze zmiennością rozwiązania 4.00 2.00 u 0.00 l=100-2.00-4.00 0.00 40.00 80.00 120.00 160.00 200.00 po prawej: problem szywny gładkie rozwiązanie a krzyże się zlewają -2.00-4.00 0.00 40.00 80.00 120.00 160.00 200.00
4.00 2.00 równanie: czasem szywne czasem nie u 0.00-2.00-4.00 0.00 40.00 80.00 120.00 160.00 200.00 przydałoby się narzędzie do wykrywania szywności np. dla podjęcia decyzji: am gdzie szywność = schema niejawny am gdzie nie = schema jawny (ańszy)
Deekcja szywności dla problemu nieliniowego (dla liniowego = wysarczy rozwiązać problem własny macierzy układu równań) układ N równań (u,f-wekory) w chwili rozwiązanie u * () rozwiązanie chwilę później opisane przez odchylenie du() od u * u()= u * () + du() linearyzacja: zakładamy, że odchylenie małe, rozwijamy f(,u) względem u wokół f(,u * ): [Taylor dla wekora] macierz Jakobiego [N na N]
Aby rachunek się powiódł: D l i musi leżeć w regionie sabilności używanej meody dla wszyskich i. Jeśli duża rozpięość l : problem będzie szywny. problem zlinearyzowany +B B bez znaczenia dla sabilności rozwiązać problem własny A: dosaniemy warości własne l i :
Przykład: nieliniowy układ równań z warunkowo wysępującą szywnością jeśli druga składowa u urośnie macierz prawie diagonalna z szerokim zakresem warości własnych - szywność
Przykład deekcja szywności dla: oscylaora van der Pola warości własne:
niebieskie i czarne: części rzeczywise warości własnych 2.0 1.0 l=1 200.0 l=100 0.0 w -1.0 100.0 w 0.0-2.0-3.0 0.0 40.0 80.0 120.0 160.0 200.0 jawny RK +auoma d 0.80 0.60 d 0.40-100.0-200.0 0.25 0.0 40.0 80.0 120.0 160.0 200.0 0.20 0.15 0.10 d 0.05 0.20 0.00 0.00 40.00 80.00 120.00 160.00 200.00 0.00 0.00 40.00 80.00 120.00 160.00 200.00
2.0 l=1 jawny RK +auoma d l=100 w 1.0 0.0-1.0 w 200.0 100.0 0.0-2.0-100.0-3.0 0.0 40.0 80.0 120.0 160.0 200.0 0.80 0.60-200.0 0.25 0.0 40.0 80.0 120.0 160.0 200.0 0.20 0.15 0.10 d 0.40 0.20 0.00 0.00 40.00 80.00 120.00 160.00 200.00 d 0.05 0.00 4.00 0.00 40.00 80.00 120.00 160.00 200.00 4.00 u() 2.00 0.00 u() 2.00 0.00-2.00-2.00-4.00-4.00 0.00 40.00 80.00 120.00 160.00 200.00 0.00 40.00 80.00 120.00 160.00 200.00