• Nie Znaleziono Wyników

Metody projekcji

W dokumencie Matematyka obliczeniowa II – MIM UW (Stron 67-72)

5. Proste metody iteracyjne rozwiązywania układów równań liniowych

5.5. Metody projekcji

Dotychczas omówione metody opierają się na czysto formalnym, mechanicznym, podziale macierzy, bezpośrednio związanym z jej strukturą. Tymczasem można zdefiniować metody ite-racyjne o podobnym koszcie iteracji, ale w których kolejne przybliżenia rozwiązania będziemy wybierać tak, by w jakimś sensie zminimalizować błąd.

Metodę iteracyjną będziemy definiować w formie aktualizacji poprzedniego przybliżenia,

xk+1= xk+ δk.

„Idealna poprawka” δk, oznaczmy ją δ, powinna spełniać więc równanie

= rk,

bo wtedy dostalibyśmy xk+1 = x. Ma ona jednak tę wadę, że do jej wyznaczenia musieli-byśmy dokładnie rozwiązać nasz układ równań (co prawda z nieco inną prawą stroną, ale to bez znaczenia!) — a więc wpadlibyśmy z deszczu pod rynnę! Jednak, gdyby można było tanio rozwiązać ten układ równań w przybliżeniu, to może w ten sposób udałoby się nam określić

zbieżną metodę?

Aby określić przybliżone rozwiązanie równania poprawki, najpierw przeformułujemy je nieco. Niech dwie macierze: U i V mają tę własność, że kolumny każdej z nich tworzą bazę RN. Wtedy rozwiązanie dokładne równania idealnej poprawki, δ, możemy reprezentować w bazie

V , δ = V a dla pewnego a ∈ RN. Co więcej, z nieosobliwości macierzy U i V wynika, że

= rk ⇐⇒ UTAV a = UTrk.

To daje nam pomysł na definicję przybliżonej poprawki idealnej: niech Uk i Vk będą ma-cierzami pełnego rzędu, tego samego zadanego z góry rozmiaru N × dk. Wtedy poprawkę δk określimy jako wektor

δk= Vkak taki, że ak ∈ Rdk spełnia równanie

UkTAVkak= UkTrk. (5.20)

Jest to właśnie metoda projekcji.

Ponieważ macierz zredukowana Ak= UkTAVkjest kwadratowa rozmiaru dk, to δkbędzie tanie do wyznaczenia, gdy dk jest niewielkie. Nazwa metody bierze się stąd, że z powyższej definicji wynika, że wektor residualny równania poprawki, rk− Aδk jest prostopadły do podprzestrzeni rozpiętej przez kolumny Uk:

UkT(rk− Aδk) = 0.

Z drugiej strony, δkbędzie dobrze określone tylko wtedy, gdy macierz zredukowana Akbędzie nieosobliwa — co nie zawsze musi być prawdą, nawet jeśli A jest nieosobliwa (pomyśl o macierzy

0 1 1 1 ! i Uk = Vk = 1 0 !

). Aby zagwarantować sobie odwracalność macierzy zredukowanej, zwykle wybiera się macierz pełnego rzędu Vk i w zależności od własności macierzy A dobiera się macierz Uk:

68 5. Proste metody iteracyjne rozwiązywania układów równań liniowych

— Jeśli A = AT > 0, to kładziemy Uk = Vk. Wtedy macierz zredukowana Ak = VkTAVk jest symetryczna i dodatnio określona.

— Jeśli A jest tylko nieosobliwa, to kładziemy Uk = AVk. Macierz zredukowana jest postaci

Ak= VkTATAVk, a więc jest macierzą zredukowaną poprzedniego rodzaju, ale dla macierzy równań normalnych, ATA.

Jak możemy się domyślić, metody projekcji są metodami minimalizacji, co potwierdza po-niższy dwuczęściowy lemat:

Lemat 5.1. Niech Vk będzie zadaną macierzą N × dk, pełnego rzędu. Oznaczmy przez Vk pod-przestrzeń rozpiętą przez kolumny Vk.

— Jeśli A = AT > 0 oraz Uk= Vk, to xk+1 określone metodą projekcji (5.20) spełnia

kx− xk+1kA¬ kx− xkA ∀x ∈ xk+ Vk.

— Jeśli A jest nieosobliwa i Uk= AVk, to xk+1 określone metodą projekcji (5.20) spełnia

kb − Axk+1k2 ¬ kb − Axk2 ∀x ∈ xk+ Vk.

Dowód zostawiamy jako ćwiczenie.

Ćwiczenie 5.19. Udowodnij lemat5.1.

Wskazówka. Patrz [13] lub dowód twierdzenia 6.1. 5.5.1. Metoda najszybszego spadku

Jednym z bardziej prominentnych przykładów metody projekcji jest metoda najszybszego spadku, działająca w przypadku, gdy macierz A jest symetryczna i dodatnio określona. W tej metodzie wybieramy Uk = Vk = rk = b − Axk. Ponieważ wymiar przestrzeni rozpiętej przez kolumny Ukjest równy dk= 1, równanie poprawki upraszcza się do jednego równania skalarnego na ak ∈ R,

ak= rTkrk

rkTArk i w konsekwencji xk+1 = xk+ akrk.

Nazwa metody wywodzi się stąd, że wektor poprawki w tej metodzie jest proporcjonalny do residuum, które z kolei jest kierunkiem gradientu funkcjonału φ(x) = kx− xk2

A w punkcie xk:

∇φ(xk) = b − Axk= rk.

Twierdzenie 5.8 (o zbieżności metody najszybszego spadku). W metodzie najszyb-szego spadku,

kx− xk+1kA¬ κ − 1 κ + 1kx

− xkkA,

gdzie κ = cond2(A) = λmax(A)/λmin(A).

Dowód. Łatwo wykazać (por. [13, twierdzenie 5.2]), że jeśli rk 6= 0, kx− xk+1k2A¬ 1 − rkTrk rTkArk rkTrk rTkA−1rk ! kx− xkk2A.

Teza wynika z lematu, którego elegancki dowód, pochodzący od Braessa, można znaleźć w [2]:

Lemat 5.2 (Kantorowicza). Niech A = AT > 0. Wtedy dla dowolnego x 6= 0, xTAx xTx · xTA−1x xTx ¬ 1 4( κ +√1 κ) 2.

Ćwiczenie 5.20. Wykaż, że w metodzie najszybszego spadku zachodzi rk+1T rk = 0.

Rozwiązanie. Ponieważ xk+1= xk+ akrk, to

rk+1= rk− akArk,

zatem

rkTrk+1 = rkTrk− akrkTArk = krkk22− akrkTArk= 0 z definicji ak.

Przykład 5.13. Kontynuujemy przykład 5.8. Chcąc porównywać trzy metody: Jacobiego, Gaussa–Seidela oraz metodę najszybszego spadku, musimy zadbać o to, żeby były spełnione warunki zbieżności tej ostatniej — a więc, aby macierz A była symetryczna i dodatnio określona. Dlatego, tym razem położymy, dla dodatniego p,

A = BTB + pI.

%

% rozwiazania zadania z macierza rozrzedzona %

disp(’Matematyka obliczeniowa II’);

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% function [x, info, iter, resid] = jacobi(A, b, tol=1e−8, maxit=100, x0)

%

% metoda Jacobiego na macierzy A

To tylko fragment skryptu Octave. Możesz go uruchomić na http: //mst.mimuw.edu.pl/lecture.php?lecture=mo2&part=Ch5.

Choć A wydaje się dosyć gęsta, w rzeczywistości wciąż jest macierzą rzadką. Zwróćmy uwagę nie tylko na samą szybkość zbieżności — mierzoną liczbą iteracji — ale także na efektywność metody: ile czasu zajmuje wyznaczenie przybliżenia z zadaną dokładnością. Metoda najszyb-szego spadku niewątpliwie ma najtańszą iterację (a najdroższą — metoda Gaussa–Seidela), co ostatecznie przekłada się na większą efektywność metody najszybszego spadku (pomimo mniejszej szybkości zbieżności).

Ćwiczenie 5.21. Wyjaśnij, dlaczego w powyższym przykładzie, dla małych wartości p, metoda

Jacobiego czasem nie jest zbieżna.

70 5. Proste metody iteracyjne rozwiązywania układów równań liniowych Przykład 5.14. Dla macierzy jednowymiarowego laplasjanu, mamy

κ = λmax(A) λmin(A) = sin(πN/2(N + 1)) sin(π/2(N + 1)) 2 = O(N2),

zatem dla N = 100 mamy współczynnik redukcji błędu na poziomie (κ − 1)/(κ + 1) ≈ 0.9995. Znaczy to dokładnie tyle, że metoda nie nadaje się do rozwiązywania takich zadań, gdy N jest duże. Szybkość zbieżności metody najszybszego spadku jest w naszym przykładzie porów-nywalna z szybkością metody Jacobiego i gorsza od metody SOR z optymalnym parametrem relaksacji.

5.5.2. Metoda najmniejszego residuum

Gdy o macierzy A wiemy jedynie, że jest nieosobliwa, możemy zastosować metodę

najmniej-szego residuum. W tej metodzie wybieramy Vk= rk= b − Axkoraz Uk= AVk= Ark. Równanie poprawki znów upraszcza się do jednego równania skalarnego na ak∈ R,

ak= rkTATrk rT

kATArk

i w konsekwencji xk+1 = xk+ akrk.

Twierdzenie 5.9. Załóżmy, że macierz Asym= (A + AT)/2 jest dodatnio określona i

oznaczmy µ = λmin(Asym) > 0. Wtedy

krk+1k2 ¬ 1 − µ2 kAk2

2

!1/2 krkk2.

Asym nazywana jest częścią symetryczną macierzy A.

Ćwiczenie 5.22. Przeprowadź dowód twierdzenia o zbieżności metody najmniejszego

residu-um.

Wskazówka. Zob. dowód twierdzenia 5.3 w [13].

Ćwiczenie 5.23. Przypuśćmy, że umiemy tanio rozwiązywać układy równań z (nieosobliwą)

macierzą A rozmiaru N × N . Niech będzie dana macierz ˜ A = A v uT δ ! , gdzie u, v ∈ RN oraz δ ∈ R.

— Wskaż warunek konieczny i dostateczny na to, by macierz ˜A była nieosobliwa.

— Podaj możliwie tani algorytm rozwiązywania układu równań z macierzą ˜A. Wskazówka. A jest nieosobliwa wtedy i tylko wtedy, gdy δ − u˜ TA−1v 6= 0.

Ćwiczenie 5.24 (wzór Shermana–Morrisona). Przypuśćmy, że umiemy tanio rozwiązywać

układy równań z (nieosobliwą) macierzą A rozmiaru N × N . Niech będzie dana macierz ˜

A = A − vuT.

— Wskaż warunek konieczny i dostateczny na to, by macierz ˜A była nieosobliwa.

— Podaj możliwie tani algorytm rozwiązywania układu równań z macierzą ˜A. Wskazówka. Zauważ, że ˜Ax = b wtedy i tylko wtedy, gdy x

t

!

jest rozwiązaniem układu

A v uT 1 ! x t ! = b 0 ! . Patrz także stwierdzenie 11.1.

Ćwiczenia testowe 5.25. Czy metodę iteracyjną warto stosować do rozwiązywania układu Ax = b z macierzą N × N , w przypadku, gdy N jest bardzo duże oraz A jest

1. diagonalna

NIE. Komentarz do odpowiedzi prawidłowej: Oczywiście, macierz diagonalną możemy rozwiązać

bezpośrednio kosztem N flopów — a więc optymalnym. Wiele metod jednak sprowadziłoby się do metody bezpośredniej — na przykład metoda Jacobiego.... Komentarz do odpowiedzi błędnej: Zastanów się, ile kosztowałoby rozwiązanie takiego układu równań metodą bezpośrednią, wykorzystującą specjalną postać macierzy.

2. trójdiagonalna

NIE. Komentarz do odpowiedzi prawidłowej: Rozkład LU macierzy trójdiagonalnej możemy

wy-znaczyć bezpośrednio kosztem O(N ) flopów, podobnie z rozwiązaniem samego układu (macierz L jest dwudiagonalna, a macierz U — co najwyżej trójdiagonalna). Stałe przy tym nie są zbyt duże.

Komen-tarz do odpowiedzi błędnej: Zastanów się, ile kosztowałoby rozwiązanie takiego układu równań metodą

bezpośrednią, wykorzystującą specjalną postać macierzy.

3. pełna, tzn. bez zerowych elementów

TAK. Komentarz do odpowiedzi prawidłowej: Ponieważ macierz jest pełna, to jedno mnożenie wek-tora przez A kosztuje O(N2) flopów, więc metoda iteracyjna będzie miała sens, gdy satysfakcjonujące

przybliżenie dostaniemy po k ¬ N iteracjach. Komentarz do odpowiedzi błędnej: Rozkład LU macierzy pełnej możemy wyznaczyć bezpośrednio kosztem O(N3) flopów, co zwykle jest ponad siły współczesnego

komputera, gdy N jest bardzo duże.

Ćwiczenie 5.26. Czy metodę iteracyjną warto stosować do rozwiązywania układu Ax = b z

macierzą N × N , w przypadku, gdy N jest bardzo duże oraz A jest rzadka?

Rozwiązanie. Tutaj, jak wynika z naszych dotychczasowych rozważań, odpowiedź jest

zniuanso-wana. Jedno mnożenie wektora przez A kosztuje zapewne O(N ) flopów, więc metoda iteracyjna będzie miała sens, gdy satysfakcjonujące przybliżenie dostaniemy po k  N iteracjach (a to, jak wiemy, nie zawsze jest gwarantowane). Z drugiej strony, może istnieć skuteczny reordering ma-cierzy (czyli zmiana uporządkowania niewiadomych lub równań), pozwalający tanio wyznaczyć rozwiązanie metodą bezpośrednią [13].

W dokumencie Matematyka obliczeniowa II – MIM UW (Stron 67-72)