Zajmiemy się przybliżonymi metodami rozwiązywania układów równań liniowych
z nieosobliwą rzeczywistą macierzą
Macierze, w których bardzo wiele elementów jest zerowych, nazywamy macierzami rozrzedzonymi lub, potocznie, rzadkimi. Dla odróżnienia, macierze, które nie są rzadkie, nazwiemy gęstymi — przykładem takiej macierzy jest macierz, której wszystkie elementy są niezerowe. Intuicyjnie możemy spodziewać się, że praktyczne zadania liniowe wielkiego wymiaru będą prowadziły właśnie do macierzy rozrzedzonej, gdyż związki pomiędzy niewiadomymi w pojedynczym równaniu zadanego układu nie będą raczej dotyczyć wszystkich, tylko wybranej (nielicznej) grupy innych niewiadomych.
Wykorzystanie rozrzedzenia macierzy nie tylko może doprowadzić do algorytmów istotnie szybszych od ich analogonów dla macierzy gęstych (jak pamiętamy, standardowe algorytmy oparte na rozkładzie macierzy gęstej, np. LU, potrzebują
Gdy
Jak zobaczymy poniżej, rzeczywiście łatwo można spotkać realne zadania matematyki stosowanej, w których macierz wymiaru
Jednym ze szczególnie ważnych źródeł układów równań z macierzami rozrzedzonymi są równania różniczkowe cząstkowe (pochodzące np. z modeli pogody, naprężeń w konstrukcji samochodu, przenikania kosmetyków do głębszych warstw skóry, itp.).
Rozważmy modelowe eliptyczne równanie różniczkowe z jednorodnym warunkiem brzegowym Dirichleta
(5.1) | ||||
(5.2) |
w którym
(5.3) | ||||
(5.4) |
gdzie
Jest to oczywiście równanie liniowe na współczynniki
gdzie
(5.5) |
oraz
Otrzymana powyżej macierz, aczkolwiek ma bardzo wiele cech charakterystycznych dla dyskretyzacji ,,poważniejszych” równań różniczkowych, wydaje się jednak zbyt trywialna, by traktować ją metodą inną niż eliminacja Gaussa (uwzględniając jej pasmową strukturę): rzeczywiście, jest to macierz trójdiagonalna (a przy tym: symetryczna i dodatnio określona), zatem właściwie zrealizowany algorytm eliminacji Gaussa (lub lepiej: rozkładu
Jednak, gdy przejdziemy do wyższych wymiarów i być może dodatkowo regularną siatkę węzłów dyskretyzacji zastąpimy na przykład nieregularną siatką elementu skończonego, uzyskamy macierze o znacznie bardziej skomplikowanej strukturze, które już nie tak łatwo poddają się eliminacji Gaussa.
Przez analogię z poprzednim przykładem, rozważmy równanie Poissona w obszarze
(5.6) | ||||
(5.7) |
w którym
W dalszym ciągu przyjmiemy, dla ominięcia dodatkowych trudności, że
Aby znaleźć przybliżone rozwiązanie, znów możemy na przykład zastąpić równanie różniczkowe odpowiadającym mu równaniem różnicowym. Wybierzemy
tu najmniej efektywną, ale za to koncepcyjnie najprostszą metodę dyskretyzacji, opartą na równomiernej siatce węzłów w
Przykładowo, jeśli
Zastępując pochodne ilorazami różnicowymi [8]
(5.8) |
dostajemy równanie różnicowe
(5.9) |
W pozostałych węzłach siatki rozwiązanie przyjmuje wartość równą zero na mocy warunku brzegowego Dirichleta. Więcej na temat metod dyskretyzacji takich i podobnych równań różniczkowych można dowiedzieć się na wykładzie Numeryczne równania różniczkowe.
W dalszym ciągu, dla uproszczenia zapisu będziemy zakładać, że
które spełniają liniowy układ równań o postaci macierzowej
gdzie
(5.10) |
W kolejnych diagonalnych blokach
W przypadku tej macierzy, prosta strategia polegająca na eliminacji Gaussa (z wykorzystaniem dodatkowo faktu, że
Prowadząc analogicznie dyskretyzację na jednorodnej siatce trójwymiarowego zadania Poissona na kostce jednostkowej (
(5.11) |
Nawet dla średnich wartości
Rozważmy równanie
Dla uproszczenia przyjmiemy, że
gdzie
i węzły w
a więc takie, w którym macierz układu jest dalej rozrzedzona, ale — dla dostatecznie małych
Gdy siatka nie jest regularna1Zazwyczaj w zaawansowanych metodach dyskretyzacji równań różniczkowych stosuje się właśnie takie siatki, często — adaptacyjnie dopasowane do przebiegu rozwiązania., macierze dyskretyzacji także tracą regularną strukturę (w powyższych przykładach była ona odwzwierciedlona w tym, że niezerowe elementy macierzy układały się wzdłuż nielicznych diagonali). Macierze bez regularnej struktury są jeszcze trudniejsze dla metod bezpośrednich ze względu na rosnące kłopoty w uniknięciu wypełnienia czynników rozkładu macierzy.
Spójrzmy na macierz sztywności dla modelu silnika lotniczego, wygenerowaną swego czasu w zakładach Boeinga i pochodzącą z dyskretyzacji pewnego równania różniczkowego cząstkowego metodą elementu skończonego. Przykład pochodzi z kolekcji Tima Davisa. Jest to mała macierz, wymiaru 8032 (w kolekcji spotkasz równania z milionem i więcej niewiadomych).
Jej współczynnik wypełnienia (to znaczy, stosunek liczby niezerowych do wszystkich elementów macierzy) wynosi jedynie
We wspomnianej kolekcji znajdzuje się jeszcze więcej macierzy rozrzedzonych, pochodzących z najrozmaitszych realnych modeli, nie tylko opartych na równaniach różniczkowych. Choć sporo z nich — tak jak tutaj przedstawiona — będzie symetrycznych, nie jest to regułą; inne układy równań ze zgromadzonego zbioru nie muszą mieć żadnej z pożądanych przez numeryka cech: regularnej/pasmowej struktury, symetrii, ani dodatniej określoności. Jedną z nich przedstawiamy poniżej.
Współczesne układy elektroniczne mogą zawierać miliony części (tranzystorów, rezystorów, kondensatorów), a ich projektowania jest procesem bardzo złożonym i kosztownym. Co więcej, w miarę postępów opracowywania, coraz trudniej o dokonanie w nich poważniejszych zmian projektu. Z tego powodu konieczna jest komputerowa symulacja ich działania. W ogólności prowadzi to do ogromnego układu równań różniczkowo–algebraicznych, ale także bada się modele (prawa Kirchhoffa!), sprowadzające się do rozwiązania układu równań liniowych wielkiego rozmiaru (
Wizualizacja grafu macierzy Circuit5M o rozmiarze powyżej pięciu milionów
(Źródło: The University of Florida Sparse Matrix Collection)Modele wielostanowych systemów kolejkowych (np. routera obsługującego wiele komputerów) także prowadzą do gigantycznych układów równań z macierzami rozrzedzonymi o specyficznej strukturze. Jeśli taki układ może z danego stanu przejść tylko do niewielu innych, macierz reprezentująca łańcuch Markowa będzie rozrzedzona.
Jednym z zadań, w którym rozważa się bodaj największy ,,naturalnie” pojawiający się łańcuch Markowa jest zadanie wyznaczania tzw. PageRank — wektora wartościującego strony internetowe w wyszukiwarce Google (zob. artykuł ,,Miara ważności” K. Diksa w Delcie 8/2008): macierz ta jest oryginalnie bardzo rozrzedzona, całkowicie nieregularna i niesymetryczna, a jej rozmiar jest równy liczbie indeksowanych stron WWW (a więc mniej więcej rzędu
Wykaż, że zadanie
Niech macierz
Wykaż, że rozkład LU (bez wyboru elementu głównego) macierzy
Zbadaj koszt rozkładu LU macierzy
Mamy
Zanim przystąpimy do omawiania metod rozwiązywania układów równań liniowych z macierzami rozrzedzonymi, warto zapoznać się ze sposobami reprezentacji (formatami) macierzy rozrzedzonych. Ponieważ macierze rozrzedzone mają dużo zerowych elementów, ogólną zasadą jest zapamiętywanie tylko tych różnych od zera, w połączeniu z informacją o ich lokalizacji w macierzy. Spośród wielu struktur danych wygodnych dla przechowywania macierzy rozrzedzonych, opisanych m.in. w monografii [13], największą popularnością wśród numeryków cieszą się dwa: format współrzędnych oraz format spakowanych kolumn (lub wierszy)2Mniej popularny format diagonalny spotkamy m.in. w reprezentacji macierzy pasmowych w LAPACKu.. Liczbę niezerowych elementów macierzy
Jest to najprostszy sposób reprezentacji macierzy rozrzedzonych. Do zapamiętania macierzy I
,
J
— oba typu int
— oraz V
, typu double
,
wszystkie o długości
zob. rysunek 5.4.
Zdefiniujemy niezbędne struktury danych i następnie wypełnimy je tak, by reprezentować macierz
Poniższa struktura:
typedef struct { int I; int J; double V; } SpElem;będzie odpowiadała jednemu elementowi reprezentowanej macierzy. Cała macierz
SpElem
, na które przydzielamy miejsce:
SpElem *T; /* alokujemy miejsce na 3N elementów */ T = (SpElem *) calloc(3*N, sizeof(SpElem));
Zwróćmy uwagę na to, że do przydzielenia pamięci użyliśmy tym razem funkcji calloc()
, a nie malloc()
, jak zwykle. To dla większego bezpieczeństwa, bo calloc()
wypełnia zerami przydzieloną pamięć.
Teraz możemy wypełnić tablicę. Jak widzimy z dalszego ciągu kodu, zmienną T_NNZ
inkrementujemy od początkowej wartości T
zapisujemy kolejny element — w ten sposób będziemy dokładnie wiedzieli, ile w rzeczywistości (potencjalnie) niezerowych elementów wpisaliśmy do zaalokowanej tablicy.
int nnz = 0; /* bieżąca liczba wpisanych do tablicy elementów */ /* wypełniamy macierz */ for(i = 1; i <= N-1; i++) { /* element diagonalny */ T[nnz].I = i; T[nnz].J = i; T[nnz].V = 2; nnz++; /* element naddiagonalny w i-tym wierszu */ T[nnz].I = i; T[nnz].J = i+1; T[nnz].V = -1; nnz++; /* element poddiagonalny w i-tej kolumnie */ T[nnz].I = i+1; T[nnz].J = i; T[nnz].V = -1; nnz++; } /* ostatni element, (N,N) */ T[nnz].I = N; T[nnz].J = N; T[nnz].V = 2; nnz++;
Nie zawsze taka forma implementacji formatu współrzędnych będzie możliwa: często wybór implementacji będzie narzucony przez biblioteki, jakich zechcemy używać.
Format współrzędnych nie narzucał żadnego uporządkowania elementów macierzy — można było je umieszczać w dowolnej kolejności. Z drugiej strony, narzucenie sensownego porządku mogłoby wspomóc realizację wybranych istotnych operacji na macierzy, na przykład, aby wygodnie było realizować działanie (prawostronnego) mnożenia macierzy przez wektor, wygodnie byłoby przechowywać elementy macierzy wierszami. Tak właśnie jest zorganizowany format spakowanych wierszy (CSR, ang. Compressed Sparse Row). Analogicznie jest zdefiniowany format spakowanych kolumn (CSC, Compressed Sparse Column), którym zajmiemy się bliżej.
Podobnie jak w przypadku formatu współrzędnych, macierz w formacie CSC jest
przechowywana w postaci trzech wektorów. V
jest wektorem typu
double
o długości I
jest wektorem typu int
, także o długości V
. Natomiast zamiast tablicy J
, jak to było w
formacie współrzędnych, mamy krótszy wektor typu int
, P
, o
długości V
, od
której w V
rozpoczynają się elementy
W ten sposób, wartości kolejnych elementów V
na pozycjach o indeksach P[j-1]
…P[j]-1
. Konsekwentnie, zawsze P[0]=0
, a ostatni element, P[M]
, jest równy
Ostatecznie mamy więc zależność
Z tego rodzaju formatu reprezentacji macierzy rzadkich (z drobnymi modyfikacjami) korzystają np. pakiety Octave, MATLAB i UMFPACK.
Mając macierz w formacie CSC, zadaną tablicami I[NNZ]
, P[M+1]
, V[NNZ]
, możemy napisać zgrabną procedurę mnożenia jej przez wektor x[M]
. Wynik będziemy zapisywać w wektorze y[N]
:
for(i = 0; i < N; i++) y[i] = 0.0; /* zerujemy wektor wynikowy */ for(j = 0; j < M; j++) for(k = P[j]; k < P[j+1]; k++) y[I[k]] += V[k]*x[j];
Zapisz w pseudokodzie procedurę mnożenia macierzy rozrzedzonej przez wektor, gdy jest ona reprezentowana
w formacie współrzędnych,
w formacie CSR.
Teraz zajmiemy się prostymi i historycznie najstarszymi metodami iteracyjnego rozwiązywania układu równań
gdzie nieosobliwa macierz
Rozważane przez nas w tym rozdziale metody opierają się na rozkładzie macierzy
a jeśli
Ponieważ jest to zadanie znajdowania punktu stałego postaci
(5.12) |
Takie metody nazywamy stacjonarnymi metodami iteracyjnymi.
Wykaż, że każdą stacjonarną metodę iteracyjną można zapisać w wygodniejszej (dlaczego?) do praktycznej implementacji postaci
gdzie
Jest to wygodniejsza postać, bo wymaga operowania wektorem residuum
Metody stacjonarne można zapisać w ogólnej postaci
(5.13) |
gdzie macierz
Dla stacjonarnej metody iteracyjnej,
Jasne jest, że z twierdzenia Banacha o punkcie stałym wynika od razu następujący warunek zbieżności:
Jeśli
Przy naszych założeniach, mamy do czynienia z kontrakcją
Ponieważ, z założenia, stała Lipschitza dla
Jeśli
Aby stwierdzić zbieżność, wystarczy w poprzednim stwierdzeniu podstawić
Warunek konieczny i dostateczny zbieżności tej iteracji dla dowolnego wektora startowego
Niech
Na mocy (5.13) otrzymujemy równanie błędu
Konieczność warunku jest oczywista: jeśli metoda jest zbieżna dla każdego
a to oznacza, że
To, że warunek wymieniany w tezie twierdzenia jest także wystarczający dla zbieżności metody, wynika z faktu (zob. [11]), że dla dowolnego
Skoro więc z założenia
skąd
W powyższym dowodzie, jeśli
Zaletą stacjonarnych metod iteracyjnych jest ich prostota powodująca, że są one wyjątkow wdzięczne do szybkiego zaprogramowania. Zobaczymy to na przykładzie kilku klasycznych metod stacjonarnych: Jacobiego, Gaussa–Seidela i SOR. Wszystkie będą bazować na podziale macierzy
(5.14) |
gdzie
Biorąc w (5.12)
zwaną metodą Jacobiego.
Rozpisując ją po współrzędnych, dostajemy układ rozszczepionych równań (numer iteracji wyjątkowo zaznaczamy w postaci górnego indeksu):
co znaczy dokładnie tyle, że w
Widzimy więc, że metoda rzeczywiście jest banalna w implementacji, a dodatkowo jest w pełni równoległa: każdą współrzędną nowego przybliżenia możemy wyznaczyć niezależnie od pozostałych.
W metodzie Jacobiego warunek dostateczny zbieżności,
(5.15) |
Rzeczywiście, ponieważ wyraz
przy czym ostatnia nierówność wynika z warunku diagonalnej dominacji.
∎Niestety, w wielu ważnych wypadkach metoda Jacobiego, choć zbieżna, będzie zbieżna zbyt wolno, by nas zadowolić.
Macierz
pojawia się w bardzo wielu zastosowaniach (patrz przykład 5.1), również jako sztucznie wprowadzane podzadanie w niektórych algorytmach
numerycznych. Ta macierz jest macierzą taśmową, symetryczną i dodatnio
określoną, więc układ równań z tą macierzą można bez trudu rozwiązać metodami
bezpośrednimi, kosztem
Stosując do
Potrzebna będzie bardziej subtelna analiza. Okazuje się, że są znane wzory na wartości własne
(a więc,
Z drugiej strony, nie dajmy się zwieść optymizmowi matematyka (,,nie martw się, jest zbieżny…”): nietrudno sprawdzić, że
Dopiero w rozdziale 8.3 przekonamy się, jak — przez niebanalne wykorzystanie głębszych informacji o samym zadaniu — można wykorzystać metodę stacjonarną do konstrukcji metody iteracyjnej o optymalnym koszcie, którą będziemy mogli stosować także do macierzy dwu- i trójwymiarowego laplasjanu.
Wykaż, że wartości własne macierzy dwuwymiarowego laplasjanu
dla
dla
Niech
Stąd wynika teza. Analogicznie postępujemy dla macierzy trójwymiarowego laplasjanu.
Wykaż, że jeśli
(5.16) |
ma jednokrotne wartości własne, równe
(5.17) |
gdzie
Zwróć uwagę na to, że gdy
(5.18) |
Dla
gdzie
Znaczy to, że
Niech
Dobierając do
W poniższym eksperymencie komputerowym możemy naocznie przekonać się, jak stopień dominacji diagonali wpływa na szybkość zbieżności metody Jacobiego. Dla porównania zobaczymy, jak z naszą macierzą radzi sobie metoda bezpośrednia: oparta na rozkładzie LU macierzy
Przekonaj się, czy stopień diagonalnej dominacji (wartość parametru p w skrypcie) ma istotny wpływ na szybkość zbieżności.
Domyślnie testy prowadzimy dla macierzy rozmiaru 2500. Sprawdź, jak zmieni się czas wykonania skryptu, gdy
Przekonaj się, że gdy rozmiar macierzy jest niewielki, na przykład
Uzupełnij powyższy skrypt o wyznaczenie teoretycznej wartości współczynnika redukcji błędu w normie
Sprawdź, że symetria
Zdarzają się macierze — niestety, nie są to sztucznie generowane, akademickie przypadki — które są patologicznie trudne dla stacjonarnej metody iteracyjnej, a bardzo łatwe dla metody bezpośredniej. Jedną taką macierz już znamy: jest to macierz jednowymiarowego laplasjanu
W naszym teście, dla zadania z macierzą
Tym razem zmiana
Wyjaśnij przyczynę szybkiej zbieżności metody dla dużych
Domyślnie eksperymenty prowadzimy dla macierzy rozmiaru 25. Sprawdź, jak zmieni się czas wykonania skryptu, gdy
Jeśli zależałoby nam na obliczeniu dokładnego rozwiązania układu, powinniśmy znacząco zmniejszyć warunek stopu metody, tol, na przykład do poziomu
Rozważmy macierz
Wykaż, że
metoda Jacobiego dla tej macierzy jest zbieżna, wtedy i tylko wtedy, gdy
Czy rezultat o zbieżności metody Jacobiego można uogólnić na przypadek, gdy
Heurystyka tej metody
opiera się na zmodyfikowaniu metody Jacobiego tak, by w każdym momencie iteracji korzystać z najbardziej ,,aktualnych” współrzędnych przybliżenia rozwiązania
nietrudno zauważyć, że w części sumy, dla
W języku rozkładu macierzy
Jeśli macierz
Inny wariant tej metody dostalibyśmy, biorąc za
Obie metody, Jacobiego i (zwłaszcza) Gaussa–Seidela stosuje się także czasem w prostych algorytmach rozwiązywania układów równań nieliniowych: ich zaletą jest to, że głównym składnikiem iteracji jest rozwiązywanie skalarnego równania nieliniowego na każdym kroku metody.
Metoda Gaussa–Seidela jest w wielu przypadkach rzeczywiście szybciej zbieżna od metody Jacobiego, np. tak jest w przypadku macierzy jednowymiarowego laplasjanu, patrz wniosek 5.2. Wciąż jednak, dodajmy, dla tego zadania jej zbieżność jest zbyt wolna, by ją stosować jako samodzielną metodę.
Kontynuując przykład 5.8, porównamy szybkość zbieżności metody Gaussa–Seidela i Jacobiego na tym samym zadaniu.
Porównaj szybkość zbieżności metod Jacobiego i Gaussa–Seidela na macierzy
Możesz przeprowadzić porównanie, prowadząc dobrze zaplanowane eksperymenty numeryczne. W MATLABie łatwo utworzysz macierz
e = ones(N,1); TN = spdiags([-e, 2*e, -e], [-1,0,1], N, N);Jeśli interesuje Cię wynik teoretyczny, czytaj dalej.
Zbieżność metody Gaussa–Seidela można przyspieszyć, wprowadzając parametr relaksacji
Gdyby
Jeśli
Wystarczy zbadać promień spektralny macierzy iteracji metody SOR, która jest równa
Ze względu na to, że wyznacznik macierzy jest równy produktowi jej wartości własnych, dochodzimy do wniosku, że
Jako ciekawostkę odnotujmy poniższe
Jeśli
Dowód tego twierdzenia można znaleźć na przykład w [15, rozdział 8.3].
Dla klasy macierzy obejmującej niektóre spotykane w praktycznych zastosowaniach, można wskazać brzemienny w konsekwencje związek promienia spektralnego macierzy iteracji metody SOR i metody Jacobiego.
Rzeczywistą macierz kwadratową
gdzie
Zauważmy, że
Szczególnym przypadkiem macierzy zgodnie uporządkowanych są macierze postaci
(5.19) |
w których
Rzeczywiście, dla macierzy postaci (5.19) mamy
gdzie
i w konsekwencji
Zatem macierz
Wykaż, że jeśli
Rzeczywiście, w przypadku macierzy trójdiagonalnej
Niech
to
Macierz iteracji metody Jacobiego to po prostu
(ostatnia równość na mocy założenia). Stąd oczywiście wynika część pierwsza tezy.
Macierz iteracji metody SOR ma postać
Niech teraz
Ponieważ
Zatem
W konsekwencji, jeśli tylko
Jeśli
Rzeczywiście, na mocy twierdzenia Vargi, każdej niezerowej wartości własnej macierzy SOR odpowiada wartość własna macierzy iteracji Jacobiego
Dla metody Gaussa–Seidela,
Korzystając z twierdzenia Vargi można udowodnić
Niech macierz
Promień spektralny macierzy iteracji SOR z tym parametrem wynosi wtedy
Dowód powyższego twierdzenia można znaleźć na przykład w [15, rozdział 8.3].
Jakkolwiek piękne teoretycznie, nawet twierdzenia Younga i Vargi są dość bezlitosne dla metody SOR w wielu praktycznych zastosowaniach.
Dla macierzy jednowymiarowego laplasjanu rozmiaru
Kontynuując przykład 5.9, porównamy szybkość zbieżności metody SOR, Gaussa–Seidela (czyli SOR z parametrem
Zwróć uwagę na dramatyczną przewagę SOR z optymalnym parametrem nad metodą Gaussa–Seidela. Zbadaj, jak zmienią się wyniki, gdy wyraźnie zwiększysz
Gdy macierz iteracji
jest daleka od normalnej, numeryczna realizacja iteracji w arytmetyce zmiennoprzecinkowej ograniczonej precyzji może napotkać na problemy: w początkowych iteracjach residuum może znacząco rosnąć, co w efekcie może doprowadzić do praktycznej utraty zbieżności.
Zbadaj to na przykładzie–zabawce (por. [2, 10.2.3]),
gdy
Dla
lam = 0.9995; B = [lam 1; 0 lam]; resid=[]; x = [1;1]; for i = 1:100000, x = B*x; resid(i) = norm(x); end; semilogy(resid);
Metoda Richardsona z parametrem
Niech macierz
Sprawdź, że jest to stacjonarna metoda iteracyjna oparta na rozszczepieniu
Wykaż, że jeśli
Wykaż, że jeśli
promień spektralny macierzy iteracji
Niech
Wykaż, że wtedy metoda Richardsona jest zbieżna w normie euklidesowej dla
Niech
Jeśli
to iteracja
jest zbieżna, a dokładniej, macierz iteracji,
Jeśli dla pewnych
to wszystkie wartości własne
Pewnym remedium na powolną zbieżność metod stacjonarnych jest stosowanie metod blokowych, w których iterację konstruuje się tak jak dotychczas, ale zamiast na elementach, działa się na całych blokach macierzy (naturalnie, jeśli trzeba, musimy założyć ich odwracalność). Dla poprawienia zbieżności często stosuje się wariant z zakładką, zob. rysunek 5.6. W praktyce takie metody mogą być wyraźnie skuteczniejsze od dotychczas rozważanych: rzeczywiście, w skrajnym przypadku, pojedynczego ,,bloku” — rozmiaru
Ciekawym i nietrywialnym uogólnieniem metod z zakładką jest addytywna metoda Schwarza: jeden z przedstawicieli klasy tzw. metod dekompozycji obszaru, będących bardzo efektywnymi i naturalnie równoległymi operatorami ściskającymi (mówimy o nich w rozdziale 7) dla dyskretyzacji równań różniczkowych cząstkowych, [14].
Dotychczas omówione metody opierają się na czysto formalnym, mechanicznym, podziale macierzy, bezpośrednio związanym z jej strukturą. Tymczasem można zdefiniować metody iteracyjne 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,
,,Idealna poprawka”
bo wtedy dostalibyśmy
Aby określić przybliżone rozwiązanie równania poprawki, najpierw przeformułujemy je nieco. Niech dwie macierze:
To daje nam pomysł na definicję przybliżonej poprawki idealnej: niech
taki, że
(5.20) |
Jest to właśnie metoda projekcji.
Ponieważ macierz zredukowana
Z drugiej strony,
Jeśli
Jeśli
Jak możemy się domyślić, metody projekcji są metodami minimalizacji, co potwierdza poniższy dwuczęściowy lemat:
Niech
Dowód zostawiamy jako ćwiczenie.
Udowodnij lemat 5.1.
Jednym z bardziej prominentnych przykładów metody projekcji jest metoda najszybszego spadku, działająca w przypadku, gdy macierz
i w konsekwencji
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
W metodzie najszybszego spadku,
gdzie
Łatwo wykazać (por. [13, twierdzenie 5.2]), że jeśli
Teza wynika z lematu, którego elegancki dowód, pochodzący od Braessa, można znaleźć w [2]:
Niech
Wykaż, że w metodzie najszybszego spadku zachodzi
Ponieważ
zatem
z definicji
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
Choć
Wyjaśnij, dlaczego w powyższym przykładzie, dla małych wartości
Bo macierz
Dla macierzy jednowymiarowego laplasjanu, mamy
zatem dla
Gdy o macierzy
i w konsekwencji
Załóżmy, że macierz
Przeprowadź dowód twierdzenia o zbieżności metody najmniejszego residuum.
Zob. dowód twierdzenia 5.3 w [13].
Przypuśćmy, że umiemy tanio rozwiązywać układy równań z (nieosobliwą) macierzą
gdzie
Wskaż warunek konieczny i dostateczny na to, by macierz
Podaj możliwie tani algorytm rozwiązywania układu równań z macierzą
Przypuśćmy, że umiemy tanio rozwiązywać układy równań z (nieosobliwą) macierzą
gdzie
Wskaż warunek konieczny i dostateczny na to, by macierz
Podaj możliwie tani algorytm rozwiązywania układu równań z macierzą
Zauważ, że
Patrz także stwierdzenie 11.1.
Czy metodę iteracyjną warto stosować do rozwiązywania układu
Tutaj, jak wynika z naszych dotychczasowych rozważań, odpowiedź jest zniuansowana. Jedno mnożenie wektora przez
Treść automatycznie generowana z plików źródłowych LaTeXa za pomocą oprogramowania wykorzystującego LaTeXML.
strona główna | webmaster | o portalu | pomoc
© Wydział Matematyki, Informatyki i Mechaniki UW, 2009-2010. Niniejsze materiały są udostępnione bezpłatnie na licencji Creative Commons Uznanie autorstwa-Użycie niekomercyjne-Bez utworów zależnych 3.0 Polska.
Projekt współfinansowany przez Unię Europejską w ramach Europejskiego Funduszu Społecznego.
Projekt współfinansowany przez Ministerstwo Nauki i Szkolnictwa Wyższego i przez Uniwersytet Warszawski.