Konjugaattigradienttimenetelmä Keijo Ruotsalainen Division of Mathematics
Konjugaattigradienttimenetelmä Oletukset Matriisi A on symmetrinen: A T = A Positiivisesti definiitti: x T Ax > 0 kaikille x 0 Tällöin Lause 1 Ax = b min x R n 2 xt Ax b T x. Symmetrinen matriisi A R n n on positiivisesti definiitti, jos ja vain jos sen ominaisarvot ovat positiivisia. Esim. [ ] 2 2 Ovatko matriisit A = ja B = 2 5 positiivisesti definiittejä. [ ] 2 4 symmetrisiä ja 4 5 Keijo Ruotsalainen Matematiikan jaos 2 / 13
Perusominaisuudet Ratkaisu x = A 1 b saavutetaan iteratiivisesti n:llä iteraatiolla (eksaktissa aritmetiikassa). Jokainen välivaihe x k on minimointiongelman ratkaisu. Jokainen muutos "x k x k+1 "on konjugoitu kaikkiin edellisiin muutoksiin nähden. Jokaisella iteraatiolla lasketaan ns. hakusuunta d k ja jäännösvektori r k = b Ax k. Konjugoidut suunnat Vektorit d 1,..., d k ovat konjugoituja l. A-ortogonaalisia, jos d T i Ad j = 0, i j. Keijo Ruotsalainen Matematiikan jaos 3 / 13
Initialisointi Funktion f(x) = 1 2 xt Ax b T x gradientti f(x) = Ax b.. Aloituspiste x 0 = 0, Hakusuunta funktion f(x) gradientti ko. pisteessä: d 0 = r 0 = b Ax 0 = b. 1-ulott. minimointivaihe: min α g(α) = f(x 0 +αd 0 ) g (α 0 ) = f(x 0 +α 0 d 0 ) T d 0 = α 1 d T 0 Ad 0 b T d 0 = 0. Askelpituus: α 0 = bt d 0 d0 TAd. 0 Seuraava piste: x 1 = x 0 +α 0 d 0. Keijo Ruotsalainen Matematiikan jaos 4 / 13
Yleinen iteraatio Edellisillä iteraatioilla määrätty pisteet x 0, x 1,..., x k =, jäännösvektorit r 0 = b, r 1 = b Ax 1,..., r k = b Ax k ja konjugoidut suunnat d 0, d 1,..., d k 1. Uusi konjugoitu suunta d k = r k +β k d k 1. Kerroin β k määräätään A-ortogonaalisuuden avulla: d T k Ad k 1 = r T k Ad k 1 +β k d T k 1 Ad k 1 = 0. Näin ollen kerroin β k = rt k Ad k 1 dk 1 T Ad. k 1 Keijo Ruotsalainen Matematiikan jaos 5 / 13
Minimointivaihe Minimoidaan g(α) = f(x k +αd k ). Minimi löytyy derivaatan nollakohdasta g (α k ) = α k d T k Ad k r T k d k = 0. Askelpituus α k = rt k d k dk TAd. k Uusi approksimaatio on x k+1 = x k +α k d k Keijo Ruotsalainen Matematiikan jaos 6 / 13
Aputulos 1 lemma Jäännösvektori pisteessä x k on kohtisuorassa vektoria d k 1 vasten, ts. d T k 1 r k = 0. Tod.: Koska funktion g(α) = f(x k 1 +αd k 1 ) minimi löytyy arvolla α k 1 derivaatan nollakohdassa, niin 0 = f(x k 1 +α k 1 d k 1 ) T d k 1 = r T k d k 1, sillä funktion f(x) gradientti pisteessä x k on jäännösvektori r k. Keijo Ruotsalainen Matematiikan jaos 7 / 13
Aputulos 2 lemma Kaikilla k: rk+1 T r k = 0. Tod.: Konjugoitujen suuntien konstruktion perusteella d k = r k +β k d k 1 ja jäännösvektorin r k+1 = b Ax k+1 määritelmän nojalla r k+1 = r k α k Ad k. Näin ollen edellisen lemman nojalla 0 = r T k+1 d k = r T k+1 r k +β k r T k+1 d k 1 = r T k+1 r k +β k [r k α k Ad k ] T d k 1 = r T k+1 r k. Keijo Ruotsalainen Matematiikan jaos 8 / 13
Vakioiden päivitys Konjugoidun suunnan ja gradientin ortogonaalisuuden nojalla Vastaavasti: α k = rt k d k dk TAd = rt k (r k +β k d k 1 ) dk TAd = r k 2 k dk TAd. k r k+1 2 = rk+1 T r k α k rk+1 T Ad k = r k 2 dk TAd rk+1 T Ad k, k niin β k+1 = r k+1 2 r k 2. Keijo Ruotsalainen Matematiikan jaos 9 / 13
Konjugaattigradienttimenetelmä Algoritmi 1. Initialisointi: x 0 = 0, r 0 = d 0 = b; 2. Kaikille k=0,...,n-1 β k = r k 2 r k 1 2, β 0 = 0 d k = r k +β k d k 1, d 0 = r 0 α k = r k 2 dk TAd k x k+1 r k+1 = x k +α k d k = r k α k Ad k Keijo Ruotsalainen Matematiikan jaos 10 / 13
Esikäsitelty konjugaattigradienttimenetelmä Tavoite: kiihdyttää konjugaattigradienttimenetelmän suppenemista Esikäsittelyn (precondiotining) tavoitteena on pienentää yhtälöryhmän kerroinmatriisin ehtolukua. Olkoon M säännöllinen n n-matriisi. Muodostetaan yhtälöryhmä M 1 Ax = M 1 b. Matriisin M kriteerit: 1. M 1 helppo muodostaa; 2. M on mahdollisimman lähellä matriisia A. Keijo Ruotsalainen Matematiikan jaos 11 / 13
Eräitä valintoja Jacobin esikäsittely: M = D = diag(a); Symmetrinen ylirelaksaatio: Hajoitetaan matriisi A muotoon A = L+D + U, missä L on alakolmio-osa, U yläkolmio-osa ja D diagonaaliosa. Valitaan relaksaatioparametri ω [0, 2]: M = (D +ωl)d 1 (D +ωu). Kun ω = 0 saadaan Jacobin esikäsittely ja kun ω = 1 saadaan ns. Gauss-Seidelin esikäsittely. Keijo Ruotsalainen Matematiikan jaos 12 / 13
Esikäsitelty konjugaattigradienttimenetelmä 1. Initialisointi: x 0 = 0, r 0 = b, hakusuunta: d 0 = z 0 = M 1 r 0 2. Kaikille k=0,...,n-1 3. If r k = 0, STOP, end α k x k+1 r k+1 = r k z k dk TAd k = x k +α k d k = r k α k Ad k z k+1 = M 1 r k+1 β k = r k+1 z k+1 r k z k d k+1 = z k+1 +β k d k Keijo Ruotsalainen Matematiikan jaos 13 / 13