Pobieranie prezentacji. Proszę czekać

Pobieranie prezentacji. Proszę czekać

Szacowanie błędu lokalnego w metodach jednokrokowych

Podobne prezentacje


Prezentacja na temat: "Szacowanie błędu lokalnego w metodach jednokrokowych"— Zapis prezentacji:

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

2 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

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

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

5 (lub, ze w jednym kroku zmienia się o O(Dt)]
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,

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

7 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

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

9 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

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

11 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

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

13 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

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

15 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

16 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

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

18 Problemy sztywne

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

20 prosty problem nieco komplikujemy a=10 niech a >> 0
szybkozmienna składowa składowa wolnozmienna 20

21 krzyżyki : t2 kółka : t2 + exp(-100t)
rozwiązanie a=0 krok dt=0.02 jest bardzo drobny w porównaniu ze skalą zmienności składowej parabolicznej krzyżyki : t2 kółka : t2 + exp(-100t) 21

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

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

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

25 rozwiązania są stabilne i dokładne dla dużych t nawet gdy dt duże
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ć 25

26 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: Problem jest charakteryzowany bardzo różnymi skalami czasowymi Stabilność bzwz nakłada silniejsze ograniczenia na krok czasowy niż dokładność. Metody jawne się nie sprawdzają. szybkozmienna składowa składowa wolnozmienna niech a >> 0 26

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

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

29 gdy duża rozpiętość między minimalną
problemy sztywne gdy duża rozpiętość między minimalną a maksymalną wartością własną |lmax/lmin|>>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/|lmax|) jesteśmy zmuszeni przyjąć malutki krok w porównaniu z przebiegiem rozwiązania (w przeciwnym wypadku eksplozja) duże różnice skal czasowych 29

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

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

32 y2 – izotop matka wolno rozpadająca się na y1
y1 – izotop szybko rozpadający się, niejednorodność: dodatkowo pewna ilość jest w stałym tempie doprowadzana z zewnątrz y2(0)=1 y1(0)=0 l1=1/10 l2=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] przy zaniedbywalnej wielkości l2 y1=0.5 spełnia pierwsze równanie 32

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

34 RK4 2.78 / l1 34

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

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

37 trapezy (najdokładniejsza metoda A-stabilna spośród wielokrokowych)
z tolerancją maksymalnie parę tysięcy Dt y poziom jawnych RK t t 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) 37

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

39 dla dużych t – rozwiązanie ustalone u(t)=cos(t)
Mówimy, że RRZ jest problemem sztywnym gdy: Problem jest charakteryzowany różnymi skalami czasowymi. Stabilność bzwz nakłada silniejsze ograniczenia na krok czasowy niż dokładność. Metody jawne się nie sprawdzają. Następny przykład: sztywny problem w pojedynczym równaniu: dla dużych t – rozwiązanie ustalone u(t)=cos(t) dwie bardzo różne skale czasowe 1) rozwiązania ustalonego okres 2pi 2) skala czasowa tłumienia „odchylenia od stanu ustalonego” exp(-100 t) – czasowa stała zaniku 0.01

40 rozwiązanie: „stacjonarne” u(t)=cos(t)
z u(0)=2 rozwiązanie: „stacjonarne” u(t)=cos(t) jawny schemat Eulera Stały krok czasowy: rozpoznajemy ograniczenie: Dt < 2/|100|

41 dt=0.1 dt=0.2 dt=0.5 niejawny schemat Eulera – krok stały
tutaj: startowane od warunku u(0)=1

42 wyniki do uzyskania na laboratorium start u(0)=2,tolerancja 1e-2
niejawny, jawny, cos (t) tol1e-2 niejawny akceptowane dt jawny akceptowane dt tol1e-3 niejawny Euler tolerancja 1e-3 niejawny, jawny, cos (t) tol 1e-6 gdy wymagana b. duża dokładność niejawny stawia równie krótkie kroki co jawny, obydwie metody tego samego rzędu dokładności akceptowane dt t

43 u u t t następny przykład: równanie swobodnego oscylatora van der Pola
[historycznie = odkrycie deterministycznego chaosu w lampach firmy Philips aperiodyczne oscylacje przy periodycznym wymuszeniu ] (l=0 = zwykły o. harmoniczny) jawny RK4 = zmienny krok czasowy l=100 l=1 punkt u(t) policzony = krzyż po lewej: krzyże położone rozsądnie w porównaniu ze zmiennością rozwiązania po prawej: problem sztywny gładkie rozwiązanie a krzyże się zlewają u u t t

44 u t równanie: czasem sztywne czasem nie
przydałoby się narzędzie do wykrywania sztywności np. dla podjęcia decyzji: tam gdzie sztywność = schemat niejawny tam gdzie nie = schemat jawny (tańszy) u t

45 Detekcja sztywności dla problemu nieliniowego
(dla liniowego = wystarczy rozwiązać problem własny macierzy układu równań) układ N równań (u,f-wektory) w chwili t rozwiązanie u*(t) rozwiązanie chwilę później opisane przez odchylenie du(t) od u* u(t)= u*(t) + du(t) linearyzacja: zakładamy, że odchylenie małe, rozwijamy f(t,u) względem u wokół f(t,u*): [Taylor dla wektora] macierz Jakobiego [N na N]

46 +B problem zlinearyzowany B bez znaczenia dla stabilności
rozwiązać problem własny A: dostaniemy wartości własne li: Aby rachunek się powiódł: Dt li musi leżeć w regionie stabilności używanej metody dla wszystkich i. Jeśli duża rozpiętość l : problem będzie sztywny.

47 Przykład: nieliniowy układ równań z warunkowo występującą sztywnością
jeśli druga składowa u urośnie – macierz prawie diagonalna z szerokim zakresem wartości własnych - sztywność

48 Przykład detekcja sztywności dla: oscylatora van der Pola
wartości własne:

49 niebieskie i czarne: części rzeczywiste wartości własnych
l=1 l=100 w w t t jawny RK +automat dt dt dt t t

50 jawny RK +automat dt l=1 l=100 w w t t dt dt t t u(t) u(t) t

51 2) do metod niejawnych RK
Metody RK – własności tabel Butchera 1)do regionów stabilności jawnych RK 2) do metod niejawnych RK ogólna w wersji ogólnej (niejawnej = sumowanie do s) dla metod jawnych

52 jeśli f=0 to un=un-1 Metoda musi być dokładna dla rozwiązania stałego:
w przeciwnym wypadku powstanie błąd lokalny O(Dt) (metoda nie będzie zbieżna zerowy rząd zbieżności ) jeśli f=0 to un=un-1 to mamy zawsze podobnie, jeśli rząd zbieżności 1 (jak Euler) lub więcej = wynik dokładny dla funkcji liniowej f=1 np RK4

53 rozwiązania pośrednie = mniej dokładne niż wynik końcowy, ale:
zażądajmy aby rozwiązania pośrednie Ui (dla chwili tn-1+ciDt) były rzędu zbieżności pierwszego (nie gorsze niż Euler). Mają działać dokładnie dla f=1 i rozwiązania u=D+t, co daje: u(t+dt)=u(t)+dt dla RK4: 1/2 1 1/6 1/3

54 l=1 poznajemy metoda RK rzędu dokładności p jeśli działać
będzie dokładnie dla wielomianów stopnia p z rozwiązaniem: wstawić dla l=1,2,...,p l=1 poznajemy 1/2 1 1/6 1/3 Zastosowanie do tabeli Butchera RK4: ½= 1/6 *0 +1/3*1/2+1/3*1/2+1/6*1=3/6 1/3= 1/3 * ¼ +1/3 * ¼+1/6=2/6 ¼=1/3*1/8+1/3*1/8+1/6=1/12+1/6=3/12 dla l=5 prawa strona= warunki tego typu są konieczne, ale nie wystarczające do wyznaczenia całej tabeli B. można podać więcej rozważając inne równania i wykorzystując założony rząd dokładności metody.

55 można podać więcej rozważając inne równania i wykorzystując założony rząd dokładności metody. [zapisujemy dla ogólnej, tj. ewentualnie niejawnej RK] u’= u (1) (2) w notacji wektorowej z oznaczeniami: z (2) eliminujemy U wstawiamy do (1)

56 zrównując wyrazy tego samego rzędu w Dt
dokładne rozwiązanie u(t)= exp(t) un= exp(Dt)un-1 u’= u dokładne: RK: zrównując wyrazy tego samego rzędu w Dt dla metody RK rzędu dokładności p czyli dla k=1,2,..,p

57 k=1 k=2 dla k=1,2,..,p wcześniej dowiedzieliśmy się, że oraz
dla l=2 da wzór po lewej (zał. że pośrednie min rzędu 2) nowe niezależne warunki dostaniemy dla k>2

58 u’= lu stabilność bezwzględna jawnych metod RK
z oznaczeniem z=lDt dostaniemy wg wcześniejszej analizy metoda RK rzędu p dokładnie odtwarza p pierwszych wyrazów r.T rozwiązania dokładnego dla k=1,2,..,p

59 u’= lu stabilność bezwzględna jawnych metod RK
z oznaczeniem z=lDt dostaniemy wg wcześniejszej analizy metoda RK rzędu p dokładnie odtwarza p pierwszych wyrazów r.T rozwiązania dokładnego dla k=1,2,..,p

60 u’= lu stabilność bezwzględna jawnych metod RK
z oznaczeniem z=lDt dostaniemy wg wcześniejszej analizy metoda RK rzędu p dokładnie odtwarza p pierwszych wyrazów r.T rozwiązania dokładnego dla k=1,2,..,p macierz A dla jawnych dolna trójkątna bez diagonali dla m  s dlatego: - możemy urwać drugą sumę współczynnik wzmocnienia dla jawnych RK jest wielomianem

61 czyli dla p  4 druga suma znika, mamy dokładnie:
rząd dokładności liczba stopni (odsłon) metody zamiast  Liczba kroków a rząd zbieżności jawnych metod RK: rząd p minimalna liczba odsłon s czyli dla p  4 druga suma znika, mamy dokładnie: stąd współczynnik wzmocnienia dla RK1,RK2,RK3 i RK4 rozwiązanie dokładne u=exp(lt) RK dokładności p dokładnie odtwarza pierwsze p wyrazów rozwinięcia Taylora rozwiązania dokładnego

62 nie większym niż 4 jest niezależny od wyboru a,b,c !
Stabilność bezwzględna RK ponadto: dla p4 mamy dla stabilności bezwzględnej: wniosek: region stabilności bezwzględnej jawnych metod RK o rzędzie dokładności nie większym niż 4 jest niezależny od wyboru a,b,c ! w szczególności dwie poznane metody rzędu drugiego: mają ten sam region stabilności

63 rejony bezwzględnej stabilności jawnych metod RK w s-odsłonach
dla danego s – rejony identyczne dla wszystkich wariantów dt Im(l) zakres stabilności rośnie z rzędem dokładności zobaczymy, że przeciwnie niż dla liniowych formuł wielokrokowych! RK2 Euler dt Re(l) rysunek skopiowany z Quarteroni: Numerical Mathematics RK3/RK4 obejmują również fragment Re(l)>0 dla rzeczywistego l region stabilności: dtl RK1 (-2,0) RK2 (-2,0) RK3 (-2.51,0) RK4 (-2.78,0)


Pobierz ppt "Szacowanie błędu lokalnego w metodach jednokrokowych"

Podobne prezentacje


Reklamy Google