


Czynnik rozkładu Cholesky'ego
wykonanego standardowym algorytmem. Czas rozkładu: 0.892013

Macierz rozrzedzona (Octave):
<realnowiki><realnowiki><realnowiki><realnowiki>octave:10> I = [1, 1, 1, 2, 3, 1, 4]; octave:11> J = [1, 3, 2, 2, 3, 4, 4]; octave:12> V = [1, 2, 3, 4, 5, 6, 7]; octave:13> N = 4; octave:14> A = sparse(I,J,V,N,N) A = Compressed Column Sparse (rows = 4, cols = 4, nnz = 7) (1, 1) -> 1 (1, 2) -> 3 (2, 2) -> 4 (1, 3) -> 2 (3, 3) -> 5 (1, 4) -> 6 (4, 4) -> 7 octave:15> spy(A); </realnowiki></realnowiki></realnowiki></realnowiki>
(http://osilek.mimuw.edu.pl/index.php?title=MN08)
Macierze taśmowe
Macierz
taka, że dla
,
, nazywamy macierzą taśmową z rozstępem
, o szerokości pasma
.





Łatwo sprawdzić, że algorytm eliminacji Gaussa (bez wyboru elementu głównego) nie spowoduje dodatkowego wypełnienia w takiej macierzy (a więc da się wykonać w miejscu). W przypadku konieczności wyboru elementu głównego, pesymistyczne oszacowanie rozstępu macierzy rozkładu LU jest równe
--- tak więc, dla niezbyt dużych
wciąż wynikowa macierz jest taśmowa.


W szczególności, gdy macierz jest taśmowa z pasmem o rozstępie
i jednocześnie diagonalnie dominująca, wtedy rozkład LU takiej macierzy da się wykonać w miejscu kosztem
, czyli liniowym względem
.



W LAPACKu zaimplementowano szybki solver równań z macierzami taśmowymi,
DGBSV
, ale wymagający specjalnego sposobu przechowywania macierzy, wykorzystującego format diagonalny.
Stacjonarne metody iteracyjne
Gdy macierz jest rozrzedzona, mnożenie takiej macierzy przez wektor jest bardzo tanie (koszt jest proporcjonalny do liczby niezerowych elementów macierzy). Dlatego, jeśli możemy zadowolić sięrozwiązaniem przybliżonym układu, a w zamian osiągnąć je tanim kosztem, warto rozważyć metody iteracyjne.
Najprostsze metody iteracyjne (najprostsze w analizie i implementacji, ale --- jak można się domyślić --- w praktyce najmniej efektywne) polegają na rozkładzie macierzy na część "łatwo odwracalną",
, i "resztę",
. Dokładniej, jeśli
jest nieosobliwa, to równanie
można zapisać jako zadanie punktu stałego





gdzie
. Inaczej:


i zastosować doń metodę iteracji prostej Banacha:

Takie metody nazywamy stacjonarnymi metodami iteracyjnymi. Aby przeanalizować zbieżność takiej metody, warto rozpatrzyć przypadek ogólniejszy

dla pewnej macierzy
oraz wektora
. (Dla stacjonarnej metody iteracyjnej,
oraz
.)




W tym przypadku

a stąd i z nierówności
, mamy


Warunkiem dostatecznym zbieżności iteracji prostych jest więc
. Okazuje się, że warunkiem koniecznym i dostatecznym zbieżności tej iteracji dla dowolnego wektora startowego
jest



Tak więc, metody oparte na iteracji prostej będą zbieżne liniowo z ilorazem
.

Zaletą stacjonarnych metod iteracyjnych jest również ich prostota, przez co są one łatwe do zaprogramowania, co łatwo zobaczyć na przykładach metod: Jacobiego i Gaussa--Seidela, które teraz omówimy.
Brak komentarzy:
Prześlij komentarz