Aplikovaná numerická matematika - ANM 3 Řešení soustav lineárních rovnic iterační metody doc Ing Róbert Lórencz, CSc České vysoké učení technické v Praze Fakulta informačních technologií Katedra počítačových systémů Příprava studijních programů Informatika pro novou fakultu ČVUT je spolufinancována Evropským sociálním fondem a rozpočtem Hlavního města Prahy v rámci Operačního programu Praha adaptabilita (OPPA) projektem CZ17/3100/3195 Příprava a zavedení nových studijních programů Informatika na ČVUT v Praze Praha & EU: Investujeme do vaší budoucnosti R Lórencz (ČVUT FIT) Řešení SLR iterační metody PI-ANM, 011, Předn 3 1 / 0
Obsah přednášky Metoda LU rozkladu Choleského rozklad Iterační metody řešení SLR R Lórencz (ČVUT FIT) Řešení SLR iterační metody PI-ANM, 011, Předn 3 / 0
Metoda LU rozkladu (1) V Gaussově eliminační metodě jsme upravili původní matici na tzv trojúhelníkový tvar Takto upravenou matici můžeme bez problémů vyřešit Necht A = {a ij R i, j = 1,,, n} je čtvercová matice Hledejme matice L, U tak, aby platilo A = LU, kde 1 0 0 u 11 u 1 u 1n l 1 1 0 L =, U = 0 u u n (1) l n1 l n 1 0 0 u nn Součin matic LU porovnáme s maticí A dostaneme n podmínek pro výpočet koeficientů l ij, u ij Postup: vypočítáme prvky 1 řádku matice U, potom 1 sloupec matice L, dále řádek matice U, sloupec matice L atd R Lórencz (ČVUT FIT) Řešení SLR iterační metody PI-ANM, 011, Předn 3 3 / 0
Metoda LU rozkladu () S využitím tzv LU rozkladu matice A dostáváme LUx = b () Položme Ux = y, potom U = Ly = b Dostáváme tak trojúhelníkovou soustavu Ly = b, (3) ze které určíme vektor y Tento vektor použijeme jako pravou stranu soustavy Ux = y, (4) z které dále určíme vektor x Při řešení soustav lineárních rovnic (3), (4) se jedná o postup jako při řešení soustavy Gaussovou eliminaci, tj jde vlastně o zpětný chod R Lórencz (ČVUT FIT) Řešení SLR iterační metody PI-ANM, 011, Předn 3 4 / 0
Metoda LU rozkladu (3) Algoritmus LU rozkladu Let A = a ij, j {1,,, n}, i {1,,, n} for j = 1,,, n do: for i = 1,,, j do: x := 0 for k = 1,,, i 1 do: x := x + l ik u kj u ij := a ij x for i = j + 1, j +,, n do: x := 0 for s = 1,,, j 1 do: x := x + l is u sj l ij := ( a ij x ) /u jj (if u jj = 0 exit) Output: l ij, i {, 3,, n}, j {1,,, i 1}; u kl, k {1,,, n}, l {k, k + 1,, n} R Lórencz (ČVUT FIT) Řešení SLR iterační metody PI-ANM, 011, Předn 3 5 / 0
Metoda LU rozkladu (4) Metoda LU rozkladu a Gaussova eliminační metoda Gaussova eliminační metoda převádí výchozí soustavu na ekvivalentní soustavu s trojúhelníkovou maticí Při eliminaci neznáme x 1 jsme odečítali od ostatních řádků (kromě 1) m (1) i násobky 1 řádku matice A od řádku i-tého, i = 1,,, n Násobením matice A maticí M 1 zleva dostáváme stejný výsledek M 1 = 1 0 0 0 0 m (1) 1 0 0 0 m (1) 3 0 1 0 0, M = m (1) n 1 0 0 1 0 m (1) n 0 0 0 1 1 0 0 0 0 0 1 0 0 0 0 m () 3 1 0 0 0 m () n 1 0 1 0 0 m () n 0 0 1 Analogicky pro eliminací neznámé x je násobení zleva maticí M R Lórencz (ČVUT FIT) Řešení SLR iterační metody PI-ANM, 011, Předn 3 6 / 0
Metoda LU rozkladu (5) Eliminaci x 3 násobení zleva maticí M 3, atd až pro eliminaci x n 1 z n-té rovnice, násobení zleva maticí M n 1 1 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 1 0 0 M 3 = 0 0 m (3) n 1 1 0 0 0 m (3) n 0 1, M n 1 = 0 0 0 1 0 0 0 0 m (n 1) n 1 1 část Gaussova algoritmu, je tedy ekvivalentní vynásobení matice A zleva maticí M = M n 1,, M 3, M, M 1 Výsledkem eliminace je převedení matice A na horní trojúhelníkovou matici U a platí MA = U Z toho dostáváme A = M 1 U = LU, kde jsme označili L = M 1 R Lórencz (ČVUT FIT) Řešení SLR iterační metody PI-ANM, 011, Předn 3 7 / 0
Metoda LU rozkladu (6) Dále platí M 1 = (M n 1 M 3 M M 1 ) 1 = M 1 1 M 1 M 1 3 M 1 Inverzní matice M 1 i se liší od M i změnou znaménka prvků m (l) i 1 0 0 0 0 m (1) 1 0 0 0 L = M 1 1 M 1 M 1 3 M 1 n 1 = m (1) 3 m () 3 1 0 0 m (1) n 1 m () n 1 m (3) n 1 1 0 m (1) n m () n m (3) n m (n 1) n 1 Matici A jsme rozložili na součin dolní trojúhelníkové matice L s jedničkami na diagonále a horní trojúhelníkovou matici U (viz rovnice ()) a teda A = LU n 1 Z eliminačního postupu plyne, že tento LU rozklad lze provést právě, když všechny hlavní prvky a 11, a (1), jsou nenulové, a() 33 (5) R Lórencz (ČVUT FIT) Řešení SLR iterační metody PI-ANM, 011, Předn 3 8 / 0
Metoda LU rozkladu (7) To je ekvivalentní podmínce, že všechny hlavní minory matice A, tj determinanty podmatic ( ) ( ) a a11 a 11 a 1 a 13 a11, 1, a a 1 a 1 a a 3,, A, a 31 a 3 a 33 jsou nenulové Tento předpoklad stačí pro existenci rozkladu podle rovnice () Tento rozklad je jediným rozkladem Pro prvky l i,j matice L ze vztahu (13) z výše uvedeného platí l i,j = m (j) i, kde i =, 3,, n a j = 1,,, i 1 Porovnáme-li LU rozklad s Gaussovým algoritmem, vidíme, že eliminační část Gaussova algoritmu zde odpovídá nalezení LU rozkladu a vyřešení soustavy (3) R Lórencz (ČVUT FIT) Řešení SLR iterační metody PI-ANM, 011, Předn 3 9 / 0
Metoda LU rozkladu (8) Oba postupy jsou také ekvivalentní i co do prováděných aritmetických operací, které mají pouze rozdílné uspořádání V Gaussově eliminaci byly prvky vektoru y vypočítány průběžně během eliminace V metodě LU rozkladu je vektor y vypočítaný nakonec po určení LU rozkladu matice A Pokud se vyskytne případ řešení SLR se stejnou maticí A a různými pravými stranami je výhodné použití LU rozkladu vzhledem k vícenásobnému použití LU rozkladu, který byl nalezen při řešení prvé soustavy Počet nutných operací se při použití již hotového LU rozkladu značně sníží Pak počet násobících operací nutných k výpočtu řešení soustavy je roven n a počet sčítacích operací je n(n 1) R Lórencz (ČVUT FIT) Řešení SLR iterační metody PI-ANM, 011, Předn 3 10 / 0
Metoda LU rozkladu (9) Pokud řešíme SLR Gaussovou metodou s výběrem hlavního prvku, dostaneme též LU rozklad matice A, avšak s tím rozdílem, že budou jinak uspořádány řádky a sloupce Obvyklý trojúhelníkový LU rozklad dostaneme, pokud budeme při každém eliminačním kroku přerovnávat řádky a sloupce tak, že i-tý hlavní prvek bude v i-tém řádku a i-tém sloupci tento LU rozklad bude náležet jisté matici A, která vznikne právě zmíněným přerovnáním řádků a sloupců z původní matice A R Lórencz (ČVUT FIT) Řešení SLR iterační metody PI-ANM, 011, Předn 3 11 / 0
Choleského rozklad (1) Definice Pozitivně definitní matice Symetrická matice A R n n je pozitivně definitní jestliže x T Ax > 0 pro každé x R n, x 0 Definice Choleského faktor Necht A R n n je symetrická matice pozitivně definitní matice Potom existuje právě jedna horní trojúhelníková matice R R n n jejíchž všechny diagonální prvky jsou kladné, taková, že A = R T R Matice A se nazývá Choleského faktor matice A Vyjádření A = R T R se nazývá Choleského rozklad Choleského rozklad lze použít pro řešení SLR s pozitivně definitní maticí soustavy R Lórencz (ČVUT FIT) Řešení SLR iterační metody PI-ANM, 011, Předn 3 1 / 0
Choleského rozklad () Řešení SLR pomocí Choleského rozkladu Uvažujme SLR Ax = b, kde A R n n je pozitivně definitní, b R n Pokud A má Choleského rozklad R T Rx = b Pokud označíme y = Rx R T y = b Rovnost A = R T R lze rozepsat podrobněji a 11 a 1 a 1n a 1 a a n = r 11 0 0 r 1 r 0 r 11 r 1 r 1n 0 r r n a 1n1 a n a nn r 1n r n r nn 0 0 r nn ( ) i 1 i 1 / r ii = aii r ki, r ij = a ij r ki r kj r ii, j = i + 1,, n (6) k=1 k=1 R Lórencz (ČVUT FIT) Řešení SLR iterační metody PI-ANM, 011, Předn 3 13 / 0
Choleského rozklad (3) Řešení SLR pomocí Choleského rozkladu Podle rekurentních vztahu 6 jsme schopní vygenerovat celou matici R Tato metoda se nazývá Choleského metoda nebo také odmocninová metoda Věta Choleský rozklad a matice pozitivně definitní Symetrická matice A R n n je pozitivně definitní právě když všechny hodnoty r ii získané v průběhu výpočtu podle vzorců 6 jsou kladné Dostáváme tak metodu k ověření pozitivní definitnosti symetrické reálné matice Metoda Choleského rozkladu je v současné době považována za nejefektivnější numerický test pozitivní definitnosti matice Algoritmus Choleského rozkladu je zpětně stabilní R Lórencz (ČVUT FIT) Řešení SLR iterační metody PI-ANM, 011, Předn 3 14 / 0
Iterační metody řešení SLR (1) Jacobiho iterační metoda Necht koeficienty a ii 0, i = 1,,, n Přepišme soustavu na tvar následujícím způsobem Necht potom Odsud dostáváme a tedy Ax = b x = αx + β = ϕ(x) (7) D = diag(a) = (a 11, a,, a nn ), (A D + D)x = b x = D 1 (D A)x + D 1 b (8) α = D 1 (D A), β = D 1 b R Lórencz (ČVUT FIT) Řešení SLR iterační metody PI-ANM, 011, Předn 3 15 / 0
Iterační metody řešení SLR () Věta 1 Necht α < 1 Potom soustava rovnic x = αx + β = ϕ(x) má právě jedno řešení x, pro které platí: I iterační proces x (l+1) = αx (l) + β konverguje k x nezávisle od volby počáteční aproximace x (0), II když x (l) je l-tá aproximace řešení, potom x x (l) α 1 α x(l) x (l 1), l = 1,,, (9) Poznámka Necht matice A v SLR je diagonálně dominantní a α = D 1 (D A) v upravené soustavě (7) pro jednu z norem platí A < 1 Podmínky Věty 1 jsou postačující (ne nutné) pro konvergenci uvedené metody R Lórencz (ČVUT FIT) Řešení SLR iterační metody PI-ANM, 011, Předn 3 16 / 0
Iterační metody řešení SLR (3) Iterační proces představuje řešení rovnic (10) Tento iterační proces bude konvergovat s požadovanou přesností pokud budou splněny podmínky Věty 1 x (l+1) 1 = α 11 x (l) 1 + α 1 x (l) + + α 1n x (l) n + β 1 x (l+1) = α 1 x (l) 1 + α x (l) + + α n x (l) n + β x (l+1) n = α n1 x (l) 1 + α n x (l) + + α nn x (l) n + β n (10) Zapsáno jinak: x (l+1) i = 1 a ii n j=1 j i a ij x (l) j + b i a ii i = 1,, n (11) R Lórencz (ČVUT FIT) Řešení SLR iterační metody PI-ANM, 011, Předn 3 17 / 0
Iterační metody řešení SLR (4) Gauss-Seidlova iterační metoda řešení SLR Rozdíl oproti Jacobiho metodě: pro výpočet k + 1 aproximace se používa vypočítaných k + 1 aproximací předchozích neznámých Iterační předpis této metody můžeme zapsat pomocí rovnic (1), kde a 11 0 pro i = 1,,, n x (l+1) 1 = α 11 x (l) 1 + α 1 x (l) + + α 1n 1 x (l) + α 1n x (l) n + β 1 x (l+1) = α 1 x (l+1) 1 + α x (l) + + α n 1 x (l) + α n x (l) n + β x (l+1) n = α n1 x (l+1) 1 + α n x 4 (l+1) + + α n 1 x (l+1) + α nn x (l) n + β n Zapsáno jinak: x (l+1) i = 1 i 1 a ij x (l+1) a j + ii j=1 n j=i+1 (1) a ij x (l) j + b i i = 1,, n (13) a ii R Lórencz (ČVUT FIT) Řešení SLR iterační metody PI-ANM, 011, Předn 3 18 / 0
Iterační metody řešení SLR (5) Necht M je matice, kterou dostaneme z matice A, když prvky na hlavní diagonále a nad hlavní diagonálou nahradíme nulami Potom matice M + D je dolní trojúhelníková matice Podobně vytvoříme z matice A matici N, pro kterou platí, že N + D je horní trojúhelníková matice A = M + D + N a po dosazení do soustavy Ax = b dostáváme (M + D + N)x = b Za předpokladu, že a 11 0, i = 1,,, n a existuje (M + D) 1, je x = (M + D) 1 Nx + (M + D) 1 b (14) Pokud si označíme β = (M + D) 1 b a α = (M + D) 1 N, potom postačující podmínka konvergence daného procesu je α < 1 R Lórencz (ČVUT FIT) Řešení SLR iterační metody PI-ANM, 011, Předn 3 19 / 0
Iterační metody řešení SLR (6) Příklad: Mějme SLR: 15x 1 x + 3x 3 + x 4 = 10 x 1 + 1x x 3 + x 4 = 13 x 1 x + 17x 3 3x 4 = 1 3x 1 + x + x 3 13x 4 = 14 Řešte danou SLR Jacobiho iterační metodou a Gauss-Seidlovou metodou Zjistěte, jestli platí podmínky konvergence pro danou SLR u obou metod podle Věty 1 Počítejte s přesností 0,001 Porovnejte počet iteračních kroků u obou metod R Lórencz (ČVUT FIT) Řešení SLR iterační metody PI-ANM, 011, Předn 3 0 / 0