Projekt: Inovace výuky optiky se zaměřením na získání experimentálních dovedností Registrační číslo: CZ.1.7/2.2./28.157 Numerické metody a programování Lekce 4 Tento projekt je spolufinancován Evropským sociálním fondem a státním rozpočtem České republiky.
Linarní algebra soustava lineárních algebraických rovnic a 11 a 12 x 2 a 1 N = b 1 a 21 a 22 x 2 a 2 N = b 2 a M 1 a M 2 x 2 a M N = b M zkráceně A x = b b i = j a ij x j základní úlohy lineární algebry N =M řešení x inverzní matice A 1 determinant M N nebo degenerace SVD (singular value decomposition) M N přeurčený problém přibližné řešení Gaussova Jordanova eliminace řešení problému A [ x Y ] = [b 1] řeší zároveň soustavy A x = b a A Y = 1 nahrazení řádku lineární kombinací řádku a jiných řádků nemá vliv řešení problému přehození řádků nemá vliv na řešení Gaussova Jordanova eliminace využívá prvního pravidla k redukci matice A na jednotkovou matici. pro zlepšení stability se využívá druhého pravidla (pivotace) příklad: 2 1x 2 = 5 x 2 = 2
vytvořím [ 2 1 5 1 1] 1 1 2 vydělím první řádek diagonálním prvkem a 11 (pivot) a přičtu k ostatním tak aby a i 11 = [ 1 1/2 5/ 2 1/2 3/2 9/ 2 1/2 1] vydělím druhý řádek diagonálním prvkem a 22 (pivot) a přičtu k ostatním tak aby a i 22 = [ 1 1 1/3 1/3 1 3 1/3 2/3] toto se podle potřeby opakuje matice A je převedena na jednotkovou matici z jednotkové matice vznikne inverze A 1 z vektoru pravé strany b vzniklo řešení =1x 2 =3 stabilitu zvýší přehazování řádků/(řádků a sloupců tak aby nedocházelo k dělení malými čísly (částečná/úplná pivotace) LU dekompozice nevýhoda Gaussovy Jordanovy eliminace: všechny pravé strany musí být známy dopředu není optimální z hlediska počtu elementárních operací LU rozklad: rozklad matice A na součin dolní a horní trojúhelníkové matice L U = A pak platí A x = L U x = b takže L y = b a U x = y soustavy s trojúhelníkovými maticemi řešíme zpětnou(dopřednou) substitucí např. = y N u NN x i = 1 [ N u y i ii inverzi A 1 j =i 1 ] u ij x j i = N 1 N 2 vypočítáme řešením soustavy pro pravé strany
b 1 = 1 b 2 = 1... b N = 1 vlastní LU dekompozice matice A N 2 rovnic pro N 2 N neznámých i j : l i1 u 1j l i2 u 2j l ii u ij = a ij i j: l i1 u 1j l i2 u 2j l ij u jj = a ij 1 2 Croutův algoritmus: položíme l ii = 1 i = 1 N postupně pro j = 1 2 N provedeme nejprve pro i = 12 j vypočteme u ij z (1) pro i = j1 j2 N použijeme (2) k získání l ij pivotace je opět využita ke zlepšení stability Choleského rozklad L L T = A pro pozitivní matici A L je dolní trojúhelníková matice podobně jako LU rozklad řeší systém lineárních rovic asi 2x rychlejší než LU rozklad stabilní algoritmus (pivotace není nutná) Výpočet determinantu determinant čtvercové matice det A = A N sgn a ii i=1 kde jsou permutace množiny {12 N } determinant matice po LU dekompozici se získá triviálně det A = det L U = det LdetU = N u jj j=1
Cramérovo pravidlo řešení soustavy A x = b dostaneme pomocí determinantu takto: x i = det A i det A i = 12N kde A i vznikne z A nahrazením i tého sloupce pravou stranou b plyne z det A i = det[ a 1 b a N ] = j výpočetní čas je srovnatelný s LU rozkladem x j det[a 1 a i1 a j a i1 a N ] = x i det A iterativní vylepšení řešení lineárních rovnic v důsledku zaokrouhlovacích chyb je řešení nepřesné max. přesnost m obnovíme iterativním postupem řešme A x = b s nepřesným známým výsledkem x x : A (x + δ x) = b + δ b do A δ x = δ b dosadíme za δ b výsledná rovnice pro x : A x = A x x b SVD (Singular Value Decomposition) A = U S V T A : M N reálná (komplexní) U : M M ortogonální (unitární) M M T = 1 M M + = 1 S : M N diagonální matice S (singulární čísla s i ) V : N N ortogonální (unitární) čtvercová matice M = N regulární min s i : A 1 = V diag1 /s i U T singulární min s i = nulový prostor (jádro nullspace) x : A x = obor hodnot (range) b : A x = b pro nějaké x (obal sloupců a i hodnost) ortonormální báze (nullspace): sloupce v i odpovídající s i = ortonormální báze (range): sloupce u i odpovídající s i
řešení A x = b se singulární A homogenní b = : každý vektor nullspace nehomogenní b b v range: řešení s min. normou x = V diag1/ s i U T b kde 1/s i nahrazeno nulou pokud s i = (pseudoinverze); lze přičíst vektor z nullspace b mimo range: nemá řešení; přibližné řešení ve smyslu min A x b (metoda nejmenších čtverců) dostaneme opět jako pseudoinverzi méně rovnic než neznámých M N obvykle nekonečně mnoho řešení všechna řešení: partikulární řešení plus nullspace více rovnic než neznámých M N obvykle nemá řešení metoda nejmenších čtverců další aplikace SVD aproximace matice maticí s hodností K : s i = i K (podle velkosti] separabilní modely: A = s i u i v i i nejbližší ortogonální matice: U V T ortonormální báze prostoru N vektorů a i i = 1N dimenze M N M : sloupce matice U po SVD M N matice sloupců a i odpovídající s i Hilbert Schmidtova norma (Frobeniusova norma): A = Tr A T A 1/2 = i s i 2 1/2
Řídké (sparse) matice malé množství a ij speciální algoritmy využívají tuto vlastnost menší nároky na ukládání a výpočetní čas Vlastní čísla/vektory A x = x pouze čtvercová matice složitý problém doporučeno používat knihovny (např. LAPACK) diagonální prvky trojúhelníhové matice jsou vlastní čísla Gaussova Jordanova eliminace nezachovává vlastní čísla Souvislost SVD rozkladu s vlastními čísly/vektory A T A = V S 2 V T A A T = U S 2 U T t.j. sloupce V a U jsou vlastní vektory matic A T A resp. A A T Symetrické (Hermitovské) matice A T = A SVD: A 2 = A T A = V S 2 V T λ 2 2 i = s i tj. sloupce V a U jsou vlastní vektory A a singulární čísla jsou absolutní hodnoty vl. čísel