Katedra aplikované matematiky, Matematicko-fyzikální fakulta, Univerzita Karlova v Praze
Historie Motto Budeme se zabývat specifickými problémy, které se objevují při řešení soustav lineárních rovnic na počítači V tradiční teorii lineární algebry podobné problémy neexistovaly Rozvoj numerické lineární algebry v minulém století Vedlo ke vzniku řady důmyslných algoritmů a překvapivých důsledků: třeba dekompozice LDU, QR a SVD Problémy s rychlostí a přesností výpočtu
Historie Motto Budeme se zabývat specifickými problémy, které se objevují při řešení soustav lineárních rovnic na počítači V tradiční teorii lineární algebry podobné problémy neexistovaly Rozvoj numerické lineární algebry v minulém století Vedlo ke vzniku řady důmyslných algoritmů a překvapivých důsledků: třeba dekompozice LDU, QR a SVD Problémy s rychlostí a přesností výpočtu
Problematické soustavy Příklad (Špatná matice) Soustava A = ( ) ( ) 1 1 1 1 1 10001 0 00001 Mezi pivoty matice jsou obrovské rozdíly I nepatrná změna pravé strany obrovsky změní výsledek: ( ) ( ) ( ) ( ) 2 2 2 1 pro b = je x =, ale pro b 2 0 = je x 20001 = 1 Žádná numerická metoda se není schopná podobným chybám vyhnout!
Problematické soustavy Příklad (Špatná matice) Soustava A = ( ) ( ) 1 1 1 1 1 10001 0 00001 Mezi pivoty matice jsou obrovské rozdíly I nepatrná změna pravé strany obrovsky změní výsledek: ( ) ( ) ( ) ( ) 2 2 2 1 pro b = je x =, ale pro b 2 0 = je x 20001 = 1 Žádná numerická metoda se není schopná podobným chybám vyhnout!
Problematické soustavy Příklad (Špatná matice) Soustava A = ( ) ( ) 1 1 1 1 1 10001 0 00001 Mezi pivoty matice jsou obrovské rozdíly I nepatrná změna pravé strany obrovsky změní výsledek: ( ) ( ) ( ) ( ) 2 2 2 1 pro b = je x =, ale pro b 2 0 = je x 20001 = 1 Žádná numerická metoda se není schopná podobným chybám vyhnout!
Problematické soustavy Příklad (Špatná matice) Soustava A = ( ) ( ) 1 1 1 1 1 10001 0 00001 Mezi pivoty matice jsou obrovské rozdíly I nepatrná změna pravé strany obrovsky změní výsledek: ( ) ( ) ( ) ( ) 2 2 2 1 pro b = je x =, ale pro b 2 0 = je x 20001 = 1 Žádná numerická metoda se není schopná podobným chybám vyhnout!
Problematické soustavy Příklad (Špatný algoritmus) Soustava ( ) 00001 1 B = 1 1 ( ) ( ) 00001 1 00001 1 0 9999 0 10000 Opět nejsme schopni pracovat s obrovskými rozdíly pivotů Dostáváme proto velice nepřesná řešení: ( ) ( ) 1 1 Pro b = je x = 2 09999 ( ) 1, ale dostáváme x = 1 ( ) 0 1 Pro dobré matice existuje řešení: částečná pivotace
Problematické soustavy Příklad (Špatný algoritmus) Soustava ( ) 00001 1 B = 1 1 ( ) ( ) 00001 1 00001 1 0 9999 0 10000 Opět nejsme schopni pracovat s obrovskými rozdíly pivotů Dostáváme proto velice nepřesná řešení: ( ) ( ) 1 1 Pro b = je x = 2 09999 ( ) 1, ale dostáváme x = 1 ( ) 0 1 Pro dobré matice existuje řešení: částečná pivotace
Problematické soustavy Příklad (Špatný algoritmus) Soustava ( ) 00001 1 B = 1 1 ( ) ( ) 00001 1 00001 1 0 9999 0 10000 Opět nejsme schopni pracovat s obrovskými rozdíly pivotů Dostáváme proto velice nepřesná řešení: ( ) ( ) 1 1 Pro b = je x = 2 09999 ( ) 1, ale dostáváme x = 1 ( ) 0 1 Pro dobré matice existuje řešení: částečná pivotace
Problematické soustavy Příklad (Špatný algoritmus) Soustava ( ) 00001 1 B = 1 1 ( ) ( ) 00001 1 00001 1 0 9999 0 10000 Opět nejsme schopni pracovat s obrovskými rozdíly pivotů Dostáváme proto velice nepřesná řešení: ( ) ( ) 1 1 Pro b = je x = 2 09999 ( ) 1, ale dostáváme x = 1 ( ) 0 1 Pro dobré matice existuje řešení: částečná pivotace
O čem bude řeč Budeme se snažit s těmito a dalšími problémy vypořádat: Problémy se zaokrouhlováním a nepřesností výpočtu Rychlejší řešení soustav lineárních rovnic pomocí iterativních metod Musíme nejprve probrat teorii vlastních čísel
Diferenciální rovnice Příklad (Soustava lineárních diferenciálních rovnic) Chceme řešit soustavu lineárních diferenciálních rovnic: d v d t d w d t neboli v maticovém zápisu ( ) v(t) u(t) =, u w(t) 0 = = 4v 5w, v 0 = 8, = 2v 3w, w 0 = 5, ( ) 8, A = 5 ( ) 4 5, Au = d u 2 3 d t Z analýzy víme, že řešením jsou exponenciely v(t) = e λt y, u(t) = e λt z, tedy u(t) = e λt x Potřebujeme dopočítat konstantu λ a k ní vektor x
Diferenciální rovnice Příklad (Soustava lineárních diferenciálních rovnic) Chceme řešit soustavu lineárních diferenciálních rovnic: d v d t d w d t neboli v maticovém zápisu ( ) v(t) u(t) =, u w(t) 0 = = 4v 5w, v 0 = 8, = 2v 3w, w 0 = 5, ( ) 8, A = 5 ( ) 4 5, Au = d u 2 3 d t Z analýzy víme, že řešením jsou exponenciely v(t) = e λt y, u(t) = e λt z, tedy u(t) = e λt x Potřebujeme dopočítat konstantu λ a k ní vektor x
Diferenciální rovnice Po dosazení dostáváme: λe λt y = 4e λt y 5e λt z, λe λt z = 2e λt y 3e λt z Tedy po vykrácení e λt dostáváme soustavu lineárních rovnic: λy = 4y 5z, λz = 2y 3z, neboli v řeči matic Ax = λx
Diferenciální rovnice Po dosazení dostáváme: λe λt y = 4e λt y 5e λt z, λe λt z = 2e λt y 3e λt z Tedy po vykrácení e λt dostáváme soustavu lineárních rovnic: λy = 4y 5z, λz = 2y 3z, neboli v řeči matic Ax = λx
Diferenciální rovnice Číslu λ se říká vlastní číslo matice A a vektor x je příslušný vlastní vektor, smysl mají pouze nenulové vlastní vektory Má smysl uvažovat jen pro čtvercové matice Pokud je x vlastní vektor, potom platí (A λi)x = 0, tedy kernel matice A λi obsahuje netriviální vektor x Fakt: Kernel matice je netriviální, právě když je matice singulární To lze testovat například pomocí determinantu: det(a λi) = 0, právě když A λi je singulárni
Diferenciální rovnice Číslu λ se říká vlastní číslo matice A a vektor x je příslušný vlastní vektor, smysl mají pouze nenulové vlastní vektory Má smysl uvažovat jen pro čtvercové matice Pokud je x vlastní vektor, potom platí (A λi)x = 0, tedy kernel matice A λi obsahuje netriviální vektor x Fakt: Kernel matice je netriviální, právě když je matice singulární To lze testovat například pomocí determinantu: det(a λi) = 0, právě když A λi je singulárni
Diferenciální rovnice Vlastní čísla matice A = ( ) 4 5 2 3 splňují λ 2 λ 2 = 0, tedy jsou to λ 1 = 1 a λ 2 = 2 Dopočteme vlastní vektory x 1 a x 2 : ( ) ( ) ( ) 5 5 1 0 =, 2 2 1 0 ( 2 5 2 5 )( ) 5 = 2 ( ) 0 0 Řešením soustavy diferenciálních rovnic je nějaká lineární kombinace u = c 1 e λ 1t x 1 + c 2 e λ 2t x 2, po dopočítání konstant dle počátečního stavu: v(t) = 3e t + 5e 2t, w(t) = 3e t + 2e 2t
Diferenciální rovnice Vlastní čísla matice A = ( ) 4 5 2 3 splňují λ 2 λ 2 = 0, tedy jsou to λ 1 = 1 a λ 2 = 2 Dopočteme vlastní vektory x 1 a x 2 : ( ) ( ) ( ) 5 5 1 0 =, 2 2 1 0 ( 2 5 2 5 )( ) 5 = 2 ( ) 0 0 Řešením soustavy diferenciálních rovnic je nějaká lineární kombinace u = c 1 e λ 1t x 1 + c 2 e λ 2t x 2, po dopočítání konstant dle počátečního stavu: v(t) = 3e t + 5e 2t, w(t) = 3e t + 2e 2t
Diferenciální rovnice Vlastní čísla matice A = ( ) 4 5 2 3 splňují λ 2 λ 2 = 0, tedy jsou to λ 1 = 1 a λ 2 = 2 Dopočteme vlastní vektory x 1 a x 2 : ( ) ( ) ( ) 5 5 1 0 =, 2 2 1 0 ( 2 5 2 5 )( ) 5 = 2 ( ) 0 0 Řešením soustavy diferenciálních rovnic je nějaká lineární kombinace u = c 1 e λ 1t x 1 + c 2 e λ 2t x 2, po dopočítání konstant dle počátečního stavu: v(t) = 3e t + 5e 2t, w(t) = 3e t + 2e 2t
Geometrický pohled Jiný pohled na rovnici Ax = λx je, že vlastní vektory pevné směry lineárního zobrazení a vlastní čísla jsou koeficienty natažení Příklad (Rovnoměrné zvětšení) A = ( ) 2 0 0 2 Má dvojnásobné vlastní číslo λ 1 = λ 2 = 2, každý vektor je vlastní y x
Geometrický pohled Jiný pohled na rovnici Ax = λx je, že vlastní vektory pevné směry lineárního zobrazení a vlastní čísla jsou koeficienty natažení Příklad (Rovnoměrné zvětšení) A = ( ) 2 0 0 2 Má dvojnásobné vlastní číslo λ 1 = λ 2 = 2, každý vektor je vlastní y x
Geometrický pohled Jiný pohled na rovnici Ax = λx je, že vlastní vektory pevné směry lineárního zobrazení a vlastní čísla jsou koeficienty natažení Příklad (Rovnoměrné zvětšení) A = ( ) 2 0 0 2 Má dvojnásobné vlastní číslo λ 1 = λ 2 = 2, každý vektor je vlastní y x
Geometrický pohled Příklad (Nerovnoměrné zvětšení) B = ( ) 3 0 0 2 y Má vlastní čísla λ 1 = 3 a λ 2 = 2 a vlastní vektory x 1 = (1, 0) a x 2 = (0, 1) x Jednotková kružnice se transformuje na elipsu Osy elipsy jsou ve směru vlastních vektorů
Geometrický pohled Příklad (Nerovnoměrné zvětšení) B = ( ) 3 0 0 2 y Má vlastní čísla λ 1 = 3 a λ 2 = 2 a vlastní vektory x 1 = (1, 0) a x 2 = (0, 1) x Jednotková kružnice se transformuje na elipsu Osy elipsy jsou ve směru vlastních vektorů
Geometrický pohled Příklad (Zkosení) C = ( ) 1 1 0 1 Má vlastní čísla λ 1 = λ 2 = 1 a pouze jeden směr vlastních vektorů x 1 = (1, 0) y x Příklad (Rotace o 90 ) ( ) 0 1 Má komplexní vlastní čísla λ D = 1 = +i a λ 2 = i 1 0 a vlastní vektory x 1 = (1, i) a x 2 = (1, +i)
Geometrický pohled Příklad (Zkosení) C = ( ) 1 1 0 1 Má vlastní čísla λ 1 = λ 2 = 1 a pouze jeden směr vlastních vektorů x 1 = (1, 0) y x Příklad (Rotace o 90 ) ( ) 0 1 Má komplexní vlastní čísla λ D = 1 = +i a λ 2 = i 1 0 a vlastní vektory x 1 = (1, i) a x 2 = (1, +i)
Geometrický pohled Příklad (Zkosení) C = ( ) 1 1 0 1 Má vlastní čísla λ 1 = λ 2 = 1 a pouze jeden směr vlastních vektorů x 1 = (1, 0) y x Příklad (Rotace o 90 ) ( ) 0 1 Má komplexní vlastní čísla λ D = 1 = +i a λ 2 = i 1 0 a vlastní vektory x 1 = (1, i) a x 2 = (1, +i)
Stabilita lineárních systémů Příklad (Markovský proces) Každý rok se do Kalifornie přistěhuje 10% lidí žijících mimo ní a 20% lidí se z Kalifornie odstěhuje Jak se bude vyvíjet populace v budoucích letech? Počáteční stav: ( y0 z 0 ), vývoj: ( yn+1 z n+1 ) = ( 9 1 2 8 )( yn Nalezneme vlastní čísla, vlastní vektory a SDS 1 rozklad: ( )( )( ) A = SDS 1 2/3 1/3 1 0 1 1 = 1/3 1/3 0 7 1 2 Limitní stav je ( y z ) ( ) 2/3 = (y 0 + z 0 ) 1/3 z n )
Stabilita lineárních systémů Příklad (Markovský proces) Každý rok se do Kalifornie přistěhuje 10% lidí žijících mimo ní a 20% lidí se z Kalifornie odstěhuje Jak se bude vyvíjet populace v budoucích letech? Počáteční stav: ( y0 z 0 ), vývoj: ( yn+1 z n+1 ) = ( 9 1 2 8 )( yn Nalezneme vlastní čísla, vlastní vektory a SDS 1 rozklad: ( )( )( ) A = SDS 1 2/3 1/3 1 0 1 1 = 1/3 1/3 0 7 1 2 Limitní stav je ( y z ) ( ) 2/3 = (y 0 + z 0 ) 1/3 z n )
Stabilita lineárních systémů Příklad (Markovský proces) Každý rok se do Kalifornie přistěhuje 10% lidí žijících mimo ní a 20% lidí se z Kalifornie odstěhuje Jak se bude vyvíjet populace v budoucích letech? Počáteční stav: ( y0 z 0 ), vývoj: ( yn+1 z n+1 ) = ( 9 1 2 8 )( yn Nalezneme vlastní čísla, vlastní vektory a SDS 1 rozklad: ( )( )( ) A = SDS 1 2/3 1/3 1 0 1 1 = 1/3 1/3 0 7 1 2 Limitní stav je ( y z ) ( ) 2/3 = (y 0 + z 0 ) 1/3 z n )
Stabilita lineárních systémů Věta Diferenční rovnice u k+1 = Au k je stabilní, pokud všechna vlastní čísla splňují λ i < 1 neutrálně stabilní, pokud jedno vlastní číslo λ i = 1 a všechna další splňují λ j < 1 nestabilní, pokud alespoň jedno vlastní číslo λ i > 1 Každý vektor u k lze vyjádřit jako lineární kombinaci vlastních čísel: u k = SD k S 1 u 0 = c 1 λ k 1 x 1 + + c n λ k nx n c n λ k nx n, pokud λ n je největší vlastní číslo a x n 0
Stabilita lineárních systémů Věta Diferenční rovnice u k+1 = Au k je stabilní, pokud všechna vlastní čísla splňují λ i < 1 neutrálně stabilní, pokud jedno vlastní číslo λ i = 1 a všechna další splňují λ j < 1 nestabilní, pokud alespoň jedno vlastní číslo λ i > 1 Každý vektor u k lze vyjádřit jako lineární kombinaci vlastních čísel: u k = SD k S 1 u 0 = c 1 λ k 1 x 1 + + c n λ k nx n c n λ k nx n, pokud λ n je největší vlastní číslo a x n 0
Stabilita lineárních systémů Příklad (1941, H Bernadelli) Včely se dožívají třetího roku, kdy se rozmnožují První rok přežije polovina včel, druhý rok třetina a ve třetím zplodí každá včela šest potomků a zemře Jak se bude vyvíjet včelí populace? 0 0 6 A = 1 2 0 0 0 1 3 0 Vlastní čísla jsou třetí odmocniny z 1 Stabilní stav je α (6, 3, 1) 30 180 60 30 30 15 90 30! 30 10 5 30 Populace osciluje po třech letech A 3 = I i
Stabilita lineárních systémů Příklad (1941, H Bernadelli) Včely se dožívají třetího roku, kdy se rozmnožují První rok přežije polovina včel, druhý rok třetina a ve třetím zplodí každá včela šest potomků a zemře Jak se bude vyvíjet včelí populace? 0 0 6 A = 1 2 0 0 0 1 3 0 Vlastní čísla jsou třetí odmocniny z 1 Stabilní stav je α (6, 3, 1) 30 180 60 30 30 15 90 30! 30 10 5 30 Populace osciluje po třech letech A 3 = I i
Stabilita lineárních systémů Příklad (1941, H Bernadelli) Včely se dožívají třetího roku, kdy se rozmnožují První rok přežije polovina včel, druhý rok třetina a ve třetím zplodí každá včela šest potomků a zemře Jak se bude vyvíjet včelí populace? 0 0 6 A = 1 2 0 0 0 1 3 0 Vlastní čísla jsou třetí odmocniny z 1 Stabilní stav je α (6, 3, 1) 30 180 60 30 30 15 90 30! 30 10 5 30 Populace osciluje po třech letech A 3 = I i
Stabilita lineárních systémů Příklad Fibonnaciho čísla jsou definována: Jaká je hodnota F n? Platí ( Fn+1 F n+2 F 0 = 0, F 1 = 1, F n+2 = F n+1 + F n ) = ( )( ) 0 1 Fn = 1 1 F n+1 ( 0 1 1 1 ) n ( ) F0 Matice má vlastní čísla λ 1 = 1+ 5 2 a λ 2 = 1 5 2 Po dopočítání dostaneme vzorec: ( F n = 1 5 1 + ) n ( 5 1 2 5 F 1 1 ) n 5 2
Stabilita lineárních systémů Příklad Fibonnaciho čísla jsou definována: Jaká je hodnota F n? Platí ( Fn+1 F n+2 F 0 = 0, F 1 = 1, F n+2 = F n+1 + F n ) = ( )( ) 0 1 Fn = 1 1 F n+1 ( 0 1 1 1 ) n ( ) F0 Matice má vlastní čísla λ 1 = 1+ 5 2 a λ 2 = 1 5 2 Po dopočítání dostaneme vzorec: ( F n = 1 5 1 + ) n ( 5 1 2 5 F 1 1 ) n 5 2
Stabilita lineárních systémů Příklad Fibonnaciho čísla jsou definována: Jaká je hodnota F n? Platí ( Fn+1 F n+2 F 0 = 0, F 1 = 1, F n+2 = F n+1 + F n ) = ( )( ) 0 1 Fn = 1 1 F n+1 ( 0 1 1 1 ) n ( ) F0 Matice má vlastní čísla λ 1 = 1+ 5 2 a λ 2 = 1 5 2 Po dopočítání dostaneme vzorec: ( F n = 1 5 1 + ) n ( 5 1 2 5 F 1 1 ) n 5 2
Několik užitečných vět Věta Pokud je matice symetrická, potom má všechna vlastní čísla reálná a n lineárně nezávislých vlastních vektorů je diagonalizovatelná Druhá podmínka platí přesně pro normální matice (AA T = A T A) Tvrzení Pro libovolnou matici A platí, že λ i = a i,i (stopa matice součet prvků na diagonále) a λ i = det(a)
Změna pravé strany Otázka (Matice z úvodu) Proč je matice A citlivější vůči numerickým operacím než B? Jak tuto citlivost charakterizovat? ( ) ( ) 1 1 00001 1 A =, B = 1 10001 1 1 Jak moc se řešení Ax = b může změnit při malé změně pravé strany na b + b? A(x + x ) = b + b = Ax = b Chceme popsat závislost x na b, třeba pomocí norem x a b
Změna pravé strany Otázka (Matice z úvodu) Proč je matice A citlivější vůči numerickým operacím než B? Jak tuto citlivost charakterizovat? ( ) ( ) 1 1 00001 1 A =, B = 1 10001 1 1 Jak moc se řešení Ax = b může změnit při malé změně pravé strany na b + b? A(x + x ) = b + b = Ax = b Chceme popsat závislost x na b, třeba pomocí norem x a b
První pokus Předpokládejme na chvíli, že matice má kladná reálná vlastní čísla a všechny vlastní vektory Hledáme vektor x, který zobrazení A co nejvíce zkrátí To je vlastní vektor x 1 příslušející k nejmenšímu vlastnímu číslu λ 1 Tedy dostáváme x 1 λ 1 b a této chyby se i nabývá Popsané faktor citlivosti má jednu klíčovou vadu: změnou měřítka se mění i citlivost matice přenásobení matice násobí i vlastní čísla Řešením je uvažovat relativní změnu x x vůči b b Uvažujme pravou stranu b, která je nejhorší: b = x n Dostáváme x 1 λ n b, tedy dohromady je x x λ n λ 1 b b a faktor citlivosti matice je c = λn λ 1
První pokus Předpokládejme na chvíli, že matice má kladná reálná vlastní čísla a všechny vlastní vektory Hledáme vektor x, který zobrazení A co nejvíce zkrátí To je vlastní vektor x 1 příslušející k nejmenšímu vlastnímu číslu λ 1 Tedy dostáváme x 1 λ 1 b a této chyby se i nabývá Popsané faktor citlivosti má jednu klíčovou vadu: změnou měřítka se mění i citlivost matice přenásobení matice násobí i vlastní čísla Řešením je uvažovat relativní změnu x x vůči b b Uvažujme pravou stranu b, která je nejhorší: b = x n Dostáváme x 1 λ n b, tedy dohromady je x x λ n λ 1 b b a faktor citlivosti matice je c = λn λ 1
První pokus Předpokládejme na chvíli, že matice má kladná reálná vlastní čísla a všechny vlastní vektory Hledáme vektor x, který zobrazení A co nejvíce zkrátí To je vlastní vektor x 1 příslušející k nejmenšímu vlastnímu číslu λ 1 Tedy dostáváme x 1 λ 1 b a této chyby se i nabývá Popsané faktor citlivosti má jednu klíčovou vadu: změnou měřítka se mění i citlivost matice přenásobení matice násobí i vlastní čísla Řešením je uvažovat relativní změnu x x vůči b b Uvažujme pravou stranu b, která je nejhorší: b = x n Dostáváme x 1 λ n b, tedy dohromady je x x λ n λ 1 b b a faktor citlivosti matice je c = λn λ 1
První pokus Předpokládejme na chvíli, že matice má kladná reálná vlastní čísla a všechny vlastní vektory Hledáme vektor x, který zobrazení A co nejvíce zkrátí To je vlastní vektor x 1 příslušející k nejmenšímu vlastnímu číslu λ 1 Tedy dostáváme x 1 λ 1 b a této chyby se i nabývá Popsané faktor citlivosti má jednu klíčovou vadu: změnou měřítka se mění i citlivost matice přenásobení matice násobí i vlastní čísla Řešením je uvažovat relativní změnu x x vůči b b Uvažujme pravou stranu b, která je nejhorší: b = x n Dostáváme x 1 λ n b, tedy dohromady je x x λ n λ 1 b b a faktor citlivosti matice je c = λn λ 1
První pokus Předpokládejme na chvíli, že matice má kladná reálná vlastní čísla a všechny vlastní vektory Hledáme vektor x, který zobrazení A co nejvíce zkrátí To je vlastní vektor x 1 příslušející k nejmenšímu vlastnímu číslu λ 1 Tedy dostáváme x 1 λ 1 b a této chyby se i nabývá Popsané faktor citlivosti má jednu klíčovou vadu: změnou měřítka se mění i citlivost matice přenásobení matice násobí i vlastní čísla Řešením je uvažovat relativní změnu x x vůči b b Uvažujme pravou stranu b, která je nejhorší: b = x n Dostáváme x 1 λ n b, tedy dohromady je x x λ n λ 1 b b a faktor citlivosti matice je c = λn λ 1
První pokus Předpokládejme na chvíli, že matice má kladná reálná vlastní čísla a všechny vlastní vektory Hledáme vektor x, který zobrazení A co nejvíce zkrátí To je vlastní vektor x 1 příslušející k nejmenšímu vlastnímu číslu λ 1 Tedy dostáváme x 1 λ 1 b a této chyby se i nabývá Popsané faktor citlivosti má jednu klíčovou vadu: změnou měřítka se mění i citlivost matice přenásobení matice násobí i vlastní čísla Řešením je uvažovat relativní změnu x x vůči b b Uvažujme pravou stranu b, která je nejhorší: b = x n Dostáváme x 1 λ n b, tedy dohromady je x x λ n λ 1 b b a faktor citlivosti matice je c = λn λ 1
První pokus Předpokládejme na chvíli, že matice má kladná reálná vlastní čísla a všechny vlastní vektory Hledáme vektor x, který zobrazení A co nejvíce zkrátí To je vlastní vektor x 1 příslušející k nejmenšímu vlastnímu číslu λ 1 Tedy dostáváme x 1 λ 1 b a této chyby se i nabývá Popsané faktor citlivosti má jednu klíčovou vadu: změnou měřítka se mění i citlivost matice přenásobení matice násobí i vlastní čísla Řešením je uvažovat relativní změnu x x vůči b b Uvažujme pravou stranu b, která je nejhorší: b = x n Dostáváme x 1 λ n b, tedy dohromady je x x λ n λ 1 b b a faktor citlivosti matice je c = λn λ 1
První pokus Předpokládejme na chvíli, že matice má kladná reálná vlastní čísla a všechny vlastní vektory Hledáme vektor x, který zobrazení A co nejvíce zkrátí To je vlastní vektor x 1 příslušející k nejmenšímu vlastnímu číslu λ 1 Tedy dostáváme x 1 λ 1 b a této chyby se i nabývá Popsané faktor citlivosti má jednu klíčovou vadu: změnou měřítka se mění i citlivost matice přenásobení matice násobí i vlastní čísla Řešením je uvažovat relativní změnu x x vůči b b Uvažujme pravou stranu b, která je nejhorší: b = x n Dostáváme x 1 λ n b, tedy dohromady je x x λ n λ 1 b b a faktor citlivosti matice je c = λn λ 1
První pokus Příklad Jaké jsou faktory citlivosti matic A = ( ) 1 1, C = 1 10001 2 1 1 2 1 1 2 1 1 2? Matice A má vlastní čísla λ 1 05 10 4 a λ 2 2, tedy c 4 10 4 Matice C má vlastní čísla λ 1 π2 a λ n 2 n 4, tedy c n 2, chyba drasticky roste s velikostí n
První pokus Příklad Jaké jsou faktory citlivosti matic A = ( ) 1 1, C = 1 10001 2 1 1 2 1 1 2 1 1 2? Matice A má vlastní čísla λ 1 05 10 4 a λ 2 2, tedy c 4 10 4 Matice C má vlastní čísla λ 1 π2 a λ n 2 n 4, tedy c n 2, chyba drasticky roste s velikostí n
První pokus Příklad Jaké jsou faktory citlivosti matic A = ( ) 1 1, C = 1 10001 2 1 1 2 1 1 2 1 1 2? Matice A má vlastní čísla λ 1 05 10 4 a λ 2 2, tedy c 4 10 4 Matice C má vlastní čísla λ 1 π2 a λ n 2 n 4, tedy c n 2, chyba drasticky roste s velikostí n
Obecné řešení Můžeme povolit libovolná vlastní čísla a ve vzorcích uvažovat absolutní hodnoty Problém je, pokud matice nemá všechny vlastní vektory, třeba D = ( 1 100 0 1 Matice má vlastní čísla λ 1 = λ 2 = 1, ale problémy způsobují velké hodnoty mimo diagonálu Snažíme se nalézt vektor x, který maximalizuje Ax x Definice Norma matice A je číslo definované A = max x 0 ) Ax x
Obecné řešení Můžeme povolit libovolná vlastní čísla a ve vzorcích uvažovat absolutní hodnoty Problém je, pokud matice nemá všechny vlastní vektory, třeba D = ( 1 100 0 1 Matice má vlastní čísla λ 1 = λ 2 = 1, ale problémy způsobují velké hodnoty mimo diagonálu Snažíme se nalézt vektor x, který maximalizuje Ax x Definice Norma matice A je číslo definované A = max x 0 ) Ax x
Obecné řešení Můžeme povolit libovolná vlastní čísla a ve vzorcích uvažovat absolutní hodnoty Problém je, pokud matice nemá všechny vlastní vektory, třeba D = ( 1 100 0 1 Matice má vlastní čísla λ 1 = λ 2 = 1, ale problémy způsobují velké hodnoty mimo diagonálu Snažíme se nalézt vektor x, který maximalizuje Ax x Definice Norma matice A je číslo definované A = max x 0 ) Ax x
Obecné řešení Můžeme povolit libovolná vlastní čísla a ve vzorcích uvažovat absolutní hodnoty Problém je, pokud matice nemá všechny vlastní vektory, třeba D = ( 1 100 0 1 Matice má vlastní čísla λ 1 = λ 2 = 1, ale problémy způsobují velké hodnoty mimo diagonálu Snažíme se nalézt vektor x, který maximalizuje Ax x Definice Norma matice A je číslo definované A = max x 0 ) Ax x
Obecné řešení Na normu matice lze nahlížet na obdobu největší vlastní čísla pro nediagonalizovatelné matice Tedy faktor citlivosti obecné matice je c = A A 1 Podobně tento faktor omezuje nepřesnosti vzniklé úpravou přímo matice A: x x + x c A A
Obecné řešení Na normu matice lze nahlížet na obdobu největší vlastní čísla pro nediagonalizovatelné matice Tedy faktor citlivosti obecné matice je c = A A 1 Podobně tento faktor omezuje nepřesnosti vzniklé úpravou přímo matice A: x x + x c A A
Obecné řešení Na normu matice lze nahlížet na obdobu největší vlastní čísla pro nediagonalizovatelné matice Tedy faktor citlivosti obecné matice je c = A A 1 Podobně tento faktor omezuje nepřesnosti vzniklé úpravou přímo matice A: x x + x c A A
Obecné řešení Nepřesnosti při řešení soustavy jsou dvojího typu: Přirozené, způsobené citlivostí matice Způsobené špatným algoritmem, třeba Gaussovou eliminací Wilkinson dokázal, že pokud při Gaussově budeme prohazovat řádky a vždy vybereme největší pivot, chyba způsobená algoritmem bude zanedbatelná B = ( 00001 1 1 1 ) ( ) ( ) 1 1 1 1 00001 1 0 09999
Obecné řešení Nepřesnosti při řešení soustavy jsou dvojího typu: Přirozené, způsobené citlivostí matice Způsobené špatným algoritmem, třeba Gaussovou eliminací Wilkinson dokázal, že pokud při Gaussově budeme prohazovat řádky a vždy vybereme největší pivot, chyba způsobená algoritmem bude zanedbatelná B = ( 00001 1 1 1 ) ( ) ( ) 1 1 1 1 00001 1 0 09999
Metoda obecně Pokud je matice obrovská, může být Gaussova eliminace příliš pomalá Navíc často stačí znát řešení jenom přibližně s dostatečnou přesností Rozdělíme matici: A = S T a místo Ax = b budeme řešit Sx = Tx + b Rešení budeme hledat iterativně, začneme s x 0 a budeme v každém kroku získávat přesnější odhad: Sx k+1 = Tx k + b
Metoda obecně Pokud je matice obrovská, může být Gaussova eliminace příliš pomalá Navíc často stačí znát řešení jenom přibližně s dostatečnou přesností Rozdělíme matici: A = S T a místo Ax = b budeme řešit Sx = Tx + b Rešení budeme hledat iterativně, začneme s x 0 a budeme v každém kroku získávat přesnější odhad: Sx k+1 = Tx k + b
Metoda obecně Pokud je matice obrovská, může být Gaussova eliminace příliš pomalá Navíc často stačí znát řešení jenom přibližně s dostatečnou přesností Rozdělíme matici: A = S T a místo Ax = b budeme řešit Sx = Tx + b Rešení budeme hledat iterativně, začneme s x 0 a budeme v každém kroku získávat přesnější odhad: Sx k+1 = Tx k + b
Metoda obecně Samozřejmě matici nemůžeme rozdělit na S a T úplně libovolně 1 Musí být snadné spočítat x k+1 ze znalosti x k S by měla být jednoduchá invertovatelná matice 2 Posloupnost x k musí konvergovat ke správné hodnotě x a pokud možno co nejrychleji Místo x k lze uvažovat chybu e k = x x k Platí tedy matice S 1 T musí být stabilní Se k+1 = Te k,
Metoda obecně Samozřejmě matici nemůžeme rozdělit na S a T úplně libovolně 1 Musí být snadné spočítat x k+1 ze znalosti x k S by měla být jednoduchá invertovatelná matice 2 Posloupnost x k musí konvergovat ke správné hodnotě x a pokud možno co nejrychleji Místo x k lze uvažovat chybu e k = x x k Platí tedy matice S 1 T musí být stabilní Se k+1 = Te k,
Metoda obecně Samozřejmě matici nemůžeme rozdělit na S a T úplně libovolně 1 Musí být snadné spočítat x k+1 ze znalosti x k S by měla být jednoduchá invertovatelná matice 2 Posloupnost x k musí konvergovat ke správné hodnotě x a pokud možno co nejrychleji Místo x k lze uvažovat chybu e k = x x k Platí tedy matice S 1 T musí být stabilní Se k+1 = Te k,
Metoda obecně Budeme uvažovat tři jednoduché volby S: 1 Jacobiho metoda: S je diagonální část matice A 2 Gauss-Seidelova metoda: S je dolní trojúhelník matice A 3 SOR metoda: S je kombinace obojího Zkusíme tyto metody blíže vysvětlit a porovnat
Jacobiho metoda Rozepišme si vztah Sx k+1 = Tx k + b: a 11 (x 1 ) k+1 = ( a 12 x 2 a 13 x 3 a 1n x n ) k + b 1 a 22 (x 2 ) k+1 = ( a 21 x 1 a 23 x 3 a 2n x n ) k + b 2 = a nn (x n ) k+1 = ( a n1 x 1 a 23 x 3 a n,n 1 x n 1 ) k + b n Příklad ( 2 1 A = 1 2 S 1 T = ), S = ( 0 5 5 0 ( 2 ), T = 2 ), λ 1 = 1 2, λ 2 = 1 2 ( ) 0 1, 1 0
Jacobiho metoda Rozepišme si vztah Sx k+1 = Tx k + b: a 11 (x 1 ) k+1 = ( a 12 x 2 a 13 x 3 a 1n x n ) k + b 1 a 22 (x 2 ) k+1 = ( a 21 x 1 a 23 x 3 a 2n x n ) k + b 2 = a nn (x n ) k+1 = ( a n1 x 1 a 23 x 3 a n,n 1 x n 1 ) k + b n Příklad ( 2 1 A = 1 2 S 1 T = ), S = ( 0 5 5 0 ( 2 ), T = 2 ), λ 1 = 1 2, λ 2 = 1 2 ( ) 0 1, 1 0
Gauss-Seidelova metoda Opět si rozepíšeme vztah Sx k+1 = Tx k + b: a 11 (x 1 ) k+1 = ( a 12 x 2 a 13 x 3 a 1n x n ) k + b 1 a 22 (x 2 ) k+1 = ( a 21 x 1 ) k+1 + ( a 23 x 3 a 2n x n ) k + b 2 = a nn (x n ) k+1 = ( a n1 x 1 a 23 x 3 a n,n 1 x n 1 ) k+1 + b n Příklad A = ( ) 2 1, S = 1 2 S 1 T = ( ) 2 0, T = 1 2 ( ) 0 5, λ 0 25 1 = 0, λ 2 = 1 4 ( ) 0 1, 0 0
Gauss-Seidelova metoda Opět si rozepíšeme vztah Sx k+1 = Tx k + b: a 11 (x 1 ) k+1 = ( a 12 x 2 a 13 x 3 a 1n x n ) k + b 1 a 22 (x 2 ) k+1 = ( a 21 x 1 ) k+1 + ( a 23 x 3 a 2n x n ) k + b 2 = a nn (x n ) k+1 = ( a n1 x 1 a 23 x 3 a n,n 1 x n 1 ) k+1 + b n Příklad A = ( ) 2 1, S = 1 2 S 1 T = ( ) 2 0, T = 1 2 ( ) 0 5, λ 0 25 1 = 0, λ 2 = 1 4 ( ) 0 1, 0 0
SOR metoda Metoda je určena parametrem ω: (D + ωl) x }{{} k+1 = ( (1 ω)d ωu ) x k + ωb }{{} ωs ωt Chceme zvolit ω optimálně Příklad Pro matici A = ( ) 2 1 dostáváme 1 2 S 1 T = ( ) 1 ( ) 2 0 2(1 ω) ω ω 2 0 2(1 ω)
SOR metoda Metoda je určena parametrem ω: (D + ωl) x }{{} k+1 = ( (1 ω)d ωu ) x k + ωb }{{} ωs ωt Chceme zvolit ω optimálně Příklad Pro matici A = ( ) 2 1 dostáváme 1 2 S 1 T = ( ) 1 ( ) 2 0 2(1 ω) ω ω 2 0 2(1 ω)
SOR metoda Metoda je určena parametrem ω: (D + ωl) x }{{} k+1 = ( (1 ω)d ωu ) x k + ωb }{{} ωs ωt Chceme zvolit ω optimálně Příklad Pro matici A = ( ) 2 1 dostáváme 1 2 S 1 T = ( ) 1 ( ) 2 0 2(1 ω) ω ω 2 0 2(1 ω)
Ostatní metody numerické lineární algebry Vedle řešení soustav rovnic Ax = b se v numerické analýze řeší: Hledání vlastních čísel: Ax = λx Problém nejmenších čtverců: Najít nejbližší řešení x pro soustavu Ax = b, která nemá řešení
A to je vše Děkuji za pozornost Prostor pro Vaše otázky Další zdroje: G Strang, Linear Algebra and Its Applications G H Golub, C F Van Loan, Matrix Computations