Poszukujemy wektora który spełnia

Dokładne:

wyznaczniki Cramera

Eliminacja Gaussa

Metoda Gaussa-Jordana

Metoda Doolittle'a (rozkład LU)

Metoda Choleskiego

Iteracyjne (przybliżone):

Metoda Jacobiego

Metoda Gaussa-Seidla

macierz to macierz diagonalna zawierająca na diagonali elementy

metoda jest dobrze zdefiniowana dla

jest zbieżna dla macierzy o dominujących wartościach diagonalnych

złożoność obliczeniowa , stosowana do dużych układów równań

ustalamy przybliżenie początkowe

kolejne przybliżenia uzyskujemy z wzoru

koniec obliczeń gdy

k = 0; do { for (i = 0; i < n; i++) x_prev[i] = x[i]; for (i = 0; i < n; i++) { x[i] = b[i]; for (j = 0; j < n; j++) { if (i!=j) x[i] -= x_prev[j] * A[i][j]; } x[i] /= A[i][i]; } k = k + 1; }while(dist(x, x_prev, n) > eps && k < max_iter);

Program demo: jacobi.c

Zauważmy, że w metodzie Jacobiego wyznaczając komponent możemy wykorzystać wyznaczone w tym samym kroku wcześniejsze komponenty

Zalety: szybsza zbieżność, do wykonania obliczeń nie trzeba przechowywać dwóch wektorów

ustalamy przybliżenie początkowe

kolejne przybliżenia uzyskujemy z wzoru

koniec obliczeń gdy

Napisz program, który porówna szybkość zbieżności metod iteracyjnych Jacobiego i Gaussa-Siedla przy rozwiązywaniu układu równań

Dokładne rozwiązanie .

Program, dla podanej przez użytkownika wartości , rozwiązuje układ równań za pomocą obu metod iteracyjnych w każdym przypadku starając od przybliżenia i wykonuje obliczenia aż do uzyskania wyniku o precyzji . Po skończeniu obliczeń program wypisuje dla każdej z metod informację o liczbie wykonanych iteracji.
Zakładamy, że nie będzie większe od 1000.

Ćw. 1