Równania różniczkowe: równania funkcyjne opisujące relacje spełniane przez pochodne nieznanej (poszukiwanej) funkcji cząstkowe: funkcja więcej niż jednej zmienna, np.: czas i położenie np. wychylenie u(x,t) struny w położeniu ł ż x i czasie t u t x druga zasada dynamiki Newtona dla struny t+dt równania cząstkowe: nie zawsze jedną ze zmiennych jest czas, ale zawsze opisują obiekty rozciągłe
równania różniczkowe zwyczajne: jedna zmienna niezależna np. czas dla elementów punktowych, nierozciągłych r=(x,y) układ równań: ruch w polu centralnym v(t) R C L napięciowe prawo Kirchoffa równanie liniowe drugiego rzędu (nieliniowe) i równania Lotki Volterry Vlt układ równań nieliniowych 2 rzędu problem początkowy po zadaniu x(t=0),y(t=0), x (t=0), y (t=0). układ r. 1 rzędu nieliniowe z populacja zajęcy, w wilków α naturalne tempo wzrostu pop. zajęcy (pod nieobecność w), γ zaniku wilków bez z β, δ parametry oddziaływania populacji
zwyczajne zagadnienie brzegowe (zamiast czasu, położenie w 1D element rozciągły opisany jedną współrzędną) zwyczajne rzędu drugiego lub wyższego + warunki na funkcje i pochodne na końcach przedziału np. równanie Eulera Bernoulliego: wygięcie jednorodnego elastycznego pręta pod wpływem rozłożonego obciążenia w(x) lewy koniec: zamocowany i podparty prawy koniec: swobodny
Zaczynamy od rozwiązywania równań zwyczajnych 1) prostsza analiza niż dla cząstkowych 2) wprowadzimy pojęcia zbieżności, dokładności, stabilności itd. przydatne do metod rozwiązywania równań cząstkowych 3) jedna z metod rozwiązywania równań cząstkowych ) j ą y ą y (metoda linii) sprowadzamy równanie cząstkowe do układu równań zwyczajnych
Metoda linii: t układy równań różniczkowych zwyczajnych y po dyskretyzacji przestrzennej cząstkowego równania różniczkowego równanie adwekcji u n () (t)=u(x( n,t) x x 1 x 2 x 3 x 4 x 5 Δx centralny iloraz na pochodną przestrzenną układ N równań zwyczajnych
zwyczajne równania różniczkowe rzędu pierwszego [oraz ich układy] warianty: inna forma nieliniowe liniowe (układy równań liniowych rozwiązuje się analitycznie) β=0 jednorodne jeśli f=f(t) (nie zależy od y) rozwiązanie całka nieoznaczona jeśli f=f(y) (nie zależy od t) równanie autonomiczne (nie podlega zaburzeniom zależnym od t)
zagadnienie początkowe: równanie różniczkowe + warunek początkowy ą jeśli f=f(t) rozwiązanie: całka oznaczona
Równanie różniczkowe zwyczajne dowolnego rzędu można sprowadzić do układu równań pierwszego rzędu wystarczy jeśli potrafimy efektywnie rozwiązać układ równań rzędu pierwszego Przykład: Zmiana oznaczeń Układ równań do rozwią ązania Definicja traktowana jako jedno z równań do rozwiązania Równanie na najwyższą pochodną jedyne niedefinicyjne
O konieczności numerycznego rozwiązywania RRZ 1R: analitycznie rozwiązać można układ równań liniowych. nieliniowe: na ogół nie. zazwyczaj nie znamy rozwiązań analitycznych równań nieliniowych Układ 2 ciał oddziaływujących grawitacyjnie analitycznie rozwiązany przez Newtona r 3 V 3 r 2 V 2 Układ 3: ciał nie posiada analitycznego rozwiązania r 1 V 1 ponadto: automaty mające reagować na otoczenie nie znają postaci analitycznej f : ta jest brana z pomiarów bez wzoru na f skazani jesteśmy na rachunki numeryczne
Numeryczne rozwiązywanie problemu początkowego jeśli potrafimy rozwiązać układ równań rzędu pierwszego rozwiążemy każdy różniczkowy problem początkowy
Numeryczne rozwiązywanie problemu początkowego Dyskretyzacja zmiennej czasowej n n+1 n+2 itd. t Δt n+1 Δt n+2 dyskretyzacja zmiennej czasowej sprowadza równania różniczkowe do różnicowych (metoda różnic skończonych) Dobra metoda ma zapewnić zadaną dokładność przy pomocyminimalnej minimalnej liczby wywołań f (przy maksymalnym kroku czasowym) przy dyskusji metod zakłada się, że wyliczenie f jest kosztowne [jeśli nie jest kosztowne nie ma problemu]
tw. Taylora między t a Δt istnieje it ij taki tkipunkt ξ, że im więcej znamy pochodnych w punkcie t tym większe otoczenie t możemy dobrze przybliżyć obciętym rozwinięciem Taylora ograniczenie na resztę: maksymalna wartość czwartej pochodnej u w okolicy t stąd O(Δt 4 )
Rząd błędu obcięcia w rozwinięciu Taylora rozwijane wokół t=0 [w roz.t. Δt=t] 1.0 u(0)=1 u=exp( t 2 /2) 0.8 0.6 0.4 0.2 u=exp( t 2 /2) 0.00 0.0 0.5 1.0 1.5 2.0 t
Jawny schemat Eulera
Jawny schemat Eulera przepis na pojedynczy krok z u(t) do u(t+δt) ) można wyliczyć bo znamy t i u(t) błąd lokalny jawnego Eulera w kroku t n 1 t n wg tw. Taylora l n = błąd lokalny schematu różnicowego: odchylenie wyniku numerycznego od dokładnego, które pojawia się w pojedynczym kroku całkowania
Jawny schemat Eulera stosowany wielokrotnie: ilk ti... krok wcale nie musi być taki sam dla każdego n, ale tak przyjmiemy do analizy
Jawny schemat Eulera dokładny u(t)=exp(t) dla du/dt=u W rozwiązaniu dokładnym nachylenie u dane jest przez u w każdej chwili Jawny schemat Eulera Jawnym schemat Eulera zakłada, że nachylenie jest stałe w jednym kroku czasowym Δt Δt Δt i bierze je z wartości przybliżonej Tylko u dla początku kroku 0 = u (0) później u n < u(t n ) Co prowadzi do akumulacji błędów
Jawny schemat Eulera dokładny u(t)=exp(t) dla du/dt=u każdy krok wykonywany z nachyleniem branym z chwili, w której krok się zaczyna Zmniejszamy krok Δt: Błąd lokalny zmaleje, ale do ustalonej chwili T musimy wykonać więcej kroków. W każdym kroku wprowadzamy nowy błąd. Błędy się akumulują. Czy opłaca się zmniejszać kroki czasowe? Definicja: Błąd globalny różnica między rozwiązaniem dokładnym a numerycznym w chwili t Czy się opłaca znaczy: Czy błąd globalny maleje gdy Δtmaleje? a jeśli tak czy maleje do zera? (czy możliwe jest dokładne rozwiązanie równania różniczkowego uzyskane jako granica schematu różnicowego)
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 dokładnym u(t)=exp(λt) u 1.0 0.8 0.6 0.4 λ= 100 Δt=0.001 jawny Euler e (bł łąd globaln ny) = u dokład dny nume eryczny 0.0200 dokładny 0.01600160 0.000 0.002 0.004 0.006 0.008 0.010 t 0.0120 0.0080 0.0040 0.000 0.002 0.004 0.006 0.008 0.010 t
Jawny schemat Eulera Czy błąd globalny maleje gdy Δt maleje? Czy maleje do zera? eksperyment numeryczny problem początkowy: u =λu, u(0)=1 z rozwiązaniem dokładnym u(t)=exp(λt) λ= 100 zmniejszajmy krok czasowy, jaki wynik w chwili t=0.01? [1/e=.3678794] n Δt u n exp( 1) u n 10 10 3 0.34867 1.920 10 2 10 2 10 44 0.36603 1.847 10 33 10 3 10 5 0.36769 1.840 10 4 10 4 10 6 0.36784 1.839 10 5 błąd globalny w chwili t=0.01 wydaje się zmieniać liniowo z krokiem czasowym interpretacja: błąd lokalny rzędu Δt 2 popełniony n =t/δt razy daje błąd globalny rzędu Δt
zmniejszajmy j krok czasowy, jaki wynik w chwili t=0.01? [1/e=.3678794] n Δt u n exp( 1) u n 10 10 3 0.34867 1.920 10 2 10 2 10 4 4 0.36603 1.847 10 3 3 10 3 10 5 0.36769 1.840 10 4 10 4 10 6 0.36784 1.839 10 5 błąd globalny w chwili t=0.01 wydaje się zmieniać liniowo z krokiem czasowym Definicja: Metody różnicowa jest zbieżna jeśli błąd globalny e znika do zera w chwili T gdy z Δt do 0
czy jawny schemat Eulera jest zbieżny? sprawdźmy analitycznie propagacje błędu (błąd globalny) dla ogólniejszego problemu modelowego. problem modelowy: ogólne liniowe niejednorodne o stałych współczynnikach zmiana y proporcjonalna do wartości y i niejednorodności σ rozwiązanie ą analityczne dla σ=0 rozwiązanie analityczne dla λ=0
czy jawny schemat Eulera jest zbieżny? sprawdźmy analitycznie propagacje błędu (błąd globalny) dla ogólniejszego problemu modelowego. problem modelowy: ogólne liniowe niejednorodne o stałych współczynnikach zmiana y proporcjonalna do wartości y i niejednorodności σ rozwiązanie ą analityczne dla σ=0 rozwiązanie analityczne dla λ=0 ogólne rozwiązanie analityczne:
czy jawny schemat Eulera jest zbieżny? sprawdźmy analitycznie propagacje błędu (błąd globalny) dla ogólniejszego problemu modelowego. rozwiązanie analityczne: problem modelowy: ogólne liniowe niejednorodne o stałych współczynnikach zmiana y proporcjonalna do wartości y i niejednorodności σ t=0 t τ warunek początkowy wzmacniany z czynnikiem exp(λt) Zasada Duhamel ten sam czynnik [tzw. propagator] wzmacnia niejednorodność σ niejednorodność wchodzi do rozwiązania tak jak warunek początkowy z opóźnieniem odpowiadającym chwili w której się pojawia
oznaczenia y n = rozwiązanie równania różnicowego w chwili t n =Δt n y(t n ) = rozwiązanie dokładne r. różniczkowego schemat Eulera: odpowiedni wzór dla rozwiązania dokładnego z równania różniczkowego Aby wyliczyć błąd globalny e n+1 =y(t n+1 ) y n+1 odejmujemy stronami podkreślone wzory
(Euler) (dokładny) e n+1 =y(t n+1 ) y gdzieś n+1 między t n a t n+1 błąd globalny w kroku n+1= błąd globalny w kroku n wzmocniony o czynnik (1+λΔt) i powiększony o nowy błąd lokalny cofnijmy się do chwili początkowej w n 1 w n
dyskretna zasada Duhamel: błąd początkowy wzmacniany jak (1+λΔt) liczba kroków błąd który pojawia się w kroku i tym wzmacniany w ten sam sposób, co początkowy błędy jawnego Eulera wzmacniane jak rozwiązanie dokładne w odpowiada σ, e odpowiada y (1+λΔt) n odpowiada exp(λt n )
Czy metoda zbieżna?? załóżmy, że potrafimy wstawić warunek początkowy bezbłędnie : e 0 = 0 Zakładamy, że arytmetyka jest dokładna
pierwsze dwa wyrazy r.t. reszta + Δt 2 λ ^2 /2 exp(λξ n )? Pokazaliśmy, że metoda Eulera zbieżna dla problemu modelowego. Można pokazać, że zbieżna jest dla każdej f (ciągłej w sensie Lipschitza) Jej rząd zbieżności (dokładności) pierwszy
rząd zbieżności (dokładności) określa jakość metody: jak szybko błąd globalny dla chwili T zmierza do zera w funkcji Δt jawna metoda Eulera = pierwszy rząd dokładności O(Δt) jest to minimalny rząd dokładności dla użytecznej metody zmniejszajmy krok czasowy, jaki wynik w chwili t=0.01? [1/e=.3678794] n Δt u n exp( 1) u n 10 10 3 0.34867 1.920 10 2 10 2 10 44 0.36603 1.847 10 33 10 3 10 5 0.36769 1.840 10 4 10 4 10 6 0.36784 1.839 10 5
Definicja: Metody różnicowa jest zbieżna jeśli błąd globalny znika do zera w chwili T gdy z Δt do 0 zbieżność a błędy zaokrągleń (skończona dokładność arytmetyki zmiennoprzecinkowej)
pojedyncza jd precyzja: 32 bity podwójna : 64 bity błędy zaokrągleń a zbieżność do tej pory zakładaliśmy, że błędy zaokrągleń nie ma (że arytmetyka dokładna) arytmetyka zmiennoprzecinkowa nie jest dokładna. arytmetyka 21 bitowa zmniejszanie kroku czasowego nie poprawi już wyniku błąd minimalny
błędy zaokrągleń a metody różnicowe rozwiązanie równania różniczkowego w chwili t n rozwiązanie równania różnicowego z dokładną arytmetyką rozwiązanie uzyskane z arytmetyką skończonej dokładności błąd całkowity błąd globalny (jak wcześniej zdefiniowano) błąd zaokrąglenia oszacowanie od góry błędu całkowitego
błędy zaokrągleń a metody różnicowe błąd błąd globalny dla schematu Eulera błąd zaokrągleń rzędu liczby wykonanych kroków, czyli 1/dt dt optymalny krok czasowy błędy zaokrągleń dają o sobie znać gdy wykonamy zbyt wiele kroków remedium: używać się schematów o wyższym rzędzie zbieżności niż pierwszy
błędy zaokrągleń a metody różnicowe oszacowanie od góry błędu całkowitego błąd globalny dla schematu Eulera błąd całkowity dt błąd zaokrągleń błąd ą globalny błąd zaokrąglenia optymalny krok czasowy Definicja: Metody różnicowa jest zbieżna jeśli błąd globalny uwaga: definicja zbieżności dotyczy błędu globalnego a nie całkowitego znika do zera w chwili T gdy z Δt do 0
Wróćmy do eksperymentu numerycznego i zwiększmy krok czasowy do Δt=0.05 problem początkowy: u = 100u, u(0)=1 z rozwiązaniem dokładnym u(t)=exp( 100t) iteracja się rozbiega t n u n 0 1 0.05 4 0.1 8 0.15 16 02 0.2 256 0.25 1024 0.3 4096 wniosek: wyniki metody zbieżnej mogą eksplodować dla zbytdużegokrokuczasowego
schemat różnicowy dla bezwzględna stabilność schematu różnicowego du/dt = f (dla danego f) i dla danego kroku czasowego jest bezwzględnie stabilny jeśli kolejne generowane przez niego wartości pozostają skończone. Uwaga: Zbieżność jest cechą ą schematu niezależnie od f Bezwzględna stabilność określa się dla konkretnego równania W charakterystyce schematów Najczęściej stabilność bezwzględna: określana jest dla autonomicznego problemu liniowego
Weźmy λ = 1, u(0)=1, rozwiązanie dokładne u(t)=exp( t) Przepis Eulera: u n+1 =u n Δtu n 6 u(t) 0.6 0.4 0.2 dokładny Δt=0.5 Δt=0.9 Δt=1 : wszędzie 0 u(t) 4 2 0-2 Δt=1.2 Δt=2 Δt=2.5 0.0 0 2 4 6 8 10 t -4 0 2 4 6 8 10 t Schemat bezwzględnie stabilny dla Δt 2 uwaga: rozwiązanie bezwzględnie stabilne (np Δt=1 lub Δt=2) uwaga: rozwiązanie bezwzględnie stabilne (np. Δt=1 lub Δt=2) może być bardzo niedokładne lub wręcz jakościowo złe = tutaj stałe i niemonotoniczne odpowiednio
bezwzględna stabilność jawnej metody Eulera + λδt u n = u n 1 + λδt u n 1 wsp. wzmocnienia wyniki pozostaną skończone dla n jeśli:
Zmienna zespolona z= λδt region bezwzględnej stabilnościmetody: zbiór z=λδt, dla których metoda jest bezwzględnie stabilna region bezwzględnej stabilnościjawnej metody Eulera: zbiór punktów odległych od ( 1,0) o nie więcej niż 1 koło o środku w ( 1,0) i promieniu 1 Δt Im (λ) 2 1 1 1 Δt Re(λ) niestabilność bezwzględna metody dla prawej połowy p. Gaussa = nic dziwnego rozwiązanie dokładne y 0 exp(λt) eksploduje do nieskończoności gdy t.
pozbyć się ograniczenia na krok czasowy: niejawna metoda Eulera jawna metoda Eulera niejawna metoda Eulera jawna metoda Eulera (funkcjonuje jak podstawienie) funkcjonuje jak równanie nieliniowe metoda odważna metoda ostrożna zmiana u zgodna z prawą stroną w punkcie docelowym
niejawna metoda Eulera: problem początkowy: u = 100u, u(0)=1 niejawny Euler z rozwiązaniem dokładnym u(t)=exp( 100t) jawny Euler t n u n 0 1 0.05 4 0.1 8 015 0.15 16 0.2 256 0.25 1024 0.3 4096 t n u n e(t n ) 0 1 0 0.05.166(6).15992 0.1.027(7).02773 0.15.004(629).00462 0.2.0007716 0.25.0001286 0.3.00002143 itd.. exp( 100 t n ) gaśnie znacznie szybciej niż 1/6 n mało dokładne, ale zawsze to lepiej niż eksplodująca oscylacja jawnego Eulera
niejawna metoda Eulera: region bezwzględnej stabilności Δt Im (λ) 1 1 Δt Re(λ) rejon bezwzględnej stabilności: dopełnienie pustego koła o środku w (1,0) i promieniu 1
ΔtIm (λ) 1 1 ΔtRe(λ) Niejawny schemat Eulera λ=1 zakres niestabilności Δt (0,2) nse nse Δt=0.1 exp(t) Δt=0.8 08 Zbliżamy się do Δt=1 wyniki schematu rosną coraz szybciej Dla Δt=1 nieskończoność w pierwszym kroku Δt=1.2 Δt=1.5 Δt=2 1, 1,1, 1 11 1 itd
regiony stabilności metod Eulera ΔtIm (λ) Δt Im (λ) 2 1 1 1 1 Δt Re(λ) 1 Δt Re(λ) metoda Eulera jawna niejawna metoda Eulera
niejawna metoda Eulera: region bezwzględnej stabilności Δt Im (λ) 1 1 Δt Re(λ) Re(λ)<0 : niejawny Euler bezwzględnie stabilny dla dowolnego kroku czasowego takie metody: tzw. A stabilne dla Re(λ)>0, poza kołem metoda Eulera jest bezwzględnie stabilna mimo, że rozwiązania równania różniczkowego są niestabilne (patrz wyżej) w tym obszarze metoda jest nadstabilna daje skończone wartości, mimo że rozwiązania dokładne dąży do nieskończoności bezwzględna stabilność nie oznacza dobrej dokładności. W regionie nadstabilności dla Re(λ)>0 błędy będą rosły w nieskończoność.
jak rozwiązać, gdy nie można rozwikłać równania (f nieliniowe względem u) lub gdy f nieznane w formie wzoru 1) iteracja funkcjonalna iterować do zbieżności jeśli się zbiegnie u μ =u μ 1 i mamy rozwiązanie równania nieliniowego
iteracja funkcjonalna przykład problem początkowy: ą u = 100u, u(0)=1, dt=0.05 z rozwiązaniem dokładnym u(t)=exp( 100t) t n u n e(t n ) 0 1 0 0.05.166(6).15992 0.1.027(7).02773 0.15.004(629).00462 0.2.0007716 0.25.0001286 0.3.00002143 kolejne oszacowania: 1, 4, 21, 104, 521, 2604,... iteracja się nie zbiega cały zysk z niejawności stracony bo nie potrafimy wykonać kroku
iteracja funkcjonalna przykład iteracja się nie zbiega. zmniejszymy krok kdt, zaczynając iterację od u n 1 będziemy bliżej rozwiązania. i Może ż się zbiegnie. i dt=0.01 dt=0.001 (1,0,1,0,1,0) 1, 0.9, 0.91, 0.909, 0.9091, 0.90909, 0.909091,... 0.90909090909 iteracja funkcjonalna się zbiega gdy Δt max f u (t,u) 1 (w otoczeniu u) u = 100u, Δt 100 < 1 uwaga: w tej sytuacji jawny Euler jest bezwzględnie stabilny dla 2 krotnie większego kroku! [dla jawnego Eulera Δt 100 < 2] Z iteracją funkcjonalną stosować wstecznego Eulera nie ma sensu.
problem początkowy: u = 100u, u(0)=1, dt=0.05 1, 4, 21, 104, 521, 2604,... z rozwiązaniem dokładnym u(t)=exp( 100t) oscylująca rozbieżność stłumimy ją: iteracja funkcjonalna zapewniamy zbieżność modyfikując przepis iteracyjny zamiast: mieszając nowe i stare rozwiązania z wagą w, 0 w 1 Zabieg podobny do podrelaksacji jeśli się zbiegnie i to do rozwiązania schematu niejawnego
problem początkowy: u = 100u, u(0)=1, dt=0.05 z rozwiązaniem dokładnym u(t)=exp( 100t) 1.2 0.8 0.4 0.0 w=0.1 w=0.3 iterujemy u(dt) wybierając w odpowiedni sposób wagę w: potrafimy ustabilizować iterację i doprowadzić ją do zbieżności. -0.4 w=0.2-0.8 1 2 3 4 5 6 7 8 9 10 11
w=0 dt=0.01 (1,0,1,0,1,0) w=.2 w.2 (optymalne dla dt=0.05) 0.8,0.68, 0.608, 0.5648, 0.53888, 0.5233, 0.51399, 0.50839, 0.50503, 0.503, 0.5018, 0.5010, 0.50065, 0.50039,..., 1/2 tutaj optymalne byłoby w=1/2 (zbieżność w jednej iteracji) dt=0.001 w=1 w1 1, 0.9, 0.91, 0.909, 0.9091, 0.90909, 0.909091,... 0.90909090909 w=0.2 dla w=.7 0.3,0.58,0.468,0.512,0.4948,0.5003,0.4998 0 0 0 512 0 4948 0 5003 0 4998
dt=0.0101 w=0 (1,0,1,0,1,0) dt=0.001 w=.2 w.2 (optymalne dla dt=0.05) 0.8,0.68, 0.608, 0.5648, 0.53888, 0.5233, 0.51399, 0.50839, 0.50503, 0.503, 0.5018, 0.5010, 0.50065, 0.50039,..., 1/2 tutaj optymalne byłoby w=.5 (zbieżność w jednej iteracji natychmiastowa) w=1 w1 1, 0.9, 0.91, 0.909, 0.9091, 0.90909, 0.909091,... 0.90909090909 w=0.2 dla w=.7 0.3,0.58,0.468,0.512,0.4948,0.5003,0.4998 0 0 0 512 0 4948 0 5003 0 4998 Problem: 1) w trzeba odpowiednio dobrać (mniejszy krok czasowy, w bliższe 1) 2) dla źle dobranego w iteracja może być wolnozbieżna Proces optymalizacji (np. dynamicznej) w może być kłopotliwy.