Faculty of Nuclear Sciences and Physical Engineering Czech Technical University in Prague

Podobné dokumenty
Faculty of Nuclear Sciences and Physical Engineering Czech Technical University in Prague

Faculty of Nuclear Sciences and Physical Engineering Czech Technical University in Prague

Faculty of Nuclear Sciences and Physical Engineering Czech Technical University in Prague

stránkách přednášejícího.

Dnešní látka Opakování: normy vektorů a matic, podmíněnost matic Jacobiova iterační metoda Gaussova-Seidelova iterační metoda

Soustavy lineárních rovnic-numerické řešení. October 2, 2008

Faculty of Nuclear Sciences and Physical Engineering Czech Technical University in Prague

Připomenutí co je to soustava lineárních rovnic

Soustavy lineárních rovnic-numerické řešení

Paralelní algoritmy v lineární algebře. Násobení matic

Co je obsahem numerických metod?

Faculty of Nuclear Sciences and Physical Engineering Czech Technical University in Prague

a vlastních vektorů Příklad: Stanovte taková čísla λ, pro která má homogenní soustava Av = λv nenulové (A λ i I) v = 0.

Aplikovaná numerická matematika - ANM

Numerické metody lineární algebry

Numerické řešení soustav lineárních rovnic

Arnoldiho a Lanczosova metoda

Numerické metody lineární algebry

SOUSTAVY LINEÁRNÍCH ALGEBRAICKÝCH ROVNIC

VYBRANÉ PARTIE Z NUMERICKÉ MATEMATIKY

Vektory a matice. Obsah. Aplikovaná matematika I. Carl Friedrich Gauss. Základní pojmy a operace

Tento dokument obsahuje zadání pro semestrální programy z PAA. Vypracování. vypracovanou úlohu podle níže uvedených zadání. To mimo jiné znamená, že

DRN: Soustavy linárních rovnic numericky, norma

Úlohy nejmenších čtverců

Numerické řešení soustav lineárních rovnic

Základy maticového počtu Matice, determinant, definitnost

Numerické metody a programování. Lekce 4

0 0 a 2,n. JACOBIOVA ITERAČNÍ METODA. Ax = b (D + L + U)x = b Dx = (L + U)x + b x = D 1 (L + U)x + D 1 b. (i) + T J

1 0 0 u 22 u 23 l 31. l u11

Faculty of Nuclear Sciences and Physical Engineering Czech Technical University in Prague

Matice. Modifikace matic eliminační metodou. α A = α a 2,1, α a 2,2,..., α a 2,n α a m,1, α a m,2,..., α a m,n

4. Trojúhelníkový rozklad p. 1/20

Symetrické a kvadratické formy

FP - SEMINÁŘ Z NUMERICKÉ MATEMATIKY. Katedra matematiky a didaktiky matematiky Technická univerzita v Liberci

Maticí typu (m, n), kde m, n jsou přirozená čísla, se rozumí soubor mn veličin a jk zapsaných do m řádků a n sloupců tvaru:

Iterační metody řešení soustav lineárních rovnic. 27. prosince 2011

Četba: Texty o lineární algebře (odkazy na webových stránkách přednášejícího).

Cvičení 5 - Inverzní matice

2.6. VLASTNÍ ČÍSLA A VEKTORY MATIC

SOUSTAVY LINEÁRNÍCH ALGEBRAICKÝCH ROVNIC

Numerické metody a programování

0.1 Úvod do lineární algebry

Matematika (CŽV Kadaň) aneb Úvod do lineární algebry Matice a soustavy rovnic

EUKLIDOVSKÉ PROSTORY

Faculty of Nuclear Sciences and Physical Engineering Czech Technical University in Prague

0.1 Úvod do lineární algebry

PROSTORY SE SKALÁRNÍM SOUČINEM. Definice Nechť L je lineární vektorový prostor nad R. Zobrazení L L R splňující vlastnosti

1 Linearní prostory nad komplexními čísly

Základy matematiky pro FEK

Lineární algebra : Násobení matic a inverzní matice

2 Vektorové normy. Základy numerické matematiky - NMNM201. Definice 1 (Norma). Norma je funkcionál splňující pro libovolné vektory x a y a pro

P 1 = P 1 1 = P 1, P 1 2 =

Učební texty k státní bakalářské zkoušce Matematika Vlastní čísla a vlastní hodnoty. študenti MFF 15. augusta 2008

Interpolace, ortogonální polynomy, Gaussova kvadratura

[1] Determinant. det A = 0 pro singulární matici, det A 0 pro regulární matici

Četba: Texty o lineární algebře (odkazy na webových stránkách přednášejícího).

Necht tedy máme přirozená čísla n, k pod pojmem systém lineárních rovnic rozumíme rovnice ve tvaru

[1] LU rozklad A = L U

MASARYKOVA UNIVERZITA RELAXAČNÍ METODA

Lineární algebra : Násobení matic a inverzní matice

Soustavy lineárních rovnic a determinanty

Četba: Texty o lineární algebře (odkazy na webových stránkách přednášejícího).

Všechno, co jste kdy chtěli vědět o maticích, ale báli jste se zeptat

Soustavy linea rnı ch rovnic

15 Maticový a vektorový počet II

Operace s maticemi. 19. února 2018

Faster Gradient Descent Methods

AVDAT Nelineární regresní model

Pavel Klavík. Katedra aplikované matematiky, Matematicko-fyzikální fakulta, Univerzita Karlova v Praze

2. Schurova věta. Petr Tichý. 3. října 2012

vyjádřete ve tvaru lineární kombinace čtverců (lineární kombinace druhých mocnin). Rozhodněte o definitnosti kvadratické formy κ(x).

Matice. Předpokládejme, že A = (a ij ) je matice typu m n: diagonálou jsou rovny nule.

10. Soustavy lineárních rovnic, determinanty, Cramerovo pravidlo

AVDAT Vektory a matice


Definice 13.1 Kvadratická forma v n proměnných s koeficienty z tělesa T je výraz tvaru. Kvadratická forma v n proměnných je tak polynom n proměnných s

Učební texty k státní bakalářské zkoušce Matematika Skalární součin. študenti MFF 15. augusta 2008

1 Projekce a projektory

Základní spádové metody

Numerické řešení nelineárních rovnic

MATICE. a 11 a 12 a 1n a 21 a 22 a 2n A = = [a ij]

7. Lineární vektorové prostory

Singulární rozklad. Petr Tichý. 31. října 2013

D 11 D D n1. D 12 D D n2. D 1n D 2n... D nn

Soustavy lineárních rovnic

Lingebraické kapitolky - Počítání s maticemi

Vlastní číslo, vektor

Podobnost matic. Definice 8.6. Dány matice A, B M n (C). Jestliže existuje regulární matice P M n (C) tak,

Kapitola 11: Vektory a matice:

9 Kolmost vektorových podprostorů

Operace s maticemi

V předchozí kapitole jsme podstatným způsobem rozšířili naši představu o tom, co je to číslo. Nadále jsou pro nás důležité především vlastnosti

Lineární algebra : Skalární součin a ortogonalita

LWS při heteroskedasticitě

1 Determinanty a inverzní matice

BAKALÁŘSKÁ PRÁCE. Iterační metody pro řešení systémů lineárních rovnic UNIVERZITA PALACKÉHO V OLOMOUCI PŘÍRODOVĚDECKÁ FAKULTA

Moderní numerické metody

9. přednáška 26. listopadu f(a)h < 0 a pro h (0, δ) máme f(a 1 + h, a 2,..., a m ) f(a) > 1 2 x 1

Matematika B101MA1, B101MA2

1 Polynomiální interpolace

Transkript:

1 / 73 Faculty of Nuclear Sciences and Physical Engineering Czech Technical University in Prague

1 2 3 4 5 6 7 8 Super-relaxační 9 2 / 73

2 / 73 Budeme se zabývat mi pro řešení úlohy A x = b s regulární maticí A. Chceme najít efektivnější, než je GEM. iterativní generují posloupnost { x (k)} k=1, která konverguje k řešení soustavy lim x (k) = x k prakticky tak (obecně) nikdy nedostaneme přesné řešení, ale můžeme dostat (téměř) libovolně přesnou aproximaci

3 / 73 obecně obecně platí, že volíme libovolné x (0) a dále napočítáváme x (k+1) = B (k) x (k) + c (k), kde volba B (k) a c (k) záleží na použité ě dále požadujeme, aby pro všechna k platilo x = B (k) x + c (k), kde x je přesné řešení soustavy A x = b

4 / 73 Theorem 1 tvaru splňující obecně x (k+1) = B (k) x (k) + c (k), x = B (k) x + c (k), konverguje k x pro libovolné x (0) právě když, Důkaz. Platí lim k B(k) B (k 1)... B (0) = θ. x (k) x = B (k 1) x (k 1) + c (k 1) B (k 1) x c (k 1) = B (k 1) x (k 1) B (k 1) x = B (k 1) ( x (k 1) x ) = B (k 1) B (k 2)... B (0) ( x (0) x )

5 / 73 Citlivost a stabilita pokud během výpočtu dojde k nějaké chybě, třeba vinou zaokrouhlení, můžeme se na výsledný vektor dívat jako na nové x (0), které může být libovolné a bude konvergovat i tak chyby ve výpočtech se tedy nekumulují, ale eliminují jde o tzv. samoopravující vlastnost tím pádem již dále nemusíme studovat citlivost na výpočetní chyby

6 / 73 obecně pro řešení lineárních soustav se dělí na: stacionární B (k) a c (k) jsou konstantní tj. x (k+1) = B x (k) + c nestacionární B (k) a c (k) jsou různé pro každé k Výhoda stacionárních je, že pracujeme jen s jednou maticí. Jsou proto jednodušší na implementaci a také na numerickou analýzu. Dále budeme studovat pouze stacionární.

7 / 73 Theorem 2 daná vztahem a splňující iterativní x (k+1) = B x (k) + c x = B x + c, konverguje k x pro libovolné x (0) právě když platí, Důkaz. Plyne z věty 1 a lim k Bk = θ. lim k B(k 1)... B (0) = lim B k. k

8 / 73 Theorem 3 daná vztahem a splňující iterativní x (k+1) = B x (k) + c, x = B x + c, konverguje k x pro libovolné x (0) právě když platí, že ρ (B) < 1. Důkaz. Plyne z podmínek pro konvergenci posloupnosti B k.

9 / 73 iterativní Theorem 4 Postačující podmínkou pro to, aby daná vztahem a splňující x (k+1) = B x (k) + c, x = B x + c, konvergovala k x pro libovolné x (0) je, že B < 1 v nějaké maticové normě. Důkaz. Plyne z podmínek pro konvergenci posloupnosti B k.

10 / 73 iterativní Theorem 5 Aposteriorní odhady chyb pro stacionární iterativní : Pro u danou vztahem a splňující x (k+1) = B x (k) + c, x = B x + c, kde x je řešením soustavy lineárních rovnic A x = b, platí následující odhady chyby aproximace řešení: x (k) x A 1 A x (k) b = A 1 r (k), x (k) x (I B) 1 B x (k 1) x (k), při použití souhlasné maticové normy s danou vektorovou normou. Remark 6 Zde jsme použili definici rezidua v k-té iteraci r (k) = A x (k) b.

11 / 73 iterativní Remark 7 aposteriorní odhady chyb jsou důležité pro zjištění, kdy výpočet zastavit a to sice tehdy, je-li r (k) nebo x (k 1) x (k) dostatečně malé pojem "dostatečně malé" se často vztahuje k normě matice A nebo pravé strany b rovnice, tj. požadujeme např. r (k) < ɛ b

12 / 73 iterativní Theorem 8 Apriorní odhad chyby pro stacionární iterativní : Bud B < 1 v nějaké maticové normě. Pak pro posloupnost { x (k)} generovanou předpisem k=1 a splňující platí x (k+1) = B x (k) + c, x = B x + c, [ x (k) x B k x (0) c ] +, 1 B kde použitá maticová norma je souhlasná s použitou vektorovou normou.

13 / 73 iterativní nyní již víme, za jakých podmínek stacionární konverguje k nějakému vektoru x a známé odhady chyb dále se budeme zabývat otázkou, jak volit matici B a vektor c, aby vztah x = B x + c, platil pro řešení x soustavy lineárních rovnic A x = b

14 / 73 při návrhu nejjednodušší iterativní chceme najít nějaký způsob, jak zlepšit určitou aproximaci řešení x (k) potřebujeme tedy odhadnout, jaké chyby se s danou dopouštíme jediný odhad, který máme k dispozici, je reziduum r (k) = A x (k) b

15 / 73 zkusme tedy u x (k+1) = x (k) r (k) = x (k) A x (k) + b = (I A) x (k) + b vidíme, že splňuje podmínku x = (I A) x + ( b A x = ) b je tedy B = I A, c = b tuto u nazveme ou

16 / 73 10 { 11 / 1 bool postupneaproximace ( const Matrix& A, 2 const Vector& b, 3 Vector& x, 4 double eps ) 5 { 6 double normb = norm ( b ) ; 7 double r = eps + 1. 0 ; 8 Vector y ; 9 while ( r > eps ) 12 Postupne aproximace 13 / 14 r = 0. 0 ; 15 f o r ( i n t i = 0; i < n ; i ++ ) 16 { 17 double r _ i = b [ i ] ; 18 f o r ( i n t j = 0; j < n ; j ++ ) 19 r _ i = r _ i A [ i ] [ j ] x [ j ] ; 20 y [ i ] = x [ i ] r _ i ; 21 r = r + r _ i r _ i ; 22 } 23 / 24 Vypocet rezidua 25 / 26 r = sqrt ( r ) / normb ; 27 } 28 }

17 / 73 stacionární pro řešení soustav lineárních rovnic jsou implementovány v programu stationary-solver --input-file vstupní soubor s maticí --method použitá richardson, jacobi, gauss-seidel a sor --relaxation r relaxační parametr --matrix-format dense/ellpack formát pro uložení matice soustavy pro řídké matice je určen formát ellpack --initial-value v nastavení vektoru x (0) --max-iterations n maximální možný počet provedených iterací --convergence-residue r hodnota kritéria pro zastavení výpočtu (jde o proměnnou eps v kódu) --verbose n nastavuje úroveň vypisovaných informací v průběhu výpočtu

18 / 73 jak uvidíme později, je vlastně Richardsonova s relaxačním parametrem rovným 1 na tuto hodnotu je tento parametr nastaven automaticky, pokud neuvedeme jinak Example 9 1 s t a t i o n a r y s o l v e r method richardson \ 2 input f i l e data / matrix pd. mtx

19 / 73 Theorem 10 pro rovnici A x = b (s regulární maticí A) ve tvaru x (k+1) = (I A) x (k) + b, konverguje pro každé x (0) k řešení zadané rovnice právě když ρ (I A) < 1. Je-li I A < 1, pro nějakou maticovou normu, pak tato také konverguje k řešení soustavy pro libovolné x (0).

20 / 73 Theorem 11 Bud p (x) polynom proměnné x. Bud A C n,n, λ σ (A). Pak p (λ) σ (p (A)). Důkaz. Lze ukázat snadno s využitím Jordanova tvaru matice.

21 / 73 Theorem 12 Bud A hermitovská a PD. Pak konverguje právě když platí 2I > A > 0. Důkaz. Je-li A hermitovská a má-li být ρ (I A) < 1, pak musí být σ (I A) ( 1, 1) a podle předchozí věty Remark 13 Takových matic ale moc není. σ (A) (0, 2) 2I > A > 0.

22 / 73 Předpodmíněná abychom zlepšili konvergenci, použijeme tzv. předpodmínění soustavu A x = b vynásobíme vhodnou regulární maticí H dostaneme soustavu řešení se tím nezmění HA x = H b

23 / 73 Předpodmíněná má nyní mít tvar x (k+1) = x (k) r (k) a samozřejmě platí podmínka = x (k) HA x (k) + H b = x (k) H ( A x (k) ) b = (I HA) x (k) + H b (I HA) x + H b = x HA x + H b = x

24 / 73 Předpodmíněná ze vztahu x (k+1) = (I HA) x (k) + H b vidíme, že platí tedy následující věty B = I HA, c = H b

25 / 73 Předpodmíněná Theorem 14 Předpodmíněná pro rovnici A x = b (s regulární maticí A) s předpodmíněním H ve tvaru x (k+1) = (I HA) x (k) + H b, konverguje pro každé x (0) k řešení zadané rovnice právě když ρ (I HA) < 1. Je-li I HA < 1, pro nějakou maticovou normu, pak tato také konverguje k řešení soustavy pro libovolné x (0).

Předpodmíněná Theorem 15 Bud A hermitovská a PD. Pak předpodmíněná konverguje, pokud platí W + W > A > 0, kde W = H 1. Konvergence je navíc monotónní vzhledem k vektorové normě A. Remark 16 Pro u bez předpodmínění, je W = I a dostáváme již dokázané kritérium 2I > A > 0. Tato věta nám ale neříká nutnou podmínku!!! 26 / 73

Předpodmíněná nyní vyvstává otázka, jak volit matici H ze vztahu x (k+1) = x (k) HA x (k) + H b dostáváme, že při volbě H = A 1 je x (k+1) = x (k) HA x (k) + H b = x (k) A 1 A x (k) + A 1 b = x (k) x (k) + x = x by tak konvergovala po jedné iteraci získat A 1 ale umíme jen pomocí GEM, čemuž jsme se chtěli vyhnout umění je najít matici H tak, aby co nejlépe aproximovala A 1 ale byla snadno dosažitelná 27 / 73

28 / 73 tato je dána předpisem pro θ R x (k+1) = x (k) θ(a x (k) b), parametru θ se říká relaxační parametr snadno vidíme, že H = θi B = I θa c = θ b

29 / 73 10 while ( r > eps ) 11 { 12 / 1 bool Iterace ( const M a t r i x& A, 2 const Vector& b, 3 Vector& x, 4 double theta, 5 double eps ) 6 { 7 double normb = norm ( b ) ; 8 double r = eps + 1. 0 ; 9 Vector y ; 13 i t e r a c e 14 / 15 r = 0. 0 ; 16 f o r ( i n t i = 0; i < n ; i ++ ) 17 { 18 double r _ i = b [ i ] ; 19 f o r ( i n t j = 0; j < n ; j ++ ) 20 r _ i = r _ i A [ i ] [ j ] x [ j ] ; 21 y [ i ] = x [ i ] t h e t a r _ i ; 22 r = r + r _ i r _ i ; 23 } 24 / 25 Vypocet rezidua 26 / 27 r = sqrt ( r ) / normb ; 28 } 29 }

30 / 73 1 s t a t i o n a r y s o l v e r method richardson \ 2 r e l a x a t i o n 0.5 \ 3 input f i l e data / matrix pd. mtx Example 17 4 s t a t i o n a r y s o l v e r method richardson \ 5 r e l a x a t i o n 1.0 \ 6 input f i l e data / matrix pd. mtx 7 s t a t i o n a r y s o l v e r method richardson \ 8 r e l a x a t i o n 1.5 \ 9 input f i l e data / matrix pd. mtx 10 s t a t i o n a r y s o l v e r method richardson \ 11 r e l a x a t i o n 2.0 \ 12 input f i l e data / matrix pd. mtx

31 / 73 Theorem 18 Je-li A hermitovská a PD, pak Richardsonových iterací konverguje, právě když 2 θ I > A > 0. Konvergence je navíc monotónní vzhledem k vektorové normě A. Důkaz. Důkaz postačující podmínky plyne z věty 15, kde W = 1 θ I. Že jde o nutnou podmínku lze ukázata podobně jako u. Remark 19 Pro hermitovskou a PD matici A konverguje pro θ < 2 ρ (A).

32 / 73 navrhl ji Carl Gustav Jakob Jacobi (1845) u napočítáváme i-tou složku vektoru x (k+1) z vektoru x (k) tak, aby byla splněna i-tá rovnice soustavy tj. x (k+1) i = 1 a ii ( b i a i1 x (k) 1 a i2 x (k) 2... pro i = 1,..., n. a i,i 1 x (k) i 1 a i,i+1x (k) i+1... a inx (k) n ),

33 / 73 1 bool ( const Matrix& A, 2 const Vector& b, 3 Vector& x, 4 double eps ) 5 { 6 double normb = norm ( b ) ; 7 double r = eps + 1. 0 ; 8 Vector y ; 9 while ( r > eps ) 10 { 11 / 12 i t e r a c e 13 / 14 for ( int i = 0; i < n ; i ++ ) 15 { 16 double s = 0. 0 ; 17 for ( int j = 0; j < n ; j ++ ) 18 i f ( j!= i ) 19 s = s + A [ i ] [ j ] x [ j ] ; 20 y [ i ] = ( b [ i ] s ) / A [ i ] [ i ] ; 21 } 22 / 23 Vypocet rezidua 24 / 25 r = 0. 0 ; 26 for ( int i = 0; i < n ; i ++ ) 27 { 28 double Ax_i = 0. 0 ; 29 for ( int j = 0; j < n ; j ++ ) 30 Ax_i = Ax_i + A [ i ] [ j ] y [ j ] ; 31 r = r + ( Ax_i b_i ) ( Ax_i b_i ) ; 32 x [ i ] = y [ i ] ; 33 } 34 r = s q r t ( r ) / normb ; 35 } 36 }

34 / 73 Example 20 1 s t a t i o n a r y s o l v e r method j a c o b i \ 2 input f i l e data / matrix pd. mtx

- numerická analýza matici A přepíšeme ve tvaru kde A = D L R, D je diagonála matice A L jsou záporně vzaté prvky matice A pod diagonálou R jsou záporně vzaté prvky matice A nad diagonálou 35 / 73

36 / 73 - numerická analýza pro numerickou analýzu lze tuto u maticově zapsat takto x (k+1) = D 1 [ b + (D A) x (k)] = D 1 (L + R) x (k) + D 1 b ( = I D 1 A ) x (k) + D 1 b

37 / 73 - numerická analýza vidíme tedy, že B = I D 1 A c = D 1 b H = D 1

38 / 73 - numerická analýza Theorem 21 Nutnou a postačující podmínkou pro to, aby konvergovala pro libovolné x (0) je ( ) ρ D 1 (L + R) < 1. Postačující podmínkou je D 1 (L + R) < 1, v libovolné maticové normě.

39 / 73 - numerická analýza Definition 22 Maticí s převládající diagonálou nazveme takovou matici, pro kterou platí pro všechna i = 1,... n. j=1,...,n;j i aij < aii,

- numerická analýza Theorem 23 Má-li matice A převládající diagonálu, pak konverguje k řešení soustavy rovnic A x = b pro libovolnou volbu x (0). Theorem 24 Je-li matice A hermitovská a PD, pak konverguje k řešení soustavy rovnic A x = b pro libovolnou volbu x (0), právě když platí 2D > A > 0 tj. A a 2D A jsou pozitivně definitní. Konvergence je navíc monotónní vzhledem k vektorové normě A. Důkaz. Důkaz postačující podmínky plyne z věty 15, kde W = H 1 = D. Že jde o podmínku nutnou lze dokázat podobně jako u, není to ale triviální. 40 / 73

41 / 73 Example 25 - příklad A = 2 1 0 1 2 1 0 1 2, b = 1 0 1 k x (k) r (k) 0 (0, 0, 0) (1, 0, 1) 1 ( 1 2, 0, 1 2 ) (0, 1, 0) 2 ( 1 2, 1 2, 1 2 ) ( 1 2, 0, 1 2 ) 3 ( 3 4, 1 2, 3 4 ) (0, 1 2, 0) 4 ( 3 4, 3 4, 3 4 ) ( 1 4, 0, 1 4 ) 5 ( 7 8, 3 4, 7 8 ) (0, 1 4, 0) 6 ( 7 8, 7 8, 7 8 ) ( 1 8, 0, 1 8 )........., x = 1 1 1,

42 / 73 roku 1823 jí popsal Carl Friedrich Gauss v jednom dopise svému studentovi Ch.L.Gerlingovi roku 1874 jí publikoval Phillip Ludwig von Seidel

43 / 73 narozdíl od, tato využívá k napočítání nové složky vektoru x (k+1) i již napočítané složky tohoto vektoru tj. x (k+1) 1,..., x (k+1) i 1 je tedy dána předpisem x (k+1) i = 1 a ii ( b i a i1 x (k+1) 1 a i2 x (k+1) 2... pro i = 1,..., n. a i,i 1 x (k+1) i 1 a i,i+1 x (k) i+1... a inx (k) n ),

44 / 73 1 bool Gaussova ( const Matrix& A, 2 const Vector& b, 3 Vector& x, 4 double eps ) 5 { 6 double normb = norm ( b ) ; 7 double r = eps + 1. 0 ; 8 while ( r > eps ) 9 { 10 / 11 Gaussova i t e r a c e 12 / 13 14 for ( int i = 0; i < n ; i ++ ) 15 { 16 double s = 0. 0 ; 17 for ( int j = 0; j < n ; j ++ ) 18 i f ( j!= i ) 19 s = s + A [ i ] [ j ] x [ j ] ; 20 x [ i ] = ( b [ i ] s ) / A [ i ] [ i ] ; 21 } 22 / 23 Vypocet rezidua 24 / 25 r = 0. 0 ; 26 for ( int i = 0; i < n ; i ++ ) 27 { 28 double Ax_i = 0. 0 ; 29 for ( int j = 0; j < n ; j ++ ) 30 Ax_i = Ax_i + A [ i ] [ j ] x [ j ] ; 31 r = r + ( Ax_i b_i ) ( Ax_i b_i ) ; 32 } 33 r = s q r t ( r ) / normb ; 34 } 35 }

45 / 73 Example 26 1 s t a t i o n a r y s o l v e r method gauss s e i d e l \ 2 input f i l e data / matrix pd. mtx

46 / 73 - numerická analýza pro numerickou analýzu lze tuto u maticově zapsat takto x (k+1) = D 1 [ b + L x (k+1) + R x (k)] D x (k+1) L x (k+1) = b + R x (k) x (k+1) = (D L) 1 [ b + R x (k)] x (k+1) = (D L) 1 R x (k) + (D L) 1 b [ x (k+1) = I (D L) 1 A ] x (k) + (D L) 1 b

- numerická analýza vidíme tedy, že B = (D L) 1 R c = (D L) 1 b H = (D L) 1 47 / 73

48 / 73 - numerická analýza Theorem 27 Nutnou a postačující podmínkou pro to, aby konvergovala pro libovolné x (0) je ( ρ (D L) 1 R ) < 1. Postačující podmínkou je (D L) 1 R < 1, v některé maticové normě.

49 / 73 - numerická analýza Theorem 28 Má-li matice A převládající diagonálu, pak konverguje k řešení soustavy A x = b pro libovolnou volbu x (0). Theorem 29 Je-li matice A hermitovská a pozitivně definitní, pak konverguje k řešení soustavy A x = b pro libovolnou volbu x (0). Konvergence je navíc monotónní vzhledem k vektorové normě A. Důkaz. Plyne z věty 15, kde W = D L a W + W = 2D L L = D + A > A > 0.

50 / 73 - numerická analýza Remark 30 Bud A PD matice taková, že 2D A není PD. Potom nekonverguje, ale ano. je považována ze lepší u, než, i když v některých případech konverguje lépe nebo konverguje tehdy, když nekonverguje.

51 / 73 Example 31 A = - příklad 2 1 0 1 2 1 0 1 2, b = 1 0 1, x = 1 1, 1 Jacobi Gauss Seidel k x (k) r (k) x (k) r (k) 0 (0, 0, 0) (1, 0, 1) (0, 0, 0) (1, 0, 1) 1 ( 1 2, 0, 1 2 ) (0, 1, 0) ( 1 2, 1 4, 5 8 ) ( 3 4, 5 8, 0) 2 ( 1 2, 1 2, 1 2 ) ( 1 2, 0, 1 2 ) ( 5 8, 5 8, 13 16 ) ( 3 8, 3 16, 0) 3 ( 3 4, 1 2, 3 4 ) (0, 1 13 2, 0) ( 16, 13 16, 29 32 ) ( 3 16, 3 32, 0) 4 ( 3 4, 3 4, 3 4 ) ( 1 4, 0, 1 4 ) ( 29 32, 29 32, 61 64 ) ( 3 32, 3 64, 0) 5 ( 7 8, 3 4, 7 8 ) (0, 1 61 4, 0) ( 64, 61 64, 125 128 ) ( 3 64, 3 128, 0) 6 ( 7 8, 7 8, 7 8 ) ( 1 8, 0, 1 8 ) ( 125 128, 125 128, 253 256 ) ( 3 128, 3 256, 0)...............

Super-relaxační David M. Young, Jr., 1950 je známa zejména pod zkratkou SOR = Successive Over Relaxation method jde o modifikaci Gaussovy-Seidelovy funguje velmi dobře zejména na lineární systémy pocházející z konečných diferencí pro řešení parabolických nebo eliptických parciálních diferenciálních rovnic 52 / 73

53 / 73 Super-relaxační Gaussovu-Seidelovu u můžeme přepsat do tvaru kde x (k+1) i = x (k) i + x (k) i, x (k) i = 1 ( a i1 x (k+1) a 1 a i2 x (k+1) 2... a i,i 1 x (k+1) i 1 ii a ii x (k) i a i,i+1 x (k) i+1... a in x (k) n + b i )

54 / 73 Super-relaxační SOR je pak definována jako x (k+1) i = x (k) i ω je tzv. relaxační parametr + ω x (k) i, je-li ω = 1, dostáváme Gaussovu-Seidelovu u podobnou modifikaci lze snadno provést i pro u

55 / 73 Super-relaxační 1 bool sormethod ( const Matrix& A, 2 const Vector& b, 3 Vector& x, 4 double eps, 5 double omega ) 6 { 7 double normb = norm ( b ) ; 8 double r = eps + 1. 0 ; 9 while ( r > eps ) 10 { 11 / 12 SOR i t e r a c e 13 / 14 15 for ( int i = 0; i < n ; i ++ ) 16 { 17 double s = 0. 0 ; 18 for ( int j = 0; j < n ; j ++ ) 19 i f ( j!= i ) 20 s = s + A [ i ] [ j ] x [ j ] ; 21 x [ i ] += omega ( b [ i ] s ) / A [ i ] [ i ] ; 22 } 23 / 24 Vypocet rezidua 25 / 26 r = 0. 0 ; 27 for ( int i = 0; i < n ; i ++ ) 28 { 29 double Ax_i = 0. 0 ; 30 for ( int j = 0; j < n ; j ++ ) 31 Ax_i = Ax_i + A [ i ] [ j ] x [ j ] ; 32 r = r + ( Ax_i b_i ) ( Ax_i b_i ) ; 33 } 34 r = s q r t ( r ) / normb ; 35 } 36 }

56 / 73 Super-relaxační Example 32 1 s t a t i o n a r y s o l v e r method sor \ 2 r e l a x a t i o n 1.2 \ 3 input f i l e data / matrix pd. mtx

57 / 73 Super-relaxační - numerická analýza maticově lze u zapsat jako x (k+1) = x (k) + ωd ( 1 L x (k+1) D x (k) + R x (k) + ) b tj. tj. x (k+1) = (I ω(d ωl) 1 A) x (k) + ω(d ωl) 1 b, B ω = I ω(d ωl) 1 A = (D ωl) 1 ((1 ω) D + ωr), H ω = ω(d ωl) 1, c ω = ω(d ωl) 1 b.

58 / 73 Super-relaxační - numerická analýza Theorem 33 Nutnou a postačující podmínkou pro to, aby SOR konvergovala pro libovolné x (0) je Postačující podmínkou je ρ (B ω ) < 1. B ω < 1, v některé maticové normě.

59 / 73 Theorem 34 Pro libovolné ω R platí Super-relaxační - numerická analýza ρ (B ω ) ω 1, a tedy SOR nekonverguje pro ω 0 nebo ω 2. Theorem 35 Má-li matice A převládající diagonálu, pak SOR konverguje k řešení soustavy A x = b pro libovolnou volbu x (0) pokud je 0 < ω 1. Důkaz. Zatím neznám.

60 / 73 Super-relaxační - numerická analýza Theorem 36 (Ostrowski): Je-li matice A hermitovská a pozitivně definitní, pak SOR konverguje k řešení soustavy A x = b pro libovolnou volbu x (0) právě když, 0 < ω < 2. Konvergence je navíc monotónní vzhledem k vektorové normě A. Důkaz. Důkaz postačující podmínky z věty 15: W = 1 ( ) ω D L W 2 + W = ω 1 D + A > A > 0

61 / 73 Super-relaxační - numerická analýza Remark 37 Budeme zkoumat konvergenci SOR v závislosti na parametru ω. Kromě konvergence samotné nás bude zajímat i její rychlost, tj. budeme chtít najít ω 0 takové, aby bylo ρ (B ω ) resp. B ω co nejmenší. Remark 38 Vliv parametru ω na rychlost konvergence budeme analyzovat pro speciální typ matic tzv. dvoucyklických, shodně uspořádaných. Dá se ukázat, že tyto matice vznikají právě při řešení eliptických nebo parabolických rovnic pomocí konečných diferencí.

Super-relaxační - numerická analýza Definition 39 Elementární permutační maticí I ij pro (1 i, j n) nazveme takovou čtvercovou matici n-tého řádu, která má všechny diagonální prvky rovny 1, kromě prvků na i-tém a j-tém řádku, které jsou rovny 0. Mimodiagonální prvky jsou nulové kromě prvků na pozicích (i, j) a (j, i), které jsou rovny 1. 1... 1 0......... 1. 1. I ij =...... 1. 1......... 0 1... 1 Permutační maticí nazveme každou matici, kterou lze vyjádřit jako součin libovolného počtu elementárních permutačních matic. 62 / 73

63 / 73 Super-relaxační - numerická analýza násobením libovolné obdélnikové matice elementární permutační maticí zleva resp. zprava odpovídá prohození i-tého a j-tého řádku resp. sloupce snadno vidíme, že I ij = I T ij = I 1 ij a tedy elementární permutační matice je symetrická a ortogonální... a tedy i permutační matice je symetrická a ortogonální

64 / 73 Super-relaxační - numerická analýza Definition 40 Čtvercová matice C se nazývá slabě cyklická s indexem 2, jestliže existuje permutační matice P taková, že matice PCP T je blokového tvaru ( ) PCP T θ M1 = θ M 2

65 / 73 Super-relaxační - numerická analýza Definition 41 Necht A = D L R. Matice A se nazývá dvoucyklická, je-li odpovídající matice B J = D 1 (L + R) slabě cyklická s indexem 2. Definition 42 Dvoucyklická matice A se nazývá shodně uspořádaná, jestliže vlastní číslo matice nazávisí na volbě čísla α 0. αd 1 L + 1 α D 1 R

66 / 73 Super-relaxační - numerická analýza Theorem 43 Necht matice A je dvoucyklická, shodně uspořádaná. Necht λ 0 je vlastní číslo matice B ω a ω 0. Necht µ splňuje rovnici (λ + ω 1) 2 = ω 2 µ 2 λ. Pak µ je vlastní číslo matice B J a naopak, je-li µ vlastní číslo matice B J, pak příslušné λ je vlastním číslem matice B ω. Navíc platí, že pro 2 ω opt =, 1 + 1 ρ (B J ) 2 nabývá ρ (B ω ) své minimum a SOR tedy konverguje nejrychleji.

67 / 73 Shrnutí Podmínky na matici A pro konvergenci : s převládající diagonálou hermitovská a... Jacobi! 2D > A > 0 Gauss-Seidel! A > 0 SOR! A > 0

68 / 73 Výhody jsou-li vhodně použity, jsou mnohem rychlejší než přímé založené na GEM GEM má složitost n 3, pro velké matice je téměř nepoužitelná napočítání nového x (k) je založeno na násobení matice a vektoru nebo velice podobné operaci, která má složitost n 2 v praxi se často podaří, že dobrou aproximaci řešení získáme po pár iteracích nehledě na velikost matice

69 / 73 Výhody dokáží lépe využít vlastností řídkých matic. při šikovném uložení řídkých matic může mít násobení matice a vektoru ještě menší náročnost, než n 2 modifikace GEM pro obecné řídké matice je možná, ale algoritmicky velmi složitá při aplikaci GEM na řídkou matici může vzniknout mnoho nových nenulových prvků a narůst tak nároky na pamět iterativní nemění samotnou maticí A, díky tomu jsou snažší na implementaci v některých situacích ani nemáme matici A explicitně uloženou v paměti, pak je GEM nemožné použít

70 / 73 Výhody iterativní dokážou velice efektivně využít znalosti přibližného řešení, konvergují pak velice rychle v případě GEMu je nám jakýkoliv odhad řešení k ničemu

71 / 73 Nevýhody většina z nich nedá ani teoreticky přesné řešení po konečném počtu kroků musíme umět rozhodnout, kdy zastavit napočítávání dalších iterací x (k) počet nutných iterací silně závisí na konkrétní matici a tím pádem i doba výpočtu, u GEM doba výpočtu na samotné matici téměř nezávisí vyšetřování konvergence je často velice složité modifikovaná GEM funguje pro libovolnou regulární matici

72 / 73 Výpočetní příklad Example 44 Pomocí programu stationary-solver otestujte jednotlivé. výhoda stacionárních oproti GEM jsou vidět na PD matici gr_30_30.mtx špatná konvergence na PD matici bcsstk01.mtx indefinitní matice pores_1.mtx

73 / 73 Shrnutí konvergence stacionárních, apriorní a aposteriorní odhady chyb, a SOR odvození, maticový tvar (matice B, H), konvergence iteračních pro řešení lineárních soustav rovnic podle čeho byste se rozhodli, kterou třídu použijete?