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.