Předmět: MA 4 Dnešní látka Iterační metoda Jacobiova iterační metoda Gaussova-Seidelova iterační metoda Superrelaxační metoda (metoda SOR) Metoda sdružených gradientů Četba: Text o lineární algebře v Příručce přežití na webových stránkách přednášejícího.
Iterační metody pro řešení soustav lineárních algebraických rovnic vytvářejí posloupnost vektorů {x k } k=1, která konverguje k řešení soustavy Ax = b. Obecně potřebují nekonečný počet kroků, ale prakticky je stačí ukončit po konečném počtu kroků při dosažení dostatečně přesné aproximace přesného řešení.
Motivační příklad: Iterační výpočet a, kde a > 0 Myšlenka (M. Fiedler: Speciální matice): x 2 = a, x = a x, 2x = x + a x, x = 1 2 ( x + a x ). Metoda: zvolit počáteční hodnotu x 0, x k+1 = 1 ) (x k + axk, k = 0, 1,..., (1) 2 zastavit iterace, pokud x k+1 x k ε, kde ε je předem zadané malé číslo, např. ε = 10 15.
Konvergence posloupnosti {x k } k=1 není náhodná. Dosazením za x k+2 a x k+1 dle (1) a užitím středoškolské algebry snadno odvodíme x k+2 x k+1 = 1 2 x xk 2 k+1 x k a xk 2 + a, x k+2 x k+1 1 2 x k+1 x k, odtud indukcí ( ) 1 k+1 ( ) 1 k+2 a x k+2 x k+1 x 1 x 0 = x 0 2 2 x, 0 kde v poslední rovnosti je užito x 1 = 1 ) (x 0 + ax0. 2
Odvodili jsme nerovnost ( ) 1 k+1 a x k+1 x k x 0 2 x. 0 Z ní pro přirozené číslo m > 1 získáme x k+m x k = x k+m x k+m 1 + x k+m 1 + x k+1 x k x k+m x k+m 1 + x k+m 1 x k+m 2 + + x k+1 x k [ 1 2 m 1 + 1 2 m 2 + + 1 ] 1 2 + 1 a 2 k+1 x 0 x 0 2 1 a 2 k+1 x 0 x = 1 a 0 2 k x 0 x. 0 Vidíme, že posloupnost {x k } k=1 je cauchyovská. Tudíž má limitu x, která splňuje x = 1 ( x + a ), tj. x = a. 2 x
Ukázali jsme, že lim k x k = a a že pro libovolné přirozené m platí x k+m x k 1 a 2 k x 0 x. 0 Odtud a x k = a x k+m + x k+m x k a x k+m + x k+m x k a x k+m + 1 a 2 k x 0 x. 0 S použitím lim m x k+m = a se odvodí ( ) 1 k a a x k x 0 2 x. 0 To je hrubý odhad, skutečná konvergence je rychlejší.
Soustavy lineárních algebraických rovnic Nejprve speciální soustava tvaru (I A)x = b, kde A je čtvercová matice. Předpoklad ϱ(a) < 1, k tomu stačí A < 1 pro nějakou generovanou normu, protože ϱ(a) A pro každou z námi zavedených generovaných norem. Pak pro b, x 0 posloupnost vektorů {x k } k=0,1,2,... daná předpisem x k+1 = Ax k + b, k = 0, 1, 2,..., konverguje (po souřadnicích, tj. v normě 1 nebo 2 nebo ) k vektoru x, jenž je řešením soustavy (I A)x = b. Platí odhady (důkaz (3) je jednoduchý) x x k A k x 0 + A k b, 1 A (2) x x k A 1 A x k x k 1. (3)
V praxi Cx = y. Nutno od Cx = y přejít k (I A)x = b a aplikovat proces x k+1 = Ax k + b, k = 0, 1, 2, 3,.... Různé způsoby vytvoření matice A různé metody. Jacobiova metoda: Napíšeme C = (c ij ) jako D + Ĉ, kde D = diag{c 11, c 22,..., c nn } a Ĉ = (ĉ ij ) je matice s prvky ĉ ii = 0, ĉ ij = c ij pro i j. Jsou-li všechny diagonální prvky c ii nenulové, položíme A = D 1 Ĉ, b = D 1 y. Jacobiovu metodu lze zapsat i takto x k+1 = D }{{ 1 Ĉ } x k + D 1 y, k = 0, 1,..., }{{} A b x 0 R n zvolíme, postupně vypočítáváme x 1, x 2,... Při výpočtu se místo sestavování matice A spíše užívají přímé vztahy pro výpočet složek vektoru x k+1 viz Příručka.
Podmínka ϱ(d 1Ĉ) < 1 zaručuje konvergenci Jacobiovy metody pro každou pravou stranu y a při libovolné volbě počátečního vektoru x 0. Dvě jednodušší podmínky: (a) C = (c ij ) má převládající diagonálu, tj. existují kladná čísla h 1, h 2,..., h n tak, že c ii h i > k i c ik h k, i = 1,..., n. Pak Jacobiova metoda pro řešení soustavy Cx = y konverguje pro y, x 0. Poznámka: Někdy stačí volit h 1 = h 2 = = h n = 1.
(b) Má-li reálná symetrická matice C všechny prvky na hlavní diagonále kladné, konverguje Jacobiova metoda pro y, x 0, právě když C i 2D C jsou pozitivně definitní matice. Připomenutí: O matici M = (m ij ) R n n řekneme, že je pozitivně definitní, pokud (Mx, x) > 0, tj. n n m ij x i x j > 0 j=1 j=1 pro každý nenulový n-rozměrný reálný vektor x = (x 1,..., x n ).
Jiný rozklad matice C vede k jiné metodě. Pišme C = D + L + U, kde D je opět diagonální část matice C, matice L (resp. U) je dolní (resp. horní) trojúhelníková matice, matice L a U mají nulové hlavní diagonály. Definujme A = (D + L) 1 U, b = (D + L) 1 y. Iterační metoda x k+1 = (D + L) 1 Ux k + (D + L) 1 y, k = 0, 1,..., se nazývá Gaussova-Seidelova metoda. Vektor x k+1 řeší soustavu (D + L)x k+1 = Ux k + y. V praxi se nepočítají inverzní matice, ale dosazuje se do explicitních vztahů pro x (i) k, kde i = 1, 2,..., n a n je řád matice C, viz Příručka.
Konvergence Gaussovy-Seidelovy metody (a) Má-li matice C převládající diagonálu, je ϱ( (D + L) 1 U) < 1, tj. metoda konverguje pro každou volbu počátečního vektoru a každou pravou stranu. (b) Gaussova-Seidelova metoda konverguje pro y, x 0, je-li matice C pozitivně definitní.
Superrelaxační metoda zobecnění G.-S. metody Úlohu Cx = y, kde C = L + D + U, lze rozepsat ωcx = ωy, [D + ω(l + D + U) D]x = ωy, (D + ωl)x + [ωu + (ω 1)D]x = ωy. ) Odtud x = (D + ωl) (ωy 1 [ωu + (ω 1)D]x, což vede k iteračnímu procesu x k+1 = (D + ωl) 1( ωy [ωu + (ω 1)D]x k ). Tedy x k+1 = A ω x k + b, kde A ω = (D + ωl) 1 [ωu + (ω 1)D] a b = ω(d + ωl) 1 y. Je-li C s.p.d., zajistí 0 < ω < 2 konvergenci, při vhodném ω i rychlejší než G.-S.; odhady vhodného parametru ω. Pro ω = 1 dostáváme G.-S. metodu.
Metoda sdružených gradientů A je symetrická pozitivně definitní typu n n. O vektorech u, v R n řekneme, že jsou vzájemně sdružené (vzhledem k matici A), jestliže (Au, v) v T Au = 0. A je s.p.d., tedy (u, v) A (Au, v) = v T Au = (u, A T v) = (u, Av) = (Av, u) = u T Av je skalární součin prvků z R n. Jsou-li vektory p 1, p 2,..., p n vzájemně konjugované, pak tvoří bázi prostoru R n. Tudíž řešení x soustavy Ax = b lze vyjádřit jejich lineární kombinací: x = n a i p i. i=1
Pracujme s x = n i=1 a ip i a využijme toho, že A x = b a (p k, p i ) A = 0, jestliže k 1: A x = p T k A x = p T k b = n a i Ap i, i=1 n a i pk T Ap i, i=1 n a i (p k, p i ) A, i=1 (p k, b) = a k (p k, p k ) A a k = (p k, b) (p k, p k ) A. Závěr: Budeme-li mít n vzájemně konjugovaných vektorů (tj. bázi), snadno vypočteme řešení x. Algoritmus: postupně vytvářet konjugované vektory p k a přibližná řešení x k.
Algoritmus metody sdružených gradientů (A je s.p.d.) x 0 počáteční aproximace, Ax 0 b. Položme p 0 = r 0 = b Ax 0 a počítejme pro k = 0, 1,..., n 1 a k = (r k, r k ) (Ap k, p k ), x k+1 = x k + a k p k, r k+1 = r k a k Ap k, r k+1 nulový nebo dostatečně malý x k+1 je řešení b k = (r k+1, r k+1 ), (r k, r k ) p k+1 = r k+1 + b k p k. Při použití přesné aritmetiky je nejpozději x n přesné řešení, tj. chování jako přímá metoda. V praxi nepřesná aritmetika chování jako iterační metoda.
g(x) = 1 (Ax, x) (b, x) 2 min g(x) Ax = b Metoda sdružených gradientů jako minimalizace kvadratické funkce. Metoda největšího spádu Metoda sdruž. grad. Oleg Alexandrov, Wikipedia
Konvergence: odhad pro metodu SG x x k A 2 ( κ(a) 1 κ(a) + 1 ) k x x 0 A, k = 0, 1, 2,..., kde κ(a) je číslo podmíněnosti definované jako podíl největšího vlastního čísla matice A k nejmenšímu vl. číslu matice A a x A = (Ax, x) = x T Ax je (energetická) norma (že jde o normu, to plyne z pozitivní definitnosti matice A). Připomeňme obecné odhady x x k A k x 0 + A k 1 A b, x x k A 1 A x k x k 1, platí pro J., G.-S. i SOR metodu.
Předpodmínění Vlastnosti matice C v soustavě Cx = y (snížení čísla podmíněnosti, tj. rozložení vlastních čísel) můžeme zlepšit předpodmíněním, tj. vynásobením vhodnou maticí M a řešením upravené soustavy se součinem MC nebo CM: MCx = My nebo CMz = y, kde Mz = x. Ideální volbou by bylo M = C 1, výpočet inverzní matice je však časově náročný (delší než řešení soustavy rovnic), proto volba matice M musí být kompromisem mezi kvalitou a výpočetními nároky (neúplný Choleského rozklad, M = D 1 a mnohé další (náročnější)).