LU dekompozice Jedná se o rozklad matice A na dvě trojúhelníkové matice L a U, A=LU. Matice L je dolní trojúhelníková s jedničkami na diagonále a matice U je horní trojúhelníková. a a2 a3 a 2 a 22 a 23 0 0 u2 u3 a 3 a 32 a 33=l 2 0 0 u 22 u 23 l 3 l 32 u 0 0 u 33 Soustava Ax=b se řeší rozkladem LUx=LU x=b a pokud se označí U x=y, řeší se nejprve L y=b a poté U x=y. Matice U i L jsou trojúhelníkové, řešení těchto dvou rovnic je jednoduchá úloha. Problém spočívá v nalezení matic U a L. Z rovnice A=L U vynásobením matic L a U dostaneme vztah n a ij = l ik přičemž z definic matic L a U plyne: pro ki l ik =0 pro k=i l ik = pro ki l ik R pro k j =0 pro k j R Z dosazení těchto vztahů do sumy plynou vztahy: pro i j pro i j i a ij =u ij l ik j a ij =l ij u jj l ik Croutův algoritmus postupný výpočet matic řádcích odshora. Prostým vyjádřením u ij a l ij z předchozích vztahů dostaneme j u ij =a ij l ik L a U po sloupcích zleva a po pro i=,, j
a l ij = u jj j a ij l ik u kj pro i= j,, n. Všimněte si, že k výpočtu l ij i u ij je potřeba znát z matice A pouze prvek a ij. Proto se kvůli úspoře paměti někdy matice L a U konstruují přímo v matici A. Schéma konstrukce matic L a U podle Croutova algoritmu je následující: Hledání hlavních prvků je možné pouze sloupcové, úplný pivoting možný není. Bez pivoting Croutův algoritmus nepoužitelný. Detaily v okomentovaném příkladu v PASCALU DEMLU.PAS. Vyhody LU dekompozice jsou: v LU rozkladu se nepočítá s pravou starnou výsledek lze iterativně zpřesnit
Podmíněnost matice Chyby v zadání úlohy a zaokrouhlovací chyby vedou k tomu, že místo soustavy Ax=b v podstatě řešíme soustavu A Axx=bb. Budeme nejprve pro zjednodušení předpokládat A=0. Z rovnice Ax=b plyne x b A. Z rovnic Ax=b a A Axx=bb pak plyne x= A b z čehož pak plyne x A b. Z obou nerovností, týkajících se norem pak vyplývá x x A A b b. Číslo C p = A A se pak nazývá podmíněností matice A. Pokud platí C p, matice se nazývá špatně podmíněná a i pro malé zaokrouhlovací chyby nebo malé nepřesnosti v zadání může být chyba výsledku veliká. (Týká se to i metod používajících pivoting.) Co znamená špatná podmíněnost? Ať vezmeme jakoukoli z norem, musí být v obou maticích A i A nějaké veliké číslo. Zároveň také platí A A=I. Př: Pokuste se vymyslet špatně podmíněnou matici řádu 2. Např: A= 00.00 0.0, A = Všimněte si, že druhý řádek v matici 0 00 00000, C p 07. A je téměř násobkem prvního. Navíc je druhý řádek přibližně 00 menší než první. Srovnejte s podmíněnost matice A= 00 00., C p 0 5.
Typickým příkladem skoro vždy špatně podmíněné matice je matice Van der Mondova, která vypadá následovně: 0 x 0 x 2 0 x N x x 2 x N N x c x 2 c x N N N= b 2 b N 2 c b Demonstrace v PASCALU v příkladu DEMPOD.PAS. V DEMPOD.PAS je řešení pomocí LU dekompozice s pivotingem. Přesto např. po zadání matice 4 4 s x =.00 a x n =.0 a nějaké pravé strany vyjde řešení úplně jiné. Řešení Van der Mondovy matice LU dekompozicí s iterativním zpřesněním výsledku v příkladu DEMZPR.PAS. Iterativní zpřesnění LU dekompozice Řešením soustavy Ax=b vyjde nepřesné řešení x=x x. Protože Ax x=bb, platí tedy Ax=b a b= A x b, můžeme z nepřesného řešení x vypočítat x a řešení zpřesnit x= x x. Tento postup lze opakovat a dosáhnout tak ve výsledku požadované přesnosti. Výpočet determinantu a inverzní matice Gauss Jordan přímý výpočet inverzní matice Gauss a LU řešení soustavy s n pravými stranami tvořenými vektory standardní báze n Determinant nejlépe z LU dekompozice det A=det L det U= u ii i= řádků = obrácení znaménka.. Prohození Speciální soustavy Řídká matice má většinu prvků nulových. Často se používají gradientní metody. Pásová matice je, pokud a ij =0 pro i j p : třídiagonální p= pětidiagonální p=2
V praxi časté u tridiagonálních matic téměř nikdy není třeba pivoting. Řešení soustavy s tridiagonální maticí: a b 0 0 x c 2 a 2 b 2 0 x 2 4= f f 2 4 0 c 3 a 3 b 3 x 3 f 3 x f řešení hledáme ve tvaru x k = k x k k, dosadíme do i té rovnice 0 0 c 4 a 4 i x i i a i x i b i x i = f i a vyjádříme x i x i = b i i a i x i f i i i a i. Z toho tedy plyne, že i = b i i a i a i = f i i i a i. Startujeme tedy od 0 s tím, že =0, b n =0 a 0, 0 R a spočítáme všechny koeficienty i a i. Pak provádíme zpětný chod s tím, že volíme x n libovolně a postupně dopočítáváme jednotlivá x i. Příklad v PASCALU RESTRID.PAS. Úlohy s 0 nebo řešeními Používá se tzv. SVD (Singular value decomposition) metoda. řešení určí řešení s nejmenší Eukleidovskou normou a bázi nulprostoru 0 řešení najde řešení ve smyslu nejmenších čtverců x takové, že minimalizuje Ax b III. SVD hledá řešení rozkladem matice A na A=U W V T (matice U a V jsou ortogonální, matice W je diagonální). Pak x=v [diag/w j ] U T b. Další informace o SVD v Numerical Recipies. Příklad v PASCALU SVDUKAZ.PAS, hledání řešení ve smyslu nejmenších čtverců. Vstupní soubory MATSVD.DAT a MATSVD.DAT.
Náročnost metod na počet operací Gauss Jordan ~n 3 Gauss, LU dopředný běh ~ 3 n3, zpětný běh ~ 2 nn Dokázána existence metody ~n log 7 2 n 2.8 Gradientní metody (v podstatě se jedná také o iterace) Rovnice Ax=b se řeší minimalizací např. funkce f x= 2 Ax b 2. Hledání gradientu funkce f x ve 2D : f = f x x f x 2 2 x, f x x 2 f 2 f x = funkce f x ve směru gradientu nejvíc roste, v opačném směru nejvíc ubývá volíme tedy x 0 a pak x =x 0 f, je lépe před použitím gradient normalizovat x =x 0 f f. x 2
Iterační metody řešení soustav lineárních rovnic Matice je: diagonálně dominantní právě tehdy, když a ii n j=, j i a ij pozitivně definitní (symetrická matice) právě tehdy, když pro x 0 platí x, Ax0. Tyto vlastnosti budou důležité pro zaručení konvergence iteračních metod. Postup: zvolí odhad řešení x 0 (pokud odhad neznáme tak libovolné číslo)
předpokládáme x k =B k x k c k pro správné řešení musí platit x =B k x c k, tedy x k x=b k x k x=b k B k x k x=b k B 0 x 0 x požadujeme, aby pro rostoucí k šlo k 0 pro konvergenci je tedy nutné a stačí, aby lim B k B 0 =0 k Metody: nestacionární matice B v každém kroku jiná stacionární matice B pořád stejná