region bezwzględnej stabilności dla ogólnej niejawnej metody RK u =λu u=λu, z=λδt dla metod niejawnych: ij nie można ż obciąć bićrozwinięcia i i Taylora, bo A pełnał współczynnik wzmocnienia nie jest wielomianem, okazuje się, że jest funkcją wymierną R(z) 1 może być nieograniczony niejawna 1 stopniowa
region bezwzględnej stabilności dla ogólnej niejawnej metody RK wsp wzmocnienia niejawnego RK metoda rzędu p ma współczynnik wzmocnienia, który do O(z p+1 ) zgadza się z eksponentą Współczynniki wzmocnienia jawnych RK wielomany, niejawnych funkcje wymierne przybliżenie Padé (j,k) funkcji exp(z) [funkcja wymierna będącą przybliżeniem exp(z) maksymalnego rzędu] P k Q j nie mają wspólnych czynników (nie można uprościć ułamka) Warunek normalizacji: q 0 =1 Do wyznaczenia k+j+1 wartości. Rząd dokładności do uzyskania: k+j (bo od wykładnika 0 zaczynamy uzgadniać). R jk (z)=exp(z)+o(z k+j+1 )
przykład: wyznaczyć przybliżenie Padé (j,k)=(2,0) funkcji exp(z) +O(z 3 ) +O(z 3 ) p 0 =1 q +1=0 =1, = 1, =1/2) 2.0 1 10 (p 0 q 1 q 2 2.8 2.4 exp q 1 +1/2+q 2 /2=0 1.6 1.2 R 20 0.0 0.5 1.0 0.8 R 20 pozostaje skończone dla rzeczywistego z, w przeciwieństwie do obciętego rozw. Taylora
przybliżenia Padé R jk funkcji exp(z): współczynniki wzmocnienia metod RK jawny RK1 (Euler) RK2 (jawna) niejawny Euler RK Radaua s=1 RK Radaua rzędu 2 dla s odsłon metoda rzędu 2s jest tylko jedna, a jej błąd wzmocnienia jest przybliżeniem Padé eksponenty R ss niejawny jednostopniowy RK niejawny dwustopniowy RK RK Legendre a 2stopniowy Metody, które prowadzą dodiagonali diagonali orazdwóch pierwszych poddiagonali tabeli Padé są A stabilne (bezwzględnie stabilne dla Re(z) 0) na diagonali R ss : q s = p s więc R(z) 1 gdy z poniżej diagonali dla (1,0),(1,2)(2,1) : R(z) 0 gdy z
definicja: metoda jest L stabilna jeśli jest A stabilna oraz R(z) 0 gdy z L stabilne A stabilne najwyższego rzędu dokładności (czyli nie L stabilne) przydatne, gdy rozwiązanie szybko oscyluje, czyli Re(λ) 0, ale Im(λ) >>1 metody L stabilne przydatne w problemach sztywnych gdy Re(λ)<<0 wtedy okazuje się być opłacalne zrezygnować z wysokiej dokładności na rzecz stabilności
Punkty kolokacji wybrane wg zer wielomianu Legendre a : maksymalny rząd 2s, metody A stabilne, nie L stabilne : ze współczynnikami wzmocnienia z diagonali tabeli Pade Osobna klasa to metody RK pochodzące od wielomianów i Radaua Rd (2s 1) definiowanych na podstawie wielomianu Legendre a P jedno z zer wielomianu: na prawym końcu przedziału R s =P s ±P s-1 Tabela Butchera dla RK Radaua s=2: RK Radaua: odpowiadają poddiagonali w tabeli Pade : są ą L stabilne (lepsze od RK Legendre a w problemach sztywnych)
NJRK 2, sposób rozwiązywania równań predyktor= układ równań nieliniowych korektor (podstawienie po rozwiązaniu równań predyktora na U1, U2)
Niejawne metody RK = sposób rozwiązywania jawne RK = stosuje się ę kolejne podstawienia = łatwo niejawne RK = metoda Newtona m. Newtona jedno równanie korektor = tylko podstawienie F(x)=0 F(x n +Δx)=F(x n )+Δx F (x n ) F(x n )=Δx F (x n ) predyktor: układ s równań nieliniowych do rozwiązania M. Newtona dla układu 2 równań macierz Jakobiego
Niejawne metody RK rozwiązywanie równań predyktora układ s : równań nieliniowych układ równań rozwiązywany w jednej iteracji na przesunięcia ΔU i było:
Niejawne metody RK rozwiązywanie równań predyktora układ s : równań nieliniowych układ równań rozwiązywany w jednej iteracji na przesunięcia ΔU i w każdej iteracji musimy wyliczyć s pochodnych f po u (w s chwilach czasowych)
niejawne RK dla układu 2 równań (laboratorium) predyktor dla pojedynczego równania:
niejawne RK dla układu 2 równań (laboratorium) predyktor dla pojedynczego równania: numer szukanej funkcji nr chwili predyktor dla dwóch równań ń
niejawne RK dla układu 2 równań (laboratorium) predyktor dla pojedynczego równania: numer szukanej funkcji nr chwili predyktor dla dwóch równań ń w zapisie wektorowym: wracamy do formy dla pojedynczego równania U 1 =[U 11,U 12 ] T na laboratorium - f liniowe więc układ równań liniowych
Układ m równań różniczkowych rozwiązywany niejawną metodą RK u, f, U i wektory o m zmiennych niejawny schemat RK: (wzory jak dla pojedynczego równania, ale z arytmetyką wektorową) s równań predyktora to układ nieliniowy do rozwiązania predyktor zapisany w formie układu s równań nieliniowych: gdy już mamy U korektor ma formę podstawienia [jak w jawnych RK] tyle równań nieliniowych ile etapów w RK (s) każde przybliżenie U i ma m składowych s wektorów o m składowych łącznie ms niewiadomych macierz m na m
Układ równań różniczkowych rozwiązywany niejawną metodą RK z iteracją Newtona macierz m na m z oznaczeniem: macierz Jakobianu policzona w l tej odsłonie (macierz m na m) to jest przepis na jeden krok iteracyjny, a iteracji może być wiele dla układów wielu (setek tysięcy) układów równań wyliczenie (oszacowanie) Jakobianu w s odsłonach nowych w każdej iteracji może być kosztowne, wtedy rezygnujemy z liczenia J w każdej odsłonie
pomysł: zastosować Jakobiany wyliczone w chwili początkowej u n 1 i nie zmieniać ich w czasie iteracji wtedy: ted przybliżony Jkbi Jakobian nie zmienia i rozwiązania i gdy osiągniemy zbieżność może ją spowolnić albo uniemożliwić, ale przy dużych macierzach zazwyczaj się opłaca odpadają indeksy przy J i mamy J policzymy tylko raz, ale wykonamy więcej iteracji często opłaca ł się raczej dłużej ż iterowaćć niż w każdej iteracji wyliczać s macierzy Jakobiego
Metody RK produkuje się na zamówienie ze względu na 1) dokładność 2) A/L-stabilność 3) łatwość iterowania równań predyktora SDIRK
DIRK: macierz A jest dolnoprzekątniowa (diagonally implicit RK) SDIRK: wszystkie wyrazy na diagonali są identyczne (singly diagonally implicit...) metody DIRK: iteracja Newtona (układ równań) rozwiązywany blokowo metody SDIRK: dodatkowo pojedyncza faktoryzacja macierzy m na m (nie sm na sm) [dokładność najwyżej j s+1 [zamiast maksymalnej j( (2s)] ale tania iteracja Newtona] wtedy macierz układu równań pojedynczej iteracji Newtona: wtedy macierz układu równań pojedynczej iteracji Newtona: ma postać ć
DIRK: macierz A jest dolnoprzekątniowa (diagonally implicit RK) SDIRK: wszystkie wyrazy na diagonali są identyczne (singly diagonally implicit...) metody DIRK: iteracja Newtona (układ równań) rozwiązywany blokowo metody SDIRK: dodatkowo pojedyncza faktoryzacja macierzy m na m (nie sm na sm) [dokładność najwyżej j s+1 [zamiast maksymalnej j( (2s)] ale tania iteracja Newtona] wtedy macierz układu równań F = MΔU pojedynczej iteracji Newtona: ma postać zamiast faktoryzacji macierzy sm na sm (złożoność [sm] 3 ) : 1) faktoryzujemy tylko jedną macierze m na m : blok diagonalny [złożoność [m] 3 ] dla s=4: 64 x szybciej 2) rozwiązujemy ą równanie m na m na ΔU 1 z pierwszego wiersza blokowego i przechodzimy do drugiego gdzie ΔU 1 wykorzystana do złożenia prawej strony równania na ΔU 2 itd..
skonstruujmy SDIRK dla s=2, max p=s+1 warunki konieczne na wsp RK: l p dla k p niezależne dla k>2 1-a 1-2a ½ ½ ta z minusem : A stabilna ta z plusem nie
Równania różniczkowe zwyczajne: problem brzegowy [1D] 1) Równania różniczkowe zwyczajne jako szczególny przypadek problemów opisywanych przez eliptyczne równania cząstkowe 2) Problem brzegowy a problem początkowy (case study) ) 3) Metoda różnic skończonych (idea, rozwinięcie później) 4) Metoda Numerowa 5) Mtd Metoda strzałów problem początkowy problem brzegowy:
mówiliśmy, o równaniach różniczkowych zwyczajnych opisujących wielkości ilk ś i dane funkcjami wyłącznie czasu, z warunkiem początkowym. Rozwiązaniem ą równań różniczkowych cząstkowych są zazwyczaj funkcje zarówno czasu i położenia (pole elektryczne, rozkładu temperatury, prędkości przepływu itp.) modelowe równania przy jednym wymiarze przestrzennym u(x,t): dyfuzji ciepła (paraboliczne) fl falowe (hiperboliczne) Poissona (eliptyczne)
eliptyczne niezależne od czasu: u =u(x) () wyłącznie ą funkcja położenia stany ustalone, równowagowe itp. równania elektrostatyki, ustalony transport ciepła, przepływy cieczy w stanie ustalonym, etc. +S(x) Problem brzegowy: równanie różniczkowe (na razie zwyczajne) + warunek na rozwiązanie na brzegu. Brzeg w 1D: 2 punkty warunki brzegowe w 1D: napoczątku (x=0) i końcu pudła obliczeniowego (x=l) 1) na wartość funkcji (Dirichleta) u(0)=a, u(l)=b 2) na pochodną funkcji (Neumanna) u (0)=a, u (L)=b 3) mieszane (Robina) u(0)+cu (0)=a (0)=a, u(l)+du (L)=b (L)=b
opis jednowymiarowy problemów wielowymiarowych Przykład nr 1) równanie Poissona (jednostki atomowe), gęstość ładunku zależna tylko od x albo rozkład temperatury w jednorodnej sztabce ze źródłami ciepła w kąpieli cieplnej z x y układ jednorodny i rozległy w (y,z) + warunki brzegowe niezależne od y i z [płaski kondensator] interesuje nas rozkład potencjału w środku układu warunki brzegowe: Dirichleta: wartość potencjału (temperatury) : Neumana: wartość pola elektrycznego (strumienia ciepła)
P2: problem o wysokiej sferycznej symetrii r odległość od początku układu wsp. + atom wodoru: obiekt sferyczny 3D jądro + elektron gęstość ładunku jądra: p(r)=+δ 3 (r) (jednostki atomowe) gęstość ładunku elektronowego zależy tylko od odległości od jądra: n(r)= exp( 2r)/π. równanie jest liniowe zasada superpozycji:
laplasjan we współrzędnych sferycznych punktowy ładunek o nieskończonej gęstości w r=0 φ + =1/r składowa od gęstości elektronowej n(r)= exp( 2r)/π. 1/r φ(r) -n(r) 0 1 2 3 4 5 r
n(r)= exp( 2r)/π. gdy n(r) nieznane w postaci analitycznej pozostaje rachunek numeryczny numeryczny rachunek φ dla rozciągłej gęstości ładunku o symetrii sferycznej n: n(r) () r r=0 zdyskretyzować ć równanie zamiast wartości ś dla ciągłych ł r wartości ś dyskretne Zamiast pochodnych ilorazy różnicowe zamiast równania różniczkowego algebraiczny układ równań ń
potrzebne warunki brzegowe na potencjał φ (dla r=0 oraz dla dużego r) cała sztuka w rozwiązywaniu problemów brzegowych to dobór odpowiednich w.b. i skuteczne ich wprowadzenie do równania tw. Gaussa r. Poissona 1/r φ(r) (*) jakobian -n(r) duże R całka potrójna dąży jedynki (z normalizacji n) duże R: E(R)=1/R 2, φ= 1/R gdy powierzchnia pudła obliczeniowego obejmuje 0 1 2 r 3 4 5 cały ładunek potencjał jak dla punktowego ładunku gdy rozkład gęstości rozciągły: 2) potencjał skończony dla r=0 (zamiast osobliwości 1/r) 3) jego pochodna znika w r=0 [E=zero dla małego r patrz drugie równanie (*)] WB: dla dużego r: φ(r)=1/r (Dirichlet) g φ( ) / ( ) dla małego r: dφ(r)/dr=0 (Neumann)
WB Neumanna trudniejszy w zastosowaniu, chcemy go przekształcić w warunek Dirichleta warunki brzegowe na f f(0)=0 bo φ(0) skończone, f (r=duże)= 1 bo φ (r=duże) 1/r.
spróbujmy ten problem rozwiązać numerycznie + f(0)=0, f(r)= 1, gdzie R promień pudła obliczeniowego obejmujący całe n Iloraz różnicowy drugiej pochodnej (1) (2) (1) plus (2) trójpunktowy iloraz drugiej pochodnej do rozwiązania problem algebraiczny: f 0 =0, f N = 1 Δr r f 0 f 1 f 2
f 0 =0, f N = 1 Układ równań liniowych rozwiązać i po sprawie. ale: dokładność rachunku ograniczona dokładnością ilorazu różnicowego drugiej pochodnej poznaliśmy świetne metody do rozwiązania problemu początkowego może je spróbować zastosować?
alternatywa: ustawmy ten wzór jak dla problemu początkowego (jak liniową metodę wielokrokową): nasz problem początkowy drugiego rzędu dla warunku początkowego: potrzebna funkcja+pochodna tzn. f 0 i f 1 Powiedzmy, że znamy 1) f 0 [bo znamy] 2) f 1 [to powiedzmy] możemy wyliczyć f 2 i następne. następnie: sprawdzimy, czy f N spełni WB na prawym końcu. as ęp e sp a d y, cyf N spe a pa y o cu Jeśli tak problem rozwiązany
znamy f 0 i f 1 wstawiamy analityczne, liczymy f 2 i następne. 1.0 -f 0.5 Δr = 0.1 analityczne 1 (r+1)exp( 2r) numeryczne Katastrofa! f(analitycz zne)-f(numerycz zne) 0.06 0.04 0.02 Krzyżyki = 0.0027 r 0.0 0 4 8 r 12 16 20 0.00 0 4 8 12 16 20 r (WB na prawym końcu ń nie spełniony: ł Błąd ł okazuje się liniowy i rachunek numeryczny łamie prawo Gaussa z r! potencjał daleko od źródła nie będzie 1/r )
0.06 numeryczne) f(analityczne)-f(n 0.04 0.02 0.00 0 4 8 12 16 20 Błąd f jest tli linowy z r! Jak to zrozumieć? Pod nieobecność ładunku: d k (równanie Laplace a) g(r)=ar+b. W naszym problemie n istotnie znika dla dużych r, gdzie rozwiązanie powinno być postaci g(r)= 1 (czyli a=0,b= 1) Z drugiej strony: rozwiązanie równania Laplace a a g (jednorodnego) możemy zawsze dodać do rozwiązania równania Poissona f g+f spełni równanie Poissona, ale warunki brzegowe niekoniecznie W naszym wyniku: błąd polega na niezerowej wartości a. Skąd ą się ę ona bierze? f+g Trójpunktowy schemat różnicowy drugiej pochodnej dokładnie różniczkuje nawet parabolę, 0.5 więc dla funkcji typu ar+b się nie myli! wniosek: Z obszaru w którym n<>0 iteracja wychodzi z błędem. n(r) błąd pochodzi z całkowania n(r) 0.0 0 4 8 r 12 16 20 1.0 f f
Cóż można poradzić żeby rozwiązanie numeryczne nie odklejało się od dokładnego dla dużych r? 1.0 f f 0.5 Δr = 0.1 f+g rozwiązać ć jednak jd problem (URL) z narzuconymi warunkami brzegowymi z obydwu stron zagęścić siatkę n(r) 0.0 0 4 8 r 12 16 20 scałkować równanie wstecz spróbować wykorzystać lepszą (dokładniejszą) metodę f 1 zamiast analitycznego przyjąć taki, aby prawy warunek był spełniony (metoda strzałów)
Zagęścić siatkę (metoda brutalnej siły) 1.0 f f+g 1.0 f f+g f 0.5 Δr = 01 0.1 f 0.5 Δr = 0.01 n(r) 0.00 0 4 8 12 16 20 r n(r) 0.0 0 4 8 12 16 20 r w f 1 wstawiona wartość analityczna w f 1 wstawiona wartość analityczna przy drobnym kroku przestrzennym nie generuje widocznego błędu
widzieliśmy, że schemat wychodził poza zakres n(r)<>0 z błędem, pomysł: scałkować równanie wstecz Zamiast do przodu: scałkujemy wstecz: 1.0 f 0 = 1, f 1 =analityczne f N = 1, f N 1 =1 znamy potrzebne 2 wartości! 0.8 Δr = 0.1 0.6 f 0.4 Całkowanie wstecz (od r=20) zoom do 2 0.2 kółka analityczne krzyżyki numeryczne 0.0 0.0 0.4 0.8 r 1.2 1.6 2.0 dla r=0 : f (numeryczne) =6 10 6 zamiast zera Δr = 0.1 r Tam gdzie pojawia się ładunek, tam pojawiają się również błędy, ale nie narastają.
tajemnica naszego sukcesu: Startowaliśmy w obszarze, gdzie n(r) znika czyli tam obowiązuje r. Laplace a: g(r)=ar+b. Ustawiliśmy jego rozwiązanie na: a=0, b= 1. Dzięki temu: nie pozwoliliśmy domieszać się rozwiązaniu Laplace a z innymi a i b błąd pojawia się tam gdzie ładunek, ale zbytnio nie rośnie
metoda różnic skończonych dla ustalonych WB f 0 =0, f N = 1 układ równań rozwiązany iteracyjnie, (relaksacja) Δr = 01 0.1 r r rozwiązanie wstecz (gdzie właściwy WB w r=0 został odnaleziony) nie gorsze od relaksacji, gdzie spełnienie obydwu WB jest wymuszone. dlaczego błąd w rozwiązaniu do przodu jest tak wielki?
znowu całkowanie do przodu, ale tym razem: f 0 = 0, f 1 = wyliczone z relaksacji zamiast wzoru analitycznego dla Δr=0.1 dokładne rozwiązanie numeryczne jest nieco inne niż analityczne. a (dokładne numeryczne: 0.0996 dokładne analityczne: 0.09930993 ) r wniosek: błąd pierwszego podejścia polegał na zastosowaniu analitycznego wyniku na f 1! Uwaga: to samo rozwiązanie uzyskujemy każdą z 3 metod. cały ł błąd leży ż teraz w ograniczonej jdokładności d ś ilorazu różnicowego.
dla całkowania do przodu: Jeśli f 1 = analitycznie nie jest to najlepsze = odgadniemy: metoda strzałów 1.2 f 0 =0, f 1 = dobieramy tak aby prawy wb był odtworzony f(r=daleko)=1, lub f (r=daleko = 0) 0.8 metoda strzałów: Służy do rozwiązania problemu brzegowego przy pomocy podejścia dedykowanego dla problemu początkowego: wstrzelić należy się w (nieznany) parametr 0.4 f1=0.0993 (analityczny) f1=0.1 f1=0.099675 0.0 0 4 8 12 16 20 określający przebieg = u nas f 1.