4 LU rozklad a jeho numerická analýza Petr Tichý 24 října 2012 1
Úvod Nechť A je regulární matice Řešíme Ax = b LU rozklad (Gaussova eliminace) je jeden z nejdůležitějších nástrojů pro problém řešení soustav lineárních algebraických rovnic Moderní algoritmy pro lineární systémy s řídkou maticí vycházejí z Gaussovy eliminace, teorie grafů a kombinatoriky, a jsou postaveny na jemných heuristikách omezujících zaplnění s využitím teorie citlivosti a numerické stability Historický úvod a souvislosti skripta 3
Maticový popis Gaussovy eliminace Eliminační matice Uvažujme čtvercovou n n matici M k následující struktury M k = 1 1 m k+1,k 1 m n,k 1, m k = 0 0 m k+1,k m n,k Platí M k = I + m k e T k, Není těžké se přesvědčit (cvičení), že M 1 k = I m k e T k 4
Maticový popis Gaussovy eliminace Součin eliminačních matic Uvažujme dále dolní trojúhelníkovou matici L, Ve cvičení ukážeme, že platí Schematicky znázorněno L M 1 M 2 M 3 M n 1 n 1 L = I + m k e T k k=1 M 1 M 2 M 3 M n 1 L = 5
Soustava lineárních rovnic Předpoklad proveditelnosti Gaussovy eliminace Uvažujme nyní soustavu lineárních algebraických rovnic s regulární maticí A Ax = b, A C n n, b C n Budeme nejprve předpokládat, že Gaussovu eliminaci lze provést (prvky, kterými dělíme, jsou různé od nuly) 7
Gaussova eliminace První krok Od i-tého řádku odečteme (a i,1 /a 1,1 ) násobek prvního řádku, i = 2,, n Dostaneme tak matici A (1), M 1 1 = a 1,1 a 1,2 a 1,n 0 a (1) A A (1) 2,2 a (1) 2,n 0 a (1) n,2 a (1) n,n 1 a 2,1 /a 1,1 1 a 3,1 /a 1,1 1 a n,1 /a 1,1 1, m 1 = M 1 1 A, 0 a 2,1 /a 1,1 a 3,1 /a 1,1 a n,1 /a 1,1 8
Gaussova eliminace První krok - popis Platí M 1 1 = I m 1 e T 1, m 1 0 a 2,1 /a 1,1 a 3,1 /a 1,1 a n,1 /a 1,1 Prvkům a i,1 /a 1,1 budeme říkat násobitelé Současně s A modifikujeme i pravou stranu soustavy, tedy b b (1) M 1 1 b 9
Gaussova eliminace Druhý krok V druhém kroku eliminujeme poddiagonální prvky druhého sloupce matice A (1) užitím druhého řádku této matice Dostaneme matici A (2) M2 1 A(1), kde M2 1 = I m 2 e T 2 1 0 1 0 M2 1 = a (1), m 2 3,2 /a(1) 2,2 1 a (1) a (1) n,2 /a(1) 2,2 1 3,2 /a(1) 2,2 a (1) n,2 /a(1) 2,2 10
Gaussova eliminace Po n 1 krocích Po n 1 krocích dostaneme horní trojúhelníkovou matici U A (n 1) = Mn 1 1 1 1 1 (Mn 2( (M2 (M1 }{{ A )) )) } =A }{{ (1) } =A (2) Zavedeme-li označení A (0) A, platí U = a (0) 1,1 a (0) 1,2 a (0) 1,3 a (0) 1,n a (1) 2,2 a (1) 2,3 a (1) 2,n a (2) 3,3 a (2) 3,n a (n 1) n,n 11
Gaussova eliminace a LU rozklad A = (M 1 M 2 M n 2 M n 1 ) U LU, kde L je dolní trojúhelníková matice s jednotkovou diagonálou 1 a (0) 2,1 /a(0) 1,1 1 a (0) 3,1 /a(0) 1,1 a (1) 3,2 /a(1) 2,2 1 L = a (0) 4,1 /a(0) 1,1 a (1) 4,2 /a(1) 2,2 a (2) 4,3 /a(2) 3,3 1 a (0) n,1 /a(0) 1,1 a (1) n,2 /a(1) 2,2 a (2) n,3 /a(2) 3,3 a (n 2) n,n 1 /a(n 2) n 1,n 1 1 12
LU rozklad a řešení Ax = b Nechť A C n n je regulární matice Rozklad tvaru A = LU, kde L je dolní trojúhelníková s jednotkovou diagonálou a U je horní trojúhelníková matice, nazveme LU rozkladem matice A Ax = b vyřešíme pomocí LU rozkladu ve dvou krocích 1 Přímý chod: Implicitní násobení Ax = b maticí L 1, Ax = b L 1 Ax = L 1 b Ux = b (n 1) 2 Zpětný chod: Řešení soustavy Ux = b (n 1) s horní trojúhelníkovou maticí U 13
Přímý chod Gaussovy eliminace Přímý chod Ax = b L 1 Ax = L 1 b Ux = b (n 1) input A (0) := A = [a i,j ], b (0) := b = [β 1,, β n ] T for k = 1 : n 1 do for i = k + 1 : n do m i,k := a(k 1) i,k a (k 1) k,k for j = k + 1 : n do a (k) i,j := a(k 1) i,j m i,k a (k 1) k,j end for β (k) := β (k 1) i end for end for i m i,k β (k 1) k 14
Zpětný chod Gaussovy eliminace Zpětný chod Řešení soustavy Ux = b (n 1) s horní trojúhelníkovou maticí U = A (n 1) input A (n 1), b (n 1) ξ n := β n (n 1) /a (n 1) n,n for i = n 1 : 1 : 1 do ξ i := β (n 1) i for j = i + 1 : n do ξ i := ξ i a (i 1) i,j ξ j end for ξ i := ξ i /a (i 1) i,i end for 15
Praktická realizace Přepis prvků matice Prvky A se fyzicky přepisují nově spočtenými prvky Po výpočtu: A U L Nalezli jsme rozklad matice A ve tvaru A = LU, a původní problém LUx = b je možné formulovat jako problém řešení dvou trojúhelníkových soustav L(Ux) = b, Ux = L 1 b, přičemž řešení první soustavy L 1 b = b (n 1) je vypočteno v průběhu vytvoření LU rozkladu 16
Gaussova eliminace s částečnou pivotací Silná regularita V předchozím předpoklad a (k 1) k,k 0 pro k = 1,, n 1 Věta: Proveditelnost Gaussovy eliminace Podmínka a (k 1) k,k 0, k = 1,, n 1 je splněna právě tehdy, je-li matice A silně regulární, tj pokud platí a 1,1 a 1,k det 0, k = 1, n a k,1 a k,k (všechny hlavní minory jsou nenulové) 18
Věta o proveditelnosti Gaussovy eliminace Důkaz Označme a 1,1 a 1,k à k a k,1 a k,k k-tou hlavní submatici matice A Tvrzení platí pro Ã1 Nechť platí pro Ãk, k < n Vzhledem k tomu, že ve výše popsaném LU rozkladu neprovádíme nic jiného než lineární kombinace řádků (či sloupců) matice, a vzhledem k tomu, že dané operace nemění hodnost žádné z upravovaných matic, s použitím indukčního předpokladu, hlavní submatice Ãk+1 je singulární tehdy a jen tehdy, je-li a (k) k+1,k+1 = 0 19
Prostá Gaussova eliminace je obecně numericky nestabilní Předpoklad silné regularity nemusí být splněn, příklad: [ ] 0 1 1 0 Předpoklad silné regularity nedojde k dělení nulou Chceme zabránit nejen dělení nulou, ale i vzniku mezivýsledků s podstatně většími číselnými hodnotami, než jsou číselné hodnoty vstupních dat a hledaného výsledku Mezivýsledky s velkou absolutní hodnotou + výpočet obsahuje operaci odečítání čísel stejného znaménka s velkou pravděpodobností dojde při výpočtu k významné ztrátě počtu platných cifer výsledku Ztráta informace vede k nestabilitě algoritmu Kde mohou v algoritmu vznikat velká čísla? 20
Výpočetní operace - jádro Gaussovy eliminace Kde mohou v algoritmu vznikat velká čísla? Jádrem Gaussovy eliminace je následující výpočetní operace m i,k = a(k 1) i,k a (k 1) k,k, a (k) i,j = a(k 1) i,j kde i, j {k + 1,, n}, k = 1,, n 1 m i,k a (k 1) k,j, Je-li dělitel a (k 1) k,k výrazně menší v porovnání s čitateli a (k 1) i,k, potom je m i,k v absolutní hodnotě výrazně větší než 1 Může se pak např stát, že m i,k a (k 1) a (k 1), a tedy k,j i,j a (k) i,j a (k 1) i,j V praxi je třeba řešit soustavy s obecnou regulární maticí bez předpokladu silné regularity 21
Jak omezit vliv zaokrouhlovacích chyb? Věta Ke každé regulární A existuje permutační matice P taková, že P A je silně regulární Matice P není obecně určena jednoznačně Naučíme se zkonstruovat permutační matici P zajišťující nejen silnou regularitu P A, ale i zlepšení numerické stability Při řešení soustavy rovnic nezáleží na tom, v jakém pořadí jsou rovnice uspořádány; změna pořadí rovnic vede matematicky (v přesné aritmetice) ke stejnému řešení soustavy Ax = b Numericky může vést k omezení hodnot mezivýsledků, k omezení vlivu zaokrouhlovacích chyb, ke zpřesnění výpočtu Snaha, aby m i,k v absolutní hodnotě co nejmenší, m i,k = a(k 1) i,k a (k 1) k,k 22
Gaussova eliminace s částečnou pivotací Strategie Najdeme index l takový, aby = max a (k 1) l,k a (k 1) i=k,,n i,k Vzájemně zaměníme k-tý a l-tý řádek v matici A (k 1) a pokračujeme standardním postupem Stejným způsobem ovšem musíme prohodit řádky ve vznikající matici L, do níž ukládáme jednotlivé násobitele Výběr maximálního prvku ve sloupci všechny násobitelé v absolutní hodnotě menší nebo rovny jedné Díky tomuto výběru omezujeme vliv zaokrouhlovacích chyb na proces Gaussovy eliminace v konečné aritmetice 23
Proveditelnost Gaussovy eliminace s částečnou pivotací Při částečné pivotaci je splněn předpoklad nenulovosti pivota Pokud by byly všechny prvky a (k 1) i,k nulové, 0 A (k), potom by byl k-tý sloupec částečně eliminované matice lineární kombinací předchozích sloupců A singulární Gaussova eliminace s částečnou pivotací je tedy proveditelná pro libovolnou regulární matici A 24
Gaussova eliminace s částečnou pivotací Maticový zápis Věta Ke každé regulární A existuje permutační matice P taková, že P A je silně regulární Matice P není obecně určena jednoznačně Pro dokončení důkazu věty stačí ukázat, že Gaussovu eliminaci s částečnou pivotací aplikovanou na A můžeme interpretovat jako prostou Gaussovu eliminaci aplikovanou na matici P A Maticí P k budeme značit permutační matici, která v k-tém kroku eliminace realizuje permutaci k-tého a l-tého řádku Celý proces eliminace poddiagonálních prvků lze zapsat ( ) U Mn 1 1 P n 1 (M2 1 (P 2(M1 1 (P 1A)))) 25
Gaussova eliminace s částečnou pivotací Maticový zápis ( ) U Mn 1 1 P n 1 (M2 1 (P 2(M1 1 (P 1A)))) Řešení soustavy Ax = b pak dostaneme vyřešením úlohy ( ) Ux = Mn 1 1 P n 1 (M2 1 (P 2(M1 1 (P 1b)))), kde U je horní trojúhelníková matice Uvědomme si, že matice M 1 n 1 P n 1 M 1 2 P 2M 1 1 P 1, která převede matici A na horní trojúhelníkový tvar není obecně dolní trojúhelníková Lze Gaussovu eliminaci s částečným výběrem pivota popsat jako LU rozklad? 26
Struktura matic P t Mk 1 P t, t > k Uvažujme M k a nechť k < t P t Mk 1 zamění příslušné řádky dolní trojúhelníkové matice Mk 1 a tím naruší její dolní trojúhelníkovou strukturu Vynásobení stejnou permutační maticí zprava (připomeňme, že t > k) zamění příslušné sloupce tak, že obnoví jednotkovou diagonálu Matice P t M 1 k P t, t > k má stejnou nenulovou strukturu jako M 1 k! Zápis prvního kroku P 2 M 1 1 P 1A = (P 2 M 1 1 P 2)P 2 P 1 A 27
Oddělení eliminačních a permutačních matic Analogickým postupem můžeme přepsat kde U = M 1 ( = M 1 n 1 n 1 P n 1M 1 M 1 n 2 n 2 P n 2 P 2 M1 1 P 1A ) 1 M 1 (P n 1 P n 2 P 2 P 1 ) A, M n 1 1 = Mn 1 1 M n 2 1 = P n 1 Mn 2 1 n 1 M 1 1 = (P n 1 P n 2 P 3 P 2 ) M1 1 (P 2 P 3 P n 2 P n 1 ) Matice A je nejprve permutována, poté eliminována Označme L 1 = 1 1 1 M n 1 M n 2 M 1, P = P n 1 P n 2 P 2 P 1 28
Zápis eliminace s částečnou pivotací jako LU rozklad Potom platí U = L 1 P A, neboli LU = P A je zápis eliminace s částečnou pivotací jako LU rozklad Z konstrukce daný rozklad vždy existuje; pro libovolnou regulární matici A je tedy matice P A silně regulární Matici P nelze určit apriori (předem), vzniká postupně při výběru jednotlivých pivotů Díky výběru pivota prvky L jsou 1 Věta Gaussovu eliminaci s částečnou pivotací lze reprezentovat pomocí vztahu P A = LU Jinak řečeno, na Gaussovu eliminaci s částečnou pivotací lze nahlížet jako na Gaussovu eliminaci bez pivotace aplikovanou na permutovanou matici P A 29
Citlivost Ax = b na změny vstupních dat Data A, b určující systém lineárních rovnic Ax = b jsou obvykle zatížena nepřesnostmi různého původu Prvky A lze např v některých případech interpretovat jako hodnoty spojené s popisem modelu a prvky pravé strany jako hodnoty spojené s pozorováním V měřených datech chyby je přirozené zkoumat vliv malých změn vstupních dat (malých perturbací dat) na řešení x Nechť b označuje malou změnu pravé strany a nechť x + x je řešením systému s perturbovanou pravou stranou A(x + x) = b + b Jak velikost b může ovlivnit velikost x? 31
Citlivost Ax = b na změny vstupních dat A(x + x) = b + b A x = b Normu x pak můžeme odhadnout následovně: x = A 1 b A 1 b Zároveň však z A x b plyne a dohromady dostáváme x x x b A, A 1 A b b = κ(a) b b Je-li pro danou úlohu číslo podmíněnosti malé, říkáme, že lineární systém je dobře podmíněný 32
Kvalita aproximace a norma rezidua Máme aproximaci ˆx přesného řešení x Jak blízko je spočtené řešení k řešení přesnému? Nabízí se spočíst reziduum b Aˆx a na základě jeho velikosti (normy) usuzovat na blízkost ˆx k řešení Malá norma rezidua ale nemusí automaticky implikovat malou vzdálenost mezi aproximací ˆx a řešením x Označíme-li reziduum r = b Aˆx, pak a x ˆx = A 1 (b Aˆx) = A 1 r A 1 r x ˆx x A 1 A r b = κ(a) r b Je-li κ(a) velké, nemusí relativní norma rezidua poskytovat dostatečně přesnou informaci o blízkosti aproximace ˆx k x 33
Numerická stabilita Gaussovy eliminace Výsledky Goldstine, von Neumanna, Wilkinsona a ostatních Goldstine, von Neumanna 1947: Pro inverzi X symetrické poz def matice A spočtenou Gaussovou eliminací platí AX I 142 n 2 ε κ(a), kde ε označuje strojovou přesnost Wilkinson a ostatní (1961-1971) Nechť L a Û jsou vypočtené faktory LU rozkladu matice A a nechť x je vypočtené řešení úlohy Ax = b s použitím LU rozkladu Pak x je přesným řešením úlohy (A + A) x = b, A 6 n ε L Û + O(ε2 ), A 6 n ε L Û + O(ε 2 ) 34
Gaussova eliminace s částečnou pivotací a zpětná stabilita Na GE s částečnou pivotací lze hledět jako na GE bez pivotace aplikovanou na matici P A - lze aplikovat předchozí větu Kdy je podíl A / A úměrný násobku ε? Částečná pivotace zajišťuje, že prvky matice L jsou vždy menší nebo rovny jedné, a proto je Vydělme nerovnost L n A 6 n ε L Û + O(ε 2 ) maximovou normou matice A o zpětné stabilitě rozhoduje velikost růstového faktoru Û A 35
Růstový faktor a zpětná stabilita Gaussovy eliminace s částečnou pivotací Výpočet pomocí Gaussovy eliminace s částečnou pivotací je zpětně stabilní, pokud příliš neroste velikost prvků ve spočtené matici Û v porovnání s velikostí prvků v původní matici A Říkáme, že Gaussova eliminace s částečnou pivotací je podmíněně zpětně stabilní Stabilita výpočtu pro konkrétní data závisí na velikosti růstového faktoru 36
Maximální velikost růstového faktoru v Gaussově eliminaci s částečnou pivotací Vyjdeme ze vztahu m i,k = a(k 1) i,k a (k 1) k,k Jelikož m i,k 1, platí a (k), a (k) i,j = a(k 1) i,j i,j a(k 1) i,j + a (k 1) k,j a prvky matice U splňují nerovnost 2 max a (k 1) i,j i,j 2 k 1 max a i,j i,j u ij 2 n 1 max a i,j i,j m i,k a (k 1) k,j 37
Maximální velikost růstového faktoru Příklad Maximální nárůst velikosti prvků U lze pozorovat při Gaussově eliminaci s částečnou pivotací např u matice (cvičení) 1 1 1 1 1 1 1 1 1 1 1 1 1 Při praktických výpočtech dochází k exponenciálnímu růstu velikosti prvků matice U zřídka Velikost růstového faktoru obecně nesouvisí s κ(a) 38
Škálování Téměř vždy, je-li to možné, se v rámci předzpracování dat provádí škálování matice Jde o násobení sloupců, resp řádků matice A vhodně zvolenými čísly Formálně: jsou-li D 1 a D 2 regulární diagonální matice, pak můžeme místo původní soustavy lineárních rovnic Ax = b řešit soustavu se škálovanou maticí, D 1 AD 2 y = D 1 b, x = D 2 y Jedním z důvodů škálování: normalizace naměřených dat Jiným důvodem: redukce čísla podmíněnosti Jednoduché škálování jakým je normalizace řádků či sloupců vede na číslo podmíněnosti, které je nejvýše n-násobkem minima (n je velikost matice) Škálování může ovlivnit výběr pivota, posloupnost prováděných operací a tím i stabilitu výpočtu 39
Choleského rozklad hermitovské pozitivně definitní matice Aplikujme Gaussovu eliminaci na hermitovskou pozitivně definitní (HPD) matici Pro HPD matice je Gaussova eliminace vždy proveditelná bez pivotace (HPD matice je silně regulární cvičení) Věta (důkaz skripta): LU rozklad HPD matice A lze zapsat jako součin dolní trojúhelníkové matice se svojí maticí hermitovsky sdruženou Choleského rozklad Pro každou HPD matici A existuje jednoznačný rozklad A = LL, kde L je dolní trojúhelníková matice s kladnými prvky na diagonále 41
Choleského rozklad - algoritmus input A (0) := A = [a i,j ] for k = 1 : n do l k,k := a (k 1) k,k for i = k + 1 : n do l i,k := a(k 1) i,k l k,k for j = k + 1 : i do end for end for end for a (k) i,j := a(k 1) i,j l i,k l j,k Pro řádky l T i matice L platí l T i l i = l i 2 = a i,i n L 2 F = a i,i = trace(a) i=1 V přesné aritmetice je velikost prvků matice L omezena a nemůže dojít k jejich růstu jak je tomu u LU rozkladu 42
Zpětná stabilita Choleského rozkladu Zpětná stabilita Choleského rozkladu Nechť L je vypočtený faktor Choleského rozkladu hermitovské pozitivně definitní matice A C n n na počítači se strojovou přesností ε a nechť je n 3/2 ε 1 Potom pro matici E takovou, že A + E = L L, platí ( ) 2 n 3/2 E F 1 2 n 3/2 ε A F + O(ε 2 ) ε Důkaz ve skriptech Z předchozího plyne, že Choleského rozklad je zpětně stabilní nezávisle na prvcích Choleského faktoru L Říkáme, že Choleského rozklad je bezpodmínečně zpětně stabilní 43
Iterační zpřesnění Gaussovy eliminace Nechť je dána soustava Ax = b Jak zpřesnit řešení soustavy lineárních rovnic? 1 V prvním kroku získáme Gaussovou eliminací s částečnou pivotací aproximaci řešení x 1 Ze znalostí x 1 jsme schopni spočíst reziduum r 1, platí r 1 = b Ax 1 = Ax Ax 1 = A(x x 1 ) = Ae (1), kde jsme e (1) x x 1 označili chybu řešení 2 V druhém kroku řešíme soustavu lineárních rovnic, ve které se snažíme určit chybu řešení e (1), Ae (1) = r 1 3 Ve třetím kroku použijeme aproximaci chyby ê (1) ke zpřesnění řešení, x 2 = x 1 + ê (1) 45
Iterační zpřesnění Gaussovy eliminace Celý proces daný kroky 1-3 můžeme opakovat Pokud bychom byli schopni spočíst e (1) přesně, potom by x 2 = x 1 + e (1) bylo přesné řešení soustavy Kroky však provádíme v aritmetice s konečnou přesností Nakolik je spočtené řešení x 2 bližší hledanému řešení x než spočtené řešení x 1? Na přesnost řešení lze přitom nahlížet ve smyslu přímé chyby (měřené pomocí x x 2 ) či ve smyslu zpětné chyby Dvě možnosti, které nám zajišťují zlepšení přesnosti řešení 46
Iterační zpřesnění Gaussovy eliminace Dvě možnosti Mixed precision iterative improvement Pokud má být spočtené řešení x 2 přesnější než řešení x 1 ve smyslu přímé chyby, je nutné provádět výpočet rezidua r 1 se zvýšenou přesností lze dosáhnout zpřesnění řešení na maximální počet platných cifer v dané standardní aritmetice Fixed precision iterative improvement K redukci zpětné chyby řešení na úroveň ε je postačují provádět všechny výpočty ve stejné aritmetice (Skeel 1980), x 2 přesné řešení (A + A)x 2 = b, A A ε + O(ε2 ) Běžně stačí provést jen několik iterací Jedna iterace zajistí zpětnou stabilitu výpočtu, tedy x 2 je již zpětně stabilní 47
Výpočetní náklady Gaussovy eliminace viz cvičení Operace celkem 1 3 n3 1 2 n2 + 1 6 n 1 3 n3 1 2 n2 + 1 6 n : 1 2 n2 1 2 n 2 3 n3 operací Tabulka: Přímý chod (v každém kroku dělíme číslem a j,j ) Operace celkem 1 2 n2 1 2 n 1 + 2 n2 3 1 n + 1 n 1 : 1 Tabulka: Zpětný chod n 2 operací 49
Gaussova eliminace pro velké řídké úlohy Velké řídké matice mnoho nulových prvků O řídké matici mluvíme, je-li výhodné použít speciální techniky uložení nebo výpočtu, které uvažují nulovost prvků matice Matici, která není řídká, budeme říkat hustá Z pohledu numerické stability je vhodné provádět Gaussovu eliminaci s částečnou pivotací Výběr pivotního prvku odpovídá permutaci řádků, v případě úplné pivotace i sloupců, matice Permutaci řádků a sloupců matice ovšem můžeme provádět i z jiného důvodu, než je výběr optimálního pivota 51
Zaplnění matice při Gaussově eliminaci Příklad Dána A s následující strukturou nenulových prvků A = Pomocí permutační matice P, lze matici A transformovat na matici B, B = P AP T, s následující strukturou 1 B =, P 1 52
Zaplnění matice při Gaussově eliminaci Příklad pokračování I Soustava rovnic Ax = b P T AP x = b By = b, kde x = P y Obě soustavy se liší pouze pořadím rovnic a pořadím hledaných neznámých Bude-li platit a 11 > a i1, i = 2,, n, a soustavu s maticí A budeme řešit eliminací s částečnou pivotací, dostaneme po prvním kroku obecně hustou submatici matice A (1), A (1) = 53
Zaplnění matice při Gaussově eliminaci Příklad pokračování II Počet nenulových prvků matice A (1) tak obecně vzroste oproti počtu nenulových prvků matice A z 3n 2 na n 2 n + 1 Bude-li např n 10 6 pak uložení nenulových prvků matice A zabere v paměti počítače, ve standardní dvojité přesnosti uložení (64 bitů na číslo) přibližně 23 megabytů Matice A (1) však zabere 7 450 gigabytů Pokud rovnice a neznámé nejprve přečíslujeme (permutujeme) tak, že dostaneme soustavu s maticí B, a nebudeme-li provádět žádný výběr pivotního prvku matice, bude nám v průběhu celého výpočtu stačit právě 8(3n 2) bytů 54
Řídkost, zaplnění, stabilita Příklad ukazuje jak lze využít řídkosti matic ke zmenšení velikosti potřebné paměti i ke zmenšení počtu prováděných operací Využití řídkosti je obzvláště u velkých matic velmi podstatné Obecně se snažíme nalézt permutační matice P, Q takové, aby v LU rozkladu matice B = P AQ T docházelo k co možná nejmenšímu zaplnění a výpočet byl zároveň rozumně stabilní Je zřejmé, že snaha zajistit numericky pokud možno stabilní výpočet pomocí vhodné pivotace může působit (a často také působí) proti snaze minimalizovat zaplnění, numerická stabilita zaplnění 55
Srovnání LU a QR rozkladu pro řešení soustav rovnic Srovnání z několika hledisek Stabilita U QR rozkladu pracujeme výhradně s unitárními transformacemi Např QR rozklad založený na Householderových reflexích výpočet je zpětně stabilní LU rozklad je jen podmíněně zpětně stabilní Výpočetní náklady Budeme-li uvažovat algoritmy pro husté matice, je k řešení soustavy užitím LU rozkladu potřeba řádově 2/3 n 3 aritmetických operací QR rozklad realizovaný Householderovými transformacemi potřebuje řádově 4/3 n 3 aritmetických operací, tedy dvakrát více Zaplnění Často rozhodující kritérium Chceme-li použít přímé metody pro řešení velkých řídkých soustav, téměř výhradně používáme metody vycházející z Gaussovy eliminace Při výpočtu QR rozkladu aplikovaného na velkou řídkou matici je totiž velmi obtížné udržet faktory Q a R řídké 57
Cvičení 41 Uvažujme eliminační matici M k C n n Ukažte, že M 1 k = I m k e T k 42 Nechť M 1,, M n 1 jsou eliminační matice Dokažte, že platí n 1 M 1 M 2 M 3 M n 1 = I + m i e T i 43 Nechť A C n n Sestrojte permutační matici P takovou, že zaměňuje i-tý a j-tý řádek matice A Ukažte, jak lze pomocí P zaměnit i-tý a j-tý sloupec matice A i=1 59
Cvičení 44 Použijte Gaussovu eliminaci s pivotací na matici 1 0 0 0 1 1 1 0 0 1 1 1 1 0 1 1 1 1 1 1 1 1 1 1 1 Sledujte velikosti prvků ve vznikající horní trojúhelníkové matici U 45 Nechť A C n n je matice hermitovská pozitivně definitní Ukažte pomocí blokového rozdělení [ ] Ãk A A = 2,1, A 2,1 A 2,2 kde Ãk je hlavní submatice obsahující prvních k řádků a sloupců matice A, že A je silně regulární 60
Cvičení 46 Použijte standardních sčítacích vzorců n k = 1 2 n(n + 1) a n k 2 = 1 n(2n + 1)(n + 1) 6 k=1 k=1 k tomu, abyste ukázali, jaká je výpočetní náročnost přímého chodu Gaussovy eliminace a zpětného chodu Gaussovy eliminace 61