Zbieżność wszystkich dotychczas przez nas poznanych metod iteracyjnych projekcji i Kryłowa zależy od własności spektralnych macierzy rozwiązywanego układu. Pojawiające się w zastosowaniach macierze często mają niestety niekorzystne własności spektralne (np. bardzo duży wskaźnik uwarunkowania), przez co metody iteracyjne zbiegają na nich bardzo wolno.
Przykładowo, dla wielokrotnie tu przywoływanej macierzy -wymiarowego laplasjanu dyskretyzowanego na siatce o węzłach, jej współczynnik uwarunkowania rośnie tak szybko z rozmiarem macierzy (jak ), że czyni bezsensownym iteracyjne rozwiązywanie takich układów gdy jest bardzo duże. . Zgodnie z twierdzeniem o zbieżności CG, musielibyśmy wykonać rzędu iteracji, by dostatecznie zredukować błąd. Jasne jest, że jeśli , to koszt iteracji staje się zaporowy, a w międzyczasie dodatkowo mogą odezwać się problemy związane z realizacją iteracji w arytmetyce skończonej precyzji.
Dlatego bardzo korzystna może być wstępna transformacja układu
z macierzą o niekorzystnych własnościach, do równoważnego układu
(7.1) |
którego macierz ma znacznie korzystniejsze własności z punktu widzenia używanej metody iteracyjnej.
Okazuje się, że w m.in. przypadku macierzy laplasjanu i podobnych, można faktycznie wskazać taką macierz , że iteracja nie jest wiele droższa, ale za to znacznie szybciej zbieżna. Z drugiej strony, w innych ważnych z punktu widzenia zastosowań problemach, takiej dobrej macierzy wciąż nie umiemy wskazać.
W przypadku macierzy symetrycznych widzieliśmy, że kluczowe znaczenie dla zbieżności metody miało rozmieszczenie wartości własnych na osi liczbowej: jeśli wartości własne były bardzo rozrzucone po prostej, to uwarunkowanie było bardzo duże i w konsekwencji zbieżność powolna. Aby zbieżność była szybsza, kluczowe jest, by wartości własne były ciasno upakowane w kilku klastrach (najlepiej — w jednym).
Jeśli więc chcielibyśmy przekształcić macierz tak, by metoda iteracyjna dla zbiegała szybko, musimy w jakiś sposób ,,ścisnąć” spektrum macierzy . Taką operację nazywamy więc ściskaniem (ang. preconditioning — bo zmiana uwarunkowania), a macierz — macierzą ściskającą.
Aby całość miała sens, macierz ściskająca powinna być tak dobrana, by jednocześnie zachodziło kilka nieco przeciwstawnych warunków:
macierz powinna mieć znacznie korzystniejsze własności z punktu widzenia szybkości zbieżności (i ostatecznego kosztu) używanej metody iteracyjnej,
macierz powinna być łatwa w ,,konstrukcji”7W metodach operatorowych (matrix–free) nie jest nam potrzebna macierz , tylko sposób obliczania , więc to ta operacja w praktyce wymaga ,,konstrukcji”. Doskonałym przykładem byłoby , gdzie ; wtedy to obliczenie rozwiązania układu równań z macierzą , więc ,,konstrukcją” byłoby znalezienie rozkładu LU macierzy .,
macierz powinna być tania w mnożeniu przez wektor (głównym elementem każdej metody iteracyjnej jest mnożenie macierzy przez wektor: tutaj mamy ).
Kilka ekstremalnych propozycji na macierz ściskającą to (łatwa w konstrukcji i tania w mnożeniu, ale niestety nic nie polepsza…) oraz (rewelacyjnie poprawia szybkość zbieżności metody iteracyjnej, dając zbieżność w jednej iteracji, ale jest droga w mnożeniu i bardzo droga w konstrukcji). Ponieważ obie skrajności są — ze zrozumiałych względów — nie do zaakceptowania, widać więc, że należy poszukiwać czegoś pośredniego: czegoś, co niskim kosztem przybliża (w jakimś sensie) działanie macierzy odwrotnej.
Uogólnieniem ściskania lewostronego (7.1) jest ściskanie obustronne:
(7.2) | ||||
(7.3) |
(jeśli powyżej , to ściskanie jest oczywiście tylko prawostronne).
Jednym z powszechniej stosowanych (aczkolwiek nie zawsze dostatecznie skutecznych) sposobów ściskania są te oparte na zastosowaniu jednego kroku klasycznej metody iteracyjnej (lub jej wersji blokowej). Ponieważ mogą one być stosowane zarówno w wersji lewostronnej (jako ) lub prawostronnej (jako ), operator w przykładach poniżej, o ile nie zaznaczono inaczej, będzie mógł oznaczać zarówno jak i .
Ściskanie metodą Jacobiego możemy zastosować tylko wtedy, gdy dla wszystkich . Wtedy — przez analogię do metody iteracyjnej Jacobiego — wybieramy . Oprócz zasadniczej wady, jaką jest najczęściej kiepska skuteczność w redukcji uwarunkowania, ściskanie metodą Jacobiego ma poza tym wiele zalet:
generowanie jest praktycznie darmowe,
mnożenie przez jest bardzo tanie ( flopów), a przy tym pięknie się zrównolegla.
Inne sposoby ściśnięcia macierzy obejmują np. techniki tzw. niepełnego rozkładu macierzy. Ich idea opiera się na obserwacji, że ,,idealną” macierzą ściskającą byłaby . Przypomnijmy, że w takim przypadku mnożenie najlepiej wykonać, gdy zawczasu wyznaczymy czynniki rozkładu (co może nas drogo kosztować) i wtedy (tu wykorzystamy fakt, że układy równań z macierzami i są ,,łatwiejsze” do rozwiązania, bo macierze są trójkątne). Oczywiście, taka ,,idealna” macierz ściskająca ma wadę, która w większości przypadków będzie ją całkowicie dyskwalifikować: mimo, że jest rozrzedzona, macierze i mogą — i zazwyczaj faktycznie są — gęste. Oznacza to, że samo wyznaczenie rozkładu LU macierzy będzie nas kosztować zabójcze flopów.
Inżynierski pomysł na usunięcie tej wady jest taki, by w algorytmie wyznaczania czynników rozkładu LU wyznaczać jedynie te elementy dolnego trójkąta oraz górnego trójkąta , dla których . Zatem struktura niezerowych elementów macierzy będzie powielać strukturę niezerowych elementów — a więc dostaniemy w efekcie macierze rzadkie!
Jeśli więc ogólnie algorytm rozkładu LU (w miejscu, bez wyboru elementu głównego) jest postaci:
for to |
for to |
end |
for to |
for to |
end |
end |
end |
to niepełny rozkład LU miałby (formalnie) postać:
for to |
for to |
if |
end |
end |
for to |
for to |
if |
end |
end |
end |
end |
Opisana powyżej technika nosi nazwę niepełnego rozkładu LU (ang. incomplete LU factorization) o zerowym wypełnieniu (ang. zero fill-in), co oznaczamy ILU(0). Warto zwrócić uwagę, że może zdarzyć się, że czynnik uzyskany niepełnym rozkładem macierzy nieosobliwej sam będzie macierzą osobliwą. Dla pewnych klas macierzy — np. dla tzw. M-macierzy [13] — wiadomo, że niepełny rozkład nie prowadzi do takich degeneracji.
Często rozkład ILU(0) produkuje czynniki LU, dla których jest tak bardzo odległe od , że nie dają one dostatecznie silnego ściśnięcia macierzy . Wtedy można zastosować któryś z wariantów niepełnego rozkładu
rozkład z progiem, ILUT (ang. treshold ILU), w którym zerujemy te elementy czynników rozkładu, które spełniają pewien warunek progowy — oględnie mówiąc, warunek ten dotyczy względnej wielkości danego elementu (,,pomijamy małe”);
rozkład według wzorca: w którym wprost wskazujemy, jakie elementy i mogą przyjąć niezerowe wartości;
rozkład według wypełnienia, ILU(): w którym dopuszczamy pewne dodatkowe wypełnienie czynników rozkładu.
Szczegółowe omówienie różnych technik niepełnego rozkładu macierzy, razem z ich analizą w niektórych praktycznie użytecznych przypadkach, znajdziemy w monografii Saada [13].
Najskuteczniejsze operatory ściskające dostajemy wykorzystując do maksimum całą specyfikę konkretnego rozwiązywanego zadania. Na przykład, dla macierzy pochodzących z dyskretyzacji niektórych równań różniczkowych cząstkowych opracowano kilka klas znakomitych sposobów ściskania takich, które gwarantują bardzo szybką zbieżność metod Kryłowa. Wśród nich znajdują się metody dekompozycji obszaru (por. rozdział 5.4, [14], [16], []) oraz metody wielosiatkowe. O tych ostatnich piszemy nieco więcej w rozdziale 8.3.
W wielu zastosowaniach, na przykład w wielokrotnie tu przywoływanych zadaniach dyskretyzacji eliptycznych równań różniczkowych cząstkowych, przedmiotem naszego zainteresowania jest nie tyle jeden układ równań, ale cała ich rodzina,
indeksowana pewnym parametrem . Rzeczywiście, w przypadku zadań takich jak równanie z macierzą dyskretnego laplasjanu (zob. przykłady 5.1 i 5.2), naszym parametrem byłby bok oczka siatki dyskretyzacji.
Powstaje więc naturalna potrzeba wskazania klasy macierzy ściskających, których użycie pozwalałoby uzyskać szybkość zbieżności metody iteracyjnej niezależną od . W przypadku, gdy macierze są symetryczne i dodatnio określone, macierzy ściskających warto szukać w tej samej klasie.
Rodzinę macierzy indeksowaną parametrem nazywamy spektralnie równoważną rodzinie macierzy , jeśli istnieją dwie stałe niezależne od takie, że
(7.4) |
Ważną własnością macierzy spektralnie równoważnych jest to, że na ich podstawie można skonstruować rodzinę macierzy ściskających, prowadzących do zadania o własnościach spektralnych niezależnych od , por. [6].
Jeśli jest rodziną macierzy spektralnie równoważnych macierzy , to wartości własne są ograniczone niezależnie od .
Pokażemy nieco więcej: jeśli zachodzi warunek spektralnej równoważności (7.4), to dla dowolnego
Ponieważ dla dowolnej macierzy , jej wartości własne są tożsame z wartościami macierzy , to w szczególności ma spektrum identyczne z macierzą . Ta ostatnia jest symetryczna i dodatnio określona, więc wszystkie jej wartości własne są rzeczywiste i dodatnie.
Podstawiając w (7.4) i dzieląc stronami przez dostajemy
Znaczy to, że wartości własne macierzy leżą w przedziale .
∎Wynika z twierdzenia Couranta–Fishera.
Jak wiemy z dowodu twierdzenia 7.1, . Ponieważ wartości własne macierzy odwrotnej są odwrotnościami wartości własnych macierzy danej, to w konsekwencji
Korzystając z faktu, że iloraz Rayleigh jest ograniczony z góry i z dołu przez ekstremalne wartości własne, dostajemy
Podstawiając otrzymujemy tezę.
Rozważmy eliptyczne równanie różniczkowe
(7.5) | ||||||
(7.6) |
gdzie jest rzeczywistą i symetryczną macierzą rozmiaru , o współczynnikach będących ciągłymi, ograniczonymi funkcjami na , spełniającą warunek (gwarantujący eliptyczność w/w równania różniczkowego)
Stąd między innymi wynika, że forma dwuliniowa określona na przestrzeni Sobolewa ,
jest –eliptyczna, to znaczy,
gdzie . Forma jest także ciągła,
Stałe zależą oczywiście od .
Nasze zadanie w postaci wariacyjnej: znaleźć takie, że
będziemy aproksymować metodą elementu skończonego w pewnej podprzestrzeni skończonego wymiaru (por. wykład z Numerycznych równań różniczkowych). Będziemy więc szukać takiego, że
Reprezentując8Oczywiście, zależy od , ale nie będziemy tego wyraźnie zaznaczać, by nie mnożyć indeksów. w bazie przestrzeni : mamy, że nasze zadanie dyskretne jest równoważne znalezieniu spełniającego układ równań
(7.7) |
gdzie . (Macierz nazywana jest macierzą sztywności.) Gdy , metody bezpośrednie mogą być mało efektywne wskutek problemów z wypełnieniem czynników rozkładu, należy więc układ (7.7) rozwiązywać iteracyjnie. Niestety, w przypadku, gdy bazę wybierzemy jako standardową bazę elementu skończonego, macierz jest bardzo źle uwarunkowana ze względu na : i dlatego konieczne jest solidne jej ściśnięcie.
Niech będzie macierzą sztywności uzyskaną w przypadku, gdy , czyli — ,,zwykłą” macierzą dyskretnego laplasjanu.
Zauważmy, że przy zachowaniu wyżej wspomnianej odpowiedniości pomiędzy funkcją a jej reprezentacją w wybranej bazie zachodzi następujący związek pomiędzy macierzą sztywności, a formą dwuliniową:
i w konsekwencji także
Na mocy ciągłości i eliptyczności formy w normie , macierze i są spektralnie równoważne.
A więc, znając szybką metodę rozwiązywania zadania z macierzą — lub, ogólniej, dobrą macierz ściskającą dla — dysponujemy jednocześnie dobrym (czytaj: niezależnym od ) sposobem ściśnięcia macierzy .
Aby jednak trochę zbalansować nasz pogląd na tę sprawę warto zauważyć, że swój wkład w uwarunkowanie ma także stosunek . Jeśli jest on bardzo duży (a może tak być, np. w materiałach silnie anizotropowych), wtedy uwarunkowanie — choć już nie będzie zależało od — jednak wciąż będzie wielkie: nad tym, jak najlepiej ściskać takie macierze są obecnie prowadzone badania.
Naturalnym kandydatem na macierz ściskającą w metodzie CG (która jest określona dla macierzy symetrycznej i dodatnio określonej) jest inna macierz symetryczna i dodatnio określona, . Jak widzieliśmy w twierdzeniu 7.1 i ćwiczeniu 7.2, dobrym kandydatem na mogłaby być macierz spektralnie równoważna macierzy . Wydawać by się jednak mogło, że jednostronne (na przykład, lewostronne) ściskanie taką macierzą nie powiedzie się, bo otrzymana przez nas macierz, , w ogólnosci nie musi być dalej symetryczna — wbrew założeniom uczynionym w wyprowadzeniu metody CG.
Na szczęście, macierz jest symetryczna, ale w niestandardowym iloczynie skalarnym: . Aby uniknąć przeformułowania wyników uzyskanych we wcześniejszych rozdziałach, użyjemy pewnego triku: teoretycznie użyjemy zadania symetrycznie ściśniętego obustronnie macierzami :
(7.8) | ||||
(7.9) |
ale implementację doprowadzimy do takiego stanu, że będzie w niej występować tylko mnożenie wektora przez macierz — i to tylko jeden raz w każdej iteracji!
Rzeczywiście, ściśnięta macierz jest symetryczna i dodatnio określona, można więc do niej zastosować bezpośrednio algorytm CG, wyznaczający kolejne przybliżenia . Oznaczając , na -tej iteracji wyznaczymy:
,
Wprowadzając oznaczenia , gdzie , i przyjmując możemy zapisać powyższe operacje wyłącznie w terminach wartości ,,bezfalkowych”:
,
(wynika z pomnożenia odpowiedniej równości z falkami przez )
(wynika z pomnożenia odpowiedniej równości z falkami przez ).
Znaczy to, że cały algorytm PCG możemy w praktyce zaimplementować tak, jak algorytm CG z tą różnicą, że do wyznaczenia będziemy musieli obliczyć dodatkowy wektor . Tym samym w implementacji nie pojawi się nigdzie mnożenie przez — w każdej iteracji będzie potrzebne tylko jedno mnożenie przez !
Działanie PCG z dobrą macierzą ściskającą prześledzimy na przykładzie macierzy jednowymiarowego laplasjanu, o losowo zaburzonych elementach:
gdzie jest symetryczną, trójdiagonalną macierzą o losowo wybranych elementach z przedziału (przy czym jest małe), a zadano wzorem (5.5).
Sprawdź, czy szybkość zbieżności PCG zależy od i od . Zobacz, jak zmienią się rezultaty, gdy zaburzenie nie będzie zachowywać symetrii lub dodatniej określoności . A co stanie się, gdy nie będzie trójdiagonalna?
Wykaż, że w metodzie PCG .
Ponieważ , to mnożąc stronami przez mamy, że . Ponieważ
to
Ponieważ metoda GMRES nie wymaga żadnych specjalnych własności macierzy (z wyjątkiem nieosobliwości), po obustronnym ściśnięciu9Jednostronne ściśnięcie dostaniemy, biorąc jedną z macierzy równą identyczności. macierzy nieosobliwymi macierzami i :
wystarczy do macierzy zastosować standardowy algorytm GMRES i pamiętać, by wyznaczone rozwiązanie przybliżone przetransformować do rozwiązania oryginalnego układu:
Wszelkie mnożenia przez macierz ściśniętą będziemy oczywiście realizować zgodnie z nawiasami:
Warto pamiętać, GMRES będzie obliczał residua równe , zatem tylko gdy stosujemy prawostronne ściskanie, residua wyznaczone algorytmem GMRES będą identyczne z residuami układu wyjściowego (co, generalnie, samo w sobie niekoniecznie musi być wartością na której powinno nam zależeć).
Do tej pory zajmowaliśmy się samymi metodami przybliżonego rozwiązywania równań, zwracając uwagę na koszt jednej iteracji, sposób implementacji czy też szybkość zbieżności. Jednak każdą iterację musimy kiedyś w końcu przerwać; musimy więc zadać sobie pytanie: kiedy i na jakiej podstawie powinniśmy zakończyć działanie metody iteracyjnej?
Idealnym kryterium stopu metody iteracyjnej byłaby redukcja błędu poniżej zadanego poziomu, mierzonego w zadanej przez użytkownika normie. Kryterium błędu zatrzymania metody iteracyjnej może więc mieć jedną z trzech postaci:
Sęk w tym, że zazwyczaj nie możemy wyznaczyć z prostego powodu: nie znamy rozwiązania dokładnego ! Z drugiej strony, zawsze dysponujemy przecież inną, obliczalną wprost wartością: residuum .
Ponieważ odpowiada znalezieniu rozwiązania dokładnego, to kryterium stopu możemy oprzeć na redukcji residuum poniżej zadanego poziomu. Kryterium residualne zatrzymania metody iteracyjnej może więc mieć jedną z trzech postaci:
Podaj przykład takiej normy, w której możemy dokładnie wyznaczyć na podstawie .
Pamiętajmy, że zakładamy zawsze, że jest nieosobliwa. Ponieważ , to
Zatem standardowa norma euklidesowa residuum odpowiada normie energetycznej błędu liczonej w normie indukowanej przez macierz symetryczną i dodatnio określoną .
Jednak zależność między normą residuum a tą samą normą błędu może nie być bardzo wyrazista: po raz kolejny może tu dać znać o sobie złe uwarunkowanie macierzy.
Niech będzie rozwiązaniem układu i niech dla zadanego . Wtedy
gdzie .
Powyższe stwierdzenie należy interpretować tak, że jedynie w przypadku, gdy macierz jest dobrze uwarunkowana w danej normie, mała norma residuum jest dobrym indykatorem małej (tej samej) normy błędu. Warto wiedzieć, że w metodzie CG można niskim kosztem (, gdzie jest liczbą iteracji) wyznaczyć (coraz lepsze, wraz z postępem iteracji) dolne oszacowanie na spektralny współczynnik uwarunkowania .
W praktyce obliczeniowej stosuje się dwa dodatkowe kryteria stopu metody iteracyjnej
Rzeczywiście, musimy przecież określić moment, kiedy należałoby zakończyć obliczenia, jeśli do tej pory nie przyniosły sukcesu: zrobimy to więc po iteracjach. Ponadto, jeżeli poprawka jest niewielka, to metoda być może na dobre ugrzęzła w jakimś przybliżeniu i wtedy, jeśli nadal jesteśmy daleko od rozwiązania, należałoby spróbować czegoś innego. To kryterium należy stosować z dużym wyczuciem: być może stagnacja metody była tylko chwilowa i po kilku następnych iteracjach zbieżność przyspieszy?
Rozważmy stacjonarną metodę iteracyjną
przy czym . Wykaż, że jeśli
to
Ponieważ w metodzie stacjonarnej , to
Zatem , skąd teza.
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.