Rozwiązywanie układów równań liniowych Marcin Orchel 1 Wstęp Jeśli znamy macierz odwrotną A 1, to możęmy znaleźć rozwiązanie układu Ax = b w wyniku mnożenia x = A 1 b (1) 1.1 Metoda eliminacji Gaussa Pierwszy etap eliminacji zmiennych: sprowadzenie do postaci trójkątnej górnej.czyli sprowadzamy układ do układu Rx = c (2) gdzie R = r 11... r 1n.... 0 r nn (3) który ma to samo rozwiązanie. Podczas sprowadzania do postaci trójkątnej górnej zerujemy elementy kolumnami począwszy od pierwszej kolumny. Następnie rozwiązujemy równania z jedną zmienną. Jeśli jest zero na diagonali w odpowiednim miejscu, to możemy zamienić kolejność wierszy, tak aby nie dzielić przez zero. x i := c i n k=i+1 r ik x k r ii (4) dla i = n, n 1,..., 1. Będziemy rozważać macierz (A, b) postaci a 11... a 1n b 1 (A, b) =............ (5) a n1... a nn b n Pierwszy krok to doprowadzanie do postaci a 11 a 12... a 1n b 1 ( A, b ) 0 a = 22... a 2n b 2............... 0 a n2... a nn b n (6) Ten krok możemy opisać następująco: 1
określamy element a r1 0 i przechodzimy dalej; jeśli nie istnieje żadne takie r, to (A, b ) := (A, b), macierz A jest osobliwa. Koniec. Przestawiamy r-ty i pierwszy wiersz macierzy (A, b). Wynik jest macierzą (Ā, b) Odejmujemy od i-tego wiersza macierzy (Ā, b) dla i = 2, 3,..., n l i1 -krotność l ij := āi1 ā 11 (7) wiersza pierwszego. W wyniku otrzymujemy szukaną macierz (A, b ). Możemy zapisać także (Ā, b) = P 1 (A, b) (8) ( A, b ) = G 1 (Ā, b) = G 1 P 1 (A, b) (9) gdzie P 1 jest macierzą permutacji, a G 1 macierzą trójkątną dolną, gdzie macierz permutacji ma wszystkie zera, na przekątnej ma jedynki a p rr i p 00 są zerami, a p r0 i p 0r są jedynkami. Macierz G 1 ma elementy wszystkie zera, na przekątnej jedynki, a w pierwszej kolumnie elementy l i1. Zachodzi (R, c) = G n 1 P n 1 G n 2 P n 2... G 1 P 1 (A, b) (10) gdzie P j są macierzami permutacji, a G j są postaci G j = 1 0 1 l j+1,j. 0 l nj 0 1 (11) Przykład: 0x + 4y 6z = 2 (12) 3x 2y + 1z = 0 (13) 2x 1y 3z = 3 (14) Sprowadzenie do postaci trójkątnej górnej. Najpierw zamiana kolejności wierszy: 3x 2y + 1z = 0 (15) 2x 1y 3z = 3 (16) 0x + 4y 6z = 2 (17) Pierwsze równanie mnożymy przez 2/3 i odejmujemy od drugiego 3x 2y + 1z = 0 (18) 2
0x + 1/3y 11/3z = 3 (19) 0x + 4y 6z = 2 (20) Drugie równanie mnożymy przez 0/3 i odejmujemy od trzeciego, jednak nie musimy tego robić, ponieważ już mamy 0 w elemencie (3, 1). Dlatego już mamy zera w pierwszej kolumnie. Następnie zerujemy drugą kolumnę. Drugi wiersz mnożymy przez 12 i odejmujemy od wiersza trzeciego 3x 2y + 1z = 0 (21) 0x + 1/3y 11/3z = 3 (22) 0x + 0y + 38z = 38 (23) Powyższa postać jest już postacią górnotrójkątną. Drugi etap, postępowanie odwrotne: obliczenie wartości zmiennych. Z ostatniego równania mamy: z = 1 (24) Podstawiając do drugiego równania: Podstawiając z i y do równania pierwszego: 1/3y 11/3 = 3 (25) y = 2 (26) 3x 4 + 1 = 0 (27) x = 1 (28) Sprawdzenie: 1 równanie 2 równanie 3 równanie 3x 2y + 1z = 0 (29) 3 4 + 1 = 0 (30) 0 = 0 (31) 2x 1y 3z = 3 (32) 2 2 3 = 3 (33) 0 = 0 (34) 0x + 4y 6z = 2 (35) 8 6 = 2 (36) 0 = 0 (37) 3
Bez przestawiania wierszy i kolumn mamy LR = A (38) gdzie L jest macierzą dolnotrójkątną z elementami l ij na przekątnej jedynki, oraz R = G n 1... G 1 A (39) Możemy zauważyć, że macierz A w równanie Ax = b możemy przedstawić za pomocą iloczynu macierzy LU, gdzie macierz L jest macierzą dolnotrójkątną mnożników użytych podczas metody eliminacji Gaussa, a macierz U to współczynniki macierzy powstałej po pierwszym etapie metody eliminacji Gaussa 1 0 0 2/3 1 0 0 12 1 3 2 1 0 1/3 11/3 0 0 38 = 3 2 1 2 1 3 0 4 6 (40) 1.2 Metoda eliminacji Gaussa z wyborem elementu podstawowego Element a r1 = ā 11 nazywamy elementem podstawowym, a określenie tego elementu wyborem elementu podstawowego. Dokonujemy wyboru a r1 = max i a i1 (41) Jest zwany wyborem częściowym lub wyborem w kolumnie. Kolejność wierszy i kolumn zmieniamy na każdym etapie sprowadzania do macierzy trójkątnej, w ten sposób, że wstawiamy na miejsce aktualnie rozpatrywanego wiersza, wiersz z maksymalnym elementem, który znajdzie się na przekątnej macierzy M. Powoduje to dzielenie przez duży element, a zatem mnożenie przez małą liczbę, co jest korzystniejsze z punktu widzenia dokładności obliczeń. Pełny wybór elementu podstawowego: zmiana kolejności kolumn i wierszy. Częściowy wybór elementu podstawowego: zmiana kolejności tylko wierszy. Dla wyboru pełnego elementu podstawowego dwa pierwsze kroki są zastąpione: określamy r i s tak, że a rs = max a ij (42) i,j i przechodzimy do następnego punktu gdy a rs 0. W przeciwnym razie koniec (A, b ) := (A, b), A jest macierzą osobliwą. Przestawiamy wiersze r-ty i pierwszy jak również kolumny s-tą i pierwszą macierzy (A, b). W wyniku mamy macierz (Ā, b). Przykład częściowego wyboru elementu podstawowego. W drugim kroku poprzednio rozpatrywanego przykładu mamy: 3x 2y + 1z = 0 (43) 4
0x + 1/3y 11/3z = 3 (44) 0x + 4y 6z = 2 (45) W tym momencie zamieniamy miejscami 2 i 3 wiersz ponieważ 4 > 1/3: 3x 2y + 1z = 0 (46) 0x + 4y 6z = 2 (47) 0x + 1/3y 11/3z = 3 (48) a następnie drugi wiersz dzielimy przez 12 i odejmujemy od trzeciego: 3x 2y + 1z = 0 (49) 0x + 4y 6z = 2 (50) 0x + 0y 19/6 = 19/6 (51) W trzecim wierszu otrzymaliśmy mniejsze wartości niż w oryginalnym rozwiązaniu. 1.3 Rozwiązywanie układów równań metodą rozkładu LU Gdy mamy rozkład macierzy współczynników na LU LUx = b (52) znajdujemy najpierw z z równania A następnie znajdujemy x z równania Lz = b (53) Ux = z (54) Gdy na diagonali macierzy L są jedynki, jest to rozkład Doolittle a. Przykład: W poprzednim przykładzie był podany sposób na znalezienie takiego rozkłady LU za pomocą metody eliminacji Gaussa. Dla wcześniejszego przykładu po znalezieniu LU można rozwiązać odpowiednie równania jak wyżej. Przykład: 2x 1y + 0z = 0 (55) 6x 2y + 1z = 1 (56) 4x + 3y 1z = 3 (57) Rozkład na dwie macierze trójkątne metodą Gaussa, pierwsza dolna, a druga górna, dolna macierz będzie miała jedynki na diagonali. Z definicji macierzy jednostkowej otrzymujemy 1 0 0 2 1 0 2 1 0 0 1 0 6 2 1 = 6 2 1 (58) 0 0 1 4 3 1 4 3 1 5
Zerujemy drugą macierz w dolnych elementach. Pierwszy wiersz drugiej macierzy mnożymy przez 3. Odejmujemy ten wiersz od drugiego wiersza. Natomiast w pierwszej macierzy wiersz mnożymy przez 3 począwszy od pierwszego elementu i dodajemy do drugiego wiersza, zapisując wynik w drugim wierszu: 1 0 0 3 1 0 0 0 1 2 1 0 0 5 1 4 3 1 = 2 1 0 6 2 1 4 3 1 Pierwszy wiersz mnożymy razy 2 i odejmujemy od 3 wiersza w drugiej macierzy. W pierwszej macierzy pierwszy wiersz mnożymy razy 2 począwszy od pierwszego elementu i dodajemy do 3 wiersza. 1 0 0 3 1 0 2 0 1 2 1 0 0 5 1 0 5 1 = 2 1 0 6 2 1 4 3 1 Drugi wiersz mnożymy przez 1, i odejmujemy od 3 wiersza. A w pierwszej macierzy drugi wiersz mnożymy przez 1 i dodajemy do 3 wiersza elementy począwszy od elementu drugiego (ten sam w kolejności co dodawany wiersz). 1 0 0 2 1 0 2 1 0 3 1 0 0 5 1 = 6 2 1 2 1 1 0 0 0 4 3 1 Inaczej możemy powiedzieć, że do lewej macierzy zawsze zapisujemy współczynnik użyty do eliminacji w miejsce gdzie chcieliśmy aby pojawiło się zero. Gdy już mamy rozkład kolejnym etapem jest rozwiązanie równań: Lz = b (59) 1z 1 + 0z 2 + 0z 3 = 0 (60) 3z 1 + 1z 2 + 0z 3 = 1 (61) 2z 1 z 2 + z 3 = 3 (62) Następnie rozwiązujemy z 1 = 0 (63) z 2 = 1 (64) z 3 = 2 (65) Ux = z (66) 2x 1 1x 2 + 0x 3 = 0 (67) 6
Układ wyjściowy jest układem sprzecznym. Sprawdzenie sprzeczność. Rozwiązać podaną metodą układ równań Rozwiązaniem jest x 1 = 10, x 2 = 13, x 3 = 1. 0x 1 5x 2 + 1x 3 = 1 (68) 0 = 2 (69) 6x 4x + z = 1 (70) 4x + 6x z = 3 (71) z = 10x 1 (72) z = 10x + 3 (73) 10x 1 = 10x + 3 (74) 1 = 3 (75) x 1 + x 2 x 3 = 2 (76) 5x 1 + x 2 67x 3 = 4 (77) 2x 1 + 21x 3 = 1 (78) 1.4 Rozwiązywanie układów równań metodą iteracji prostej Zakładamy, że wszystkie elementy przekątnej głównej macierzy A są różne od zera, a ii 0. Mnożymy i-te równanie układu równań przez 1/a ii i zapisujemy jako x 1 =... (79) I otrzymujemy układ równań postaci... (80) x k =... (81) X = C + DX (82) gdzie macierz D ma zera na diagonali. Zamieniamy ten układ na układ x (n+1) = c + Dx (n) (83) gdzie x (0) jest dowolne. Za przybliżenie można przyjąć wektor c. Warunek zbieżności: norma kanoniczna z macierzy D jest mniejsza od 1, co sprowadza się do: dla każdego i a ii > k j=1 j i a ij (84) 7
a ii > Rozwiązać metodą iteracji prostej układ równań k j=1 j i a ij (85) 4x 1 x 2 = 2 (86) Pierwsze przybliżenie Drugie przybliżenie x 1 + 4x 2 x 3 = 6 (87) x 2 + 4x 3 = 2 (88) x (1) = (7/8, 7/4, 7/8) (89) x (2) = (15/16, 31/16, 15/16) (90) 2 Zadania 2.1 Zadania na 3.0 Rozwiązać metodą eliminacji Gaussa układ równań: x 1 + x 2 + x 3 + x 4 = 10 (91) x 1 + 2x 2 x 4 = 1 (92) x 1 x 2 x 3 + x 4 = 0 (93) 2x 2 + x 3 + x 4 = 0 (94) Rozwiązać metodą eliminacji Gaussa z pełnym wyborem elementu podstawowego powyższy układ równań. 2.2 Zadania na 4.0 Rozwiązać za pomocą rozkładu LU układy równań, dla grup 1 i 2 x 1 + 2x 2 2x 3 = 1 (95) oraz dla grup 3 i 4 2x 1 + 5x 2 x 3 = 5 (96) 2x 1 + x 3 = 2 (97) x 1 x 3 = 5 (98) x 1 + 3x 2 + x 3 = 4 (99) x 1 + x 2 + 3x 3 = 6 (100) 8
2.3 Zadania na 5.0 Rozwiązać metodą iteracji prostej układ równań dla pierwszych 3 przybliżeń 5x 1 2x 2 + x 3 = 5 (101) x 1 + 10x 2 3x 3 = 10 (102) 2x 1 + 3x 2 + 6x 3 = 12 (103) 9