Iteracyjne metody rozwiązywania Ax = b – metoda Jacobiego

być może najprostszą iteracyjną metodą rozwiązywania ax = b jest metoda Jacobiego. Zauważ, że prostota tej metody jest zarówno dobra, jak i zła: dobra, ponieważ jest stosunkowo łatwa do zrozumienia, a tym samym jest dobrym pierwszym smakiem metod iteracyjnych; zła, ponieważ nie jest zwykle stosowana w praktyce (chociaż jej potencjalna przydatność została ponownie rozważona wraz z pojawieniem się obliczeń równoległych). Mimo to jest to dobry punkt wyjścia do nauki o bardziej użytecznych, ale bardziej skomplikowanych, iteracyjnych metodach.

biorąc pod uwagę bieżące przybliżenie

x(k) = (x1(k), x2(k), x3(k), …, xn(k))

dla X, strategia metody Jacobiego polega na użyciu pierwszego równania i bieżących wartości X2(k), x3(k), …, xn(k), aby znaleźć nową wartość x1(k+1), i podobnie, aby znaleźć nowa wartość Xi(K) przy użyciu i równania i starych wartości innych zmiennych. Oznacza to, że biorąc pod uwagę bieżące wartości x(k) = (x1(k), x2(k), …, xn(k)), znajdź nowe wartości, rozwiązując dla

x(k+1) = (x1(k+1), x2(k+1),…, xn (k+1))

na

system ten można również zapisać jako

dla jasności, indeks dolny i oznacza, że xi(k) jest i elementem wektora

x (k) = (x1(k), x2(k), …, xi(k), …, xn (k) ),

, A Indeks górny K odpowiada konkretnej iteracji (nie kth potędze xi ).

jeśli napiszemy D, L i U odpowiednio dla przekątnej, ścisłego trójkąta dolnego i ścisłego trójkąta górnego oraz części A,

wtedy metodę Jacobiego można zapisać w notacji macierzowo-wektorowej jako

tak, że

przykład 1

zastosujmy metodę Jacobiego do systemu

.

na każdym kroku, biorąc pod uwagę bieżące wartości x1(k), x2(k), x3(k), rozwiązujemy dla x1(k+1), x2(k+1) i x3(k+1) w

.

tak więc, jeśli nasze początkowe zgadywanie x(0) = (x1(0), x2(0), x3(0)) jest wektorem zerowym 0 = (0,0,0) – wspólne początkowe zgadywanie, chyba że mamy jakieś dodatkowe informacje, które prowadzą nas do wyboru innego — wtedy znajdujemy x(1) = (x1(1), x2(1), x3 (1) ) rozwiązując

więc x(1) = (x1(1), x2(1), x3(1)) = (3/4, 9/6, -6/7) ≈ (0.750, 1.500, -0.857). Wykonujemy iterację tego procesu, aby znaleźć sekwencję coraz lepszych przybliżeń x (0), x(1), x(2),…. Wyniki pokazujemy w poniższej tabeli, wszystkie wartości zaokrąglamy do 3 miejsc po przecinku.

interesuje nas błąd e przy każdej iteracji między prawdziwym rozwiązaniem x a przybliżeniem x (k): e(k) = x − x(K). Oczywiście, zwykle nie znamy prawdziwego rozwiązania x. jednak, aby lepiej zrozumieć zachowanie metody iteracyjnej, jest pouczające, aby użyć metody do rozwiązania systemu AX = B, dla którego znamy prawdziwe rozwiązanie i przeanalizować, jak szybko przybliżenia zbiegają się do prawdziwego rozwiązania. Dla tego przykładu prawdziwym rozwiązaniem jest x = (1, 2, -1).

norma wektora|| x / / mówi nam, jak duży jest wektor jako całość (w przeciwieństwie do tego, jak duży jest każdy element wektora). Normą wektorową najczęściej stosowaną w algebrze liniowej jest norma l2:

na przykład, jeśli x = (1, 2, -1), to

w tym module zawsze będziemy używać normy l2 (w tym dla norm macierzowych w kolejnych tutorialach), tak że | | / / zawsze oznacza|| ||2.

dla naszych celów obserwujemy, że ||x|| będzie mały dokładnie wtedy, gdy każdy z elementów X1, x2,…, xn w x = (x1, x2,…, xn ) jest mały. W poniższej tabeli norma błędu staje się coraz mniejsza, gdy błąd w każdym z trzech elementów X1, x2, x3 staje się mniejszy, lub innymi słowy, gdy przybliżenia stają się coraz lepsze.

k x(k) x(k) − x(K-1) e(k) = x − x(k)
0 -0.000 -0.000 -0.000 -0.000 -0.000 -1.000 2.449
1 0.750 1.500 -0.857 -0.000 -0.000 -0.857 0.250 0.500 -0.143 0.557
2 0.911 1.893 -0.964 0.161 0.393 -0.107 0.089 0.107 -0.036 0.144
3 0.982 1.964 -0.997 0.071 0.071 -0.033 0.018 0.036 -0.003 0.040
4 0.992 1.994 -0.997 0.010 0.029 0.000 0.008 0.006 -0.003 0.011
5 0.999 1.997 -1.000 0.007 0.003 -0.003 0.001 0.003 0.000 0.003
6 0.999 2.000 -1.000 0.000 0.003 0.001 0.000 0.001 0.000 0.001
7 1.000 2.000 -1.000 0.001 0.000 0.000 0.000 0.000 0.000 0.000
8 1.000 2.000 -1.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000

You might also like

Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany.