• Nie Znaleziono Wyników

Inne metody Kryłowa

W dokumencie Matematyka obliczeniowa II – MIM UW (Stron 95-98)

8. Przegląd innych metod rozwiązywania wielkich układów równań liniowych

8.1. Inne metody Kryłowa

Na początek, na podstawie [1] przedstawimy w pewien systematyczny sposób uogólnienie metody CG na szerszą klasę problemów. Następnie zrobimy krótki przegląd wybranych metod Kryłowa, nie opartych na zasadzie minimalizacji.

8.1.1. Uogólnienia metody CG

Wielką zaletą metody PCG jest to, że nie wymaga ona pamiętania całej bazy przestrzeni Kryłowa Kk(M r0, M A) = span{M r0, M AM r0, . . . , (M A)k−1M r0}, a iteracja ma prostą

formu-łę xk+1= xk+ dk, gdzie dk∈ Kk(M r0, M A) jest tak dobrany by minimalizować pewną normę

błędu. Można więc pójść krok dalej i określić całą klasę metod o podobnej strukturze. Przyjmijmy więc, że

— macierz A jest nieosobliwa (na tym poziomie ogólności nie zakładamy symetrii ani dodatniej określoności)

oraz są dane dwie dodatkowe macierze:

— nieosobliwa macierz lewostronnie ściskająca M ,

— symetryczna, dodatnio określona macierz B, która będzie definiować normę, w której bę-dziemy minimalizować błąd:

kxkB= (xTBx)1/2.

Będziemy zakładali, że macierz ściśnięta M A jest normalna względem iloczynu skalarnego indukowanego przez macierz B, co możemy zapisać w formie warunku

GGT = GTG,

gdzie G = B1/2M AB−1/2.

W uogólnionej metodzie CG, którą będziemy oznaczali GCG(B, M , A), kolejna iteracja

xk+1 ∈ x0+ Kk(M r0, M A) będzie określona tak, by

kxk+1− xkB¬ kx − xkB ∀x ∈ x0+ Kk(M r0, M A) (8.1)

Ćwiczenia testowe 8.1. 1. Czy metoda CG to nic innego jak GCG(I, I, A)?

NIE. Komentarz do odpowiedzi prawidłowej: Oczywiście, CG to nic innego jak GCG(A, I, A). Komentarz do odpowiedzi błędnej: Sprawdź, w jakiej normie CG minimalizuje błąd.

96 8. Przegląd innych metod rozwiązywania wielkich układów równań liniowych

2. Czy metoda PCG z macierzą ściskającą M to nic innego jak GCG(A, M , A)?

TAK. Komentarz do odpowiedzi prawidłowej: Oczywiście. Komentarz do odpowiedzi błędnej: Zob. [1].

Twierdzenie 8.1. Przy powyższych założeniach, metoda GCG(B, M , A) jest dobrze określona i w dokładnej arytmetyce osiąga rozwiązanie dokładne po co najwyżej N krokach.

Dowód. Kładąc ˜r0 = M r0 oraz ˜A = M A, możemy zastosować twierdzenie 6.1 do przestrzeni Kryłowa Kk= Kkr0, ˜A), które zagwarantuje nam spełnienie tezy twierdzenia.

Twierdzenie 8.2. Przy powyższych założeniach, błąd na k-tym kroku metody GCG(B, M , A) spełnia oszacowanie kxk− xkB¬ min p∈ ˜Pk max λ∈σ(M A) |p(λ)|kx0− xkB.

Dowód. Na mocy wniosku 6.1,

kxk− xkB= min p∈ ˜Pk

kp(M A)(x0− x)kB.

Ponieważ dla dowolnego y

k(M A)kykB = k(B1/2M AB−1/2)kB1/2yk2, (8.2) to w konsekwencji kp(M A)ykB = kp(B1/2M AB−1/2) B1/2yk2 ¬ kp(B1/2M AB−1/2)k2kykB. Z założenia macierz G = B1/2M AB−1/2 jest normalna, jest więc diagonalizowalna i jej wektory własne są ortogonalne:

G = XΛXT, gdzie XTX = I.

Stąd zaś wynika, że kp(G)k2 = kXp(Λ)XTk2 = kp(Λ)k2 = maxλ∈σ(G)|p(λ)|, co kończy dowód,

gdyż macierze G i M A są podobne, więc mają to samo spektrum.

Ćwiczenie 8.2. Udowodnij równość (8.2).

Można, postępując analogicznie jak w przypadku klasycznej metody CG wykazać, że GCG(B,

M , A) ma własności podobne jak jej protoplastka:

Stwierdzenie 8.1. W metodzie GCG(B, M , A) zachodzi:

— xk= xk−1kpk, gdzie pk tworzą bazę B-ortogonalną przestrzeni Kryłowa Kk(M r0, M A). — wTB(xk− x) = 0 dla każdego w ∈ Kk(M r0, M A).

Dowód. W oczywisty sposób xk= xk−1+ dk, gdzie dk∈ Kk(M r0, M A). Jeśli przez Vk oznaczyć bazę w Kk(M r0, M A), to xk= x0+ Vkak i na mocy (6.2) akspełnia układ równań normalnych,

VkTB(Vkak− (x− x0)) = 0. Ponieważ Vkak= xk− x0, dostajemy

VkTB(xk− x) = 0, co dowodzi drugiego punktu.

Metoda B M Ograniczenia CG A I A = AT > 0 CR A2 I A = AT PCG A M A = AT > 0, M = MT PCR AM A M A = AT, M = MT > 0 CGNR ATA AT CGNE I AT D’yakonov B B−1ATB−1 B = BT > 0

Tabela 8.1. Wybrane metody Kryłowa dające się zinterpretować jako metoda GCG. W tabeli zamieszczono założenia na macierze A i M gwarantujące poprawność określenia metody.

Metodę GCG(B, M , A) możnaby zrealizować następującym uogólnieniem algorytmu CG, który nazwiemy za [1] algorytmem Odir(B, M , A):

Metoda Odir dla GCG, wersja bazowa

p0= M r0; k = 0;

while not stop begin

αk =p T kB(x− x) pT kBpk xk= xk−1+ αkpk rk = rk−1− αkApk γk =p T kBM Apk pT kBpk σk= p T kBM Apk−1 pT k−1Bpk−1 pk+1= M Apk− γkpk− σkpk−1 k = k + 1 end

Algorytm ten jeszcze nie jest gotowy do użycia, albowiem wymaga obliczania B(x− x) —

a więc potencjalnie wymaga odwołania się do nieznanego a priori wektora błędu! Możliwość skutecznego obliczania współczynnika αk ogranicza więc zbiór B, których możemy użyć do zde-finiowania konkretnej metody. Z drugiej strony, wybierając konkretne B możemy dalej uprościć powyższą bazową implementację. Na tym etapie nie jest także oczywiste, czy może zdarzyć się

pk= 0 — a więc stagnacja i załamanie się algorytmu (dzielenie przez zero!).

Wśród metod, które dają się skutecznie zaimplementować na podstawie algorytmu Odir(B,

M , A) — to znaczy: mają obliczalne αk — znajdują się metody wymienione w tabeli 8.1, którą przytaczamy za [1, Table 5.2]. Z tabeli wynika m.in., że PCG wcale nie wymaga dodatnio określonej macierzy ściskającej!

Aby otrzymać dobrą implementację konkretnej metody opartej na algorytmie Odir, należy zawsze ją dopracować, wykorzystując zależności specyficzne dla konkretnej metody.

Warta uwagi jest metoda PCR, która działa w przypadku, gdy macierz A jest jedynie sy-metryczna — nie musi być dodatnio określona. Metoda D’aykonova [6] co prawda działa dla dowolnej nieosobliwej, niesymetrycznej macierzy A, ale ze względu na jej podobieństwo do równań normalnych dla B−1A, w wielu wypadkach skuteczniejsza (pod względem szybkości

98 8. Przegląd innych metod rozwiązywania wielkich układów równań liniowych Uwaga 8.1. Czasami wymaganie, by można było wykonywać mnożenie przez AT może być trudne do spełnienia — na przykład wtedy, gdy A jest zadana jako operator, tzn. wyłącznie przez procedurę mnożenia przez zadany wektor x, tzn. obliczania A · x.

Ćwiczenie 8.3. Porównaj zbieżność metod: PCG i PCR w przypadku, gdy A oraz M są

macierzami symetrycznymi i dodatnio określonymi. Przeprowadź weryfikację eksperymentalną swoich przypuszczeń.

Wskazówka. W MATLABie dyponujesz gotową implementacją zarówno metody pcg, jak ipcr.

8.1.2. Metody nie oparte na minimalizacji

Zamiast określać kolejną iterację metody, jak dotychczas, przez pewien warunek minima-lizacji, możemy inaczej położyć warunek na xk. Na przykład, możemy wymagać by oprócz

xk ∈ x0+ Kk(r0, A) zachodził warunek ortogonalności residuów: vTrk= 0 ∀v ∈ Kk(r0, AT).

(Zwróć uwagę na to, że residua mają być ortogonalne nie do Kk(r0, A), tylko do Kk(r0, AT).) Tego typu warunek prowadzi m.in. do metody BiCG (ang. Bi-Conjugate Gradient) która wymaga mnożenia przez AT i nie jest też zbyt stabilna. Jej modyfikacje: CGS i BiCG-stab — nie wymagają już mnożenia przez AT, BiCG-stab jest też bardziej stabilna. Niestety, jak na razie dla BiCG-stab nie ma pełnej i satysfakcjonującej teorii zbieżności.

W przeciwieństwie do metod minimalizacji, kolejna iteracja może nie być realizowalna mimo, że nie osiągnięto jeszcze rozwiązania — mówimy wtedy potocznie o załamaniu się metody (ang.

breakdown).

W innej metodzie, QMR (ang. Quasi-Minimal Residual) — i jej wariancie bez mnożenia przez macierz transponowaną: TFQMR (ang.Transpose-Free QMR) — kolejną iterację wybiera się tak, by zminimalizować (stosunkowo łatwą do obliczenia) wielkość, która ma tylko trochę wspólnego z normą residuum.

Można pokazać [9], że metoda TFQMR dla macierzy N × N (realizowana w dokładnej arytmetyce) w ciągu d(N + 1)/2e iteracji albo załamie się, albo osiągnie dokładne rozwiązanie.

W dokumencie Matematyka obliczeniowa II – MIM UW (Stron 95-98)