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

Slides:



Advertisements
Podobne prezentacje
Modelowanie i symulacja
Advertisements

Modelowanie i symulacja
Rozwiązywanie równań różniczkowych metodą Rungego - Kutty
Wykład 4 2. Przykłady ruchu 1.5 Prędkość i przyśpieszenie c.d.
Metody numeryczne część 3. Całkowanie metodą Eulera i Simpsona.
Metody numeryczne część 1. Rozwiązywanie układów równań liniowych.
IV Tutorial z Metod Obliczeniowych
Różniczkowanie numeryczne
Zadanie z dekompozycji
Metody Numeryczne Wykład no 12.
Wykład no 9.
Przykład: Dana jest linia długa o długości L 0 bez strat o stałych kilometrycznych L,C.Na początku linii zostaje załączona siła elektromotoryczna e(t),
Wykład no 11.
Problemy nieliniowe Rozwiązywanie równań nieliniowych o postaci:
Liniowość - kryterium Kryterium Znane jako zasada superpozycji
Metoda węzłowa w SPICE.
Problemy nieliniowe Rozwiązywanie równań nieliniowych o postaci:
„METODA FOURIERA DLA JEDNORODNYCH WARUNKÓW BRZEGOWYCH f(0)=f(a)=0”
Metody Sztucznej Inteligencji w Sterowaniu 2009/2010Optymalizacja miary efektywności działania sztucznych sieci neuronowych Dr hab. inż. Kazimierz Duzinkiewicz,
OPORNOŚĆ HYDRAULICZNA, CHARAKTERYSTYKA PRZEPŁYWU
Metody matematyczne w Inżynierii Chemicznej
Metoda różnic skończonych I
Metody matematyczne w inżynierii chemicznej
Metody matematyczne w Inżynierii Chemicznej
AUTOMATYKA i ROBOTYKA (wykład 6)
AUTOMATYKA i ROBOTYKA (wykład 5)
Zakładamy a priori istnienie rozwiązania α układu równań.
MECHANIKA NIEBA WYKŁAD r.
Modelowanie i identyfikacja 2010/2011Optymalizacja miary efektywności działania sztucznych sieci neuronowych Dr hab. inż. Kazimierz Duzinkiewicz, Katedra.
Ostyganie sześcianu Współrzędne kartezjańskie – rozdzielenie zmiennych
Źródła błędów w obliczeniach numerycznych
Maciej Paszyński Katedra Informatyki Akademia Górniczo-Hutnicza
Szeregi funkcyjne dr Małgorzata Pelczar.
Metody matematyczne w Inżynierii Chemicznej
Metody matematyczne w inżynierii chemicznej Wykład 3. Całkowanie numeryczne.
METHOD OF LINES (MOL) Poznan University of Life Sciences Department of Hydraulic and Sanitary Engineering Hamdi, Schiesser & Griffiths:
EXCEL Wstęp do lab. 4. Szukaj wyniku Prosta procedura iteracyjnego znajdowania niewiadomej spełniającej warunek będący jej funkcją Metoda: –Wstążka Dane:
Tematyka zajęć LITERATURA
Metody matematyczne w inżynierii chemicznej
Metody rozwiązywania układów równań nieliniowych
Metody nieinkluzyjne: Metoda iteracji prostej.
MECHANIKA NIEBA WYKŁAD r. E r Zagadnienie dwóch ciał I prawo Keplera Potencjał efektywny Potencjał efektywny w łatwy sposób tłumaczy kształty.
Wykład Rozwinięcie potencjału znanego rozkładu ładunków na szereg momentów multipolowych w układzie sferycznym Rozwinięcia tego można dokonać stosując.
Układ jest w stanie X. Do jakiego stanu przejdzie? wybieramy losowo stan próbny X p z pewnego otoczenia stanu X X p :=X+(  x 1,  x 2,...,  x n ) – 
region bezwzględnej stabilności dla ogólnej niejawnej metody RK
Problem opisany RRZ jest sztywny gdy: jest charakteryzowany różnymi skalami czasowymi. 2.Stabilność bezwzględna nakłada silniejsze ograniczenia na.
Problem opisany RRZ jest sztywny gdy: jest charakteryzowany różnymi skalami czasowymi. 2.Stabilność bezwzględna nakłada silniejsze ograniczenia na.
Szacowanie błędu lokalnego w metodach jednokrokowych
Symulacje obliczeniowe: w technice: inżynieria obliczeniowa: modelowanie i symulacja zjawisk i działania urządzeń. badania i optymalizacji procesów produkcyjnych.
U(t) t  t u’(t)=f(t,u) u(t+  t)=u(t)+  (t,u(t),  t) RRZ: Jednokrokowy schemat różnicowy.
inżynierskie metody numeryczne
Równania różniczkowe: równania funkcyjne opisujące relacje spełniane przez pochodne nieznanej (poszukiwanej) funkcji cząstkowe: funkcja więcej niż jednej.
Czy błąd całkowity maleje gdy Dt maleje ? Czy maleje do zera?
jawna metoda Eulera niejawna metoda Eulera
U(0)=0 proste równanie traktowane jawnym schematem Eulera.
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.
Ustaliliśmy, że do rozwiązywania równania adwekcji lepiej nadaje się mniej dokładny schemat upwind niż ten z ilorazem centralnym a=vdt/dx upwind: centralny:
yi b) metoda różnic skończonych
Stosowane modele równowagi ogólnej (CGE) Wykład 2.
Na szczęście nie jesteśmy skazani na iterację funkcjonalną 2)metoda Newtona-Raphsona (stycznych) szukamy zera równania nieliniowegoF(x) F(x n +  x)=F(x.
Liniowe metody wielokrokowe dla równań zwyczajnych starsze niż RK o 50 lat użyteczne, gdy problem nie wymaga zmiany dt ważne: schematy do rozwiązywania.
 Formuła to wyrażenie algebraiczne (wzór) określające jakie operacje ma wykonać program na danych. Może ona zawierać liczby, łańcuchy znaków, funkcje,
Fundamentals of Data Analysis Lecture 12 Approximation, interpolation and extrapolation.
/ /61/3 1/6 Tabela Butchera dla klasycznej jawnej RK4.
Systemy neuronowo – rozmyte
Teoria sterowania Wykład /2016
Metody matematyczne w Inżynierii Chemicznej
Analiza numeryczna i symulacja systemów
Jednorównaniowy model regresji liniowej
Sterowanie procesami ciągłymi
Zapis prezentacji:

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]

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: 1.1331] 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

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.

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)

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)

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.

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

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, 0.3125, 0.34375, 0.328125, 0.33593, 0.33203, 0.333984, ... ,0.333333 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

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

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

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

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

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-1 tn-1/2 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?

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

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

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

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

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

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 ?

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

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

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

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

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 :

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

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

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 1 2 3 4 5 6 7 8 minimalna liczba odsłon 1 2 3 4 6 7 9 11 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

jawny Euler tabela Butchera b1=b2=1/2, a=c=1 RK2 trapezów 1/2 1 RK2 punktu środkowego 1/2 1

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

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

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)

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ń

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,

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)

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

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

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

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

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

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 ?

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

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)

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

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

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