Rozwiązywanie układów równań liniowych metody dokładne Materiały pomocnicze do ćwiczeń z metod numerycznych Piotr Modliński Wydział Geodezji i Kartografii PW 13 stycznia 2012 P. Modliński, GiK PW Rozw. ukł. równ. lin. metody dokładne 1/27
Agenda Problem Problem P. Modliński, GiK PW Rozw. ukł. równ. lin. metody dokładne 2/27
Problem P. Modliński, GiK PW Rozw. ukł. równ. lin. metody dokładne 3/27
Problem w postaci macierzowej Rozwiązać następujący układ równań liniowych: a 1,1 x 1 + a 1,2 x 2 + + a 1,n 1 x n 1 + a 1,n x n = b 1 a 2,1 x 1 + a 2,2 x 2 + + a 2,n 1 x n 1 + a 2,n x n = b 2 = a n 1,1 x 1 + a n 1,2 x 2 + + a n 1,n 1 x n 1 + a n 1,n x n = b n 1 a n,1 x 1 + a n,2 x 2 + + a n,n 1 x n 1 + a n,n x n = b n P. Modliński, GiK PW Rozw. ukł. równ. lin. metody dokładne 4/27
w postaci macierzowej Problem Układ równań z poprzedniego slajdu można zapisać w postaci macierzowej Ax = b: a 1,1 a 1,2 a 1,n 1 a 1,n a 2,1 a 2,2 a 2,n 1 a 2,n a n 1,1 a n 1,2 a n 1,n 1 a n 1,n a n,1 a n,2 a n,n 1 a n,n x 1 x 2 x n 1 x n = b 1 b 2 b n 1 b n P. Modliński, GiK PW Rozw. ukł. równ. lin. metody dokładne 5/27
Macierz trójkątna górna Macierz trójkątna dolna P. Modliński, GiK PW Rozw. ukł. równ. lin. metody dokładne 6/27
Macierz trójkątna górna Macierz trójkątna dolna Układ równań można w znacznie prostszy sposób rozwiązać kiedy macierz A ma postać macierzy trójkątnej. Wyróżnić można dwa analogiczne przypadki: macierz trójkątna górna macierz trójkątna dolna P. Modliński, GiK PW Rozw. ukł. równ. lin. metody dokładne 7/27
Macierz trójkątna górna Macierz trójkątna dolna Macierz trójkątna górna u 1,1 u 1,2 u 1,n 1 u 1,n 0 u 2,2 u 2,n 1 u 2,n 0 0 u n 1,n 1 u n 1,n 0 0 0 u n,n x 1 x 2 x n 1 x n = b 1 b 2 b n 1 b n Uwaga! W poniższych wzorach kolejność wyznaczania elementów ma znaczenie! Należy trzymać się podanej kolejności! x n = bn u n,n i=n 1,...,1 x i = b i P n j=i+1 u i,jx j u i,i P. Modliński, GiK PW Rozw. ukł. równ. lin. metody dokładne 8/27
Macierz trójkątna dolna Macierz trójkątna górna Macierz trójkątna dolna l 1,1 0 0 0 l 2,1 l 2,2 0 0 l n 1,1 l n 1,2 l n 1,n 1 0 l n,1 l n,2 l n,n 1 l n,n x 1 x 2 x n 1 x n = Uwaga! W poniższych wzorach kolejność wyznaczania elementów ma znaczenie! Należy trzymać się podanej kolejności! x 1 = b 1 l 1,1 i=2,3,...,n x i = b i P i 1 j=1 l i,jx j l i,i b 1 b 2 b n 1 b n P. Modliński, GiK PW Rozw. ukł. równ. lin. metody dokładne 9/27
Cel Przebieg metody Algorytm Rozszerzenie metody P. Modliński, GiK PW Rozw. ukł. równ. lin. metody dokładne 10/27
Cel Problem Cel Przebieg metody Algorytm Rozszerzenie metody Rzadko układ równań ma postać trójkątną Przekształcenie układu do postaci macierzy trójkątnej! metoda zalgorytmizowana dodawanie i odejmowanie równań mnożenie równań przez stałą P. Modliński, GiK PW Rozw. ukł. równ. lin. metody dokładne 11/27
Cel Przebieg metody Algorytm Rozszerzenie metody k = 0 dane początkowe A (0) = a (0) 1,1 a (0) 1,2 a (0) 1,n 1 a (0) 1,n a (0) 2,1 a (0) 2,2 a (0) 2,n 1 a (0) 2,n a (0) 3,1 a (0) 3,2 a (0) 3,n 1 a (0) 3,n a (0) n 1,1 a (0) n 1,2 a (0) n 1,n 1 a (0) n 1,n a (0) n,1 a (0) n,2 a (0) n,n 1 a (0) n,n b (0) 1 b (0) 2 b (0) 3 b (0) n 1 b (0) n l i,1 = a i,1 a 1,1, a 1,1 0 P. Modliński, GiK PW Rozw. ukł. równ. lin. metody dokładne 12/27
k = 1 Problem Cel Przebieg metody Algorytm Rozszerzenie metody A (1) = a (1) 1,1 a (1) 1,2 a (1) 1,n 1 a (1) 1,n 0 a (1) 2,2 a (1) 2,n 1 a (1) 2,n 0 a (1) 3,2 a (1) 3,n 1 a (1) 3,n 0 a (1) n 1,2 a (1) n 1,n 1 a (1) n 1,n 0 a (1) n,2 a (1) n,n 1 a (1) n,n b (1) 1 b (1) 2 b (1) 3 b (1) n 1 b (1) n l i,2 = a i,2 a 2,2, a 2,2 0 P. Modliński, GiK PW Rozw. ukł. równ. lin. metody dokładne 13/27
k = 2 Problem Cel Przebieg metody Algorytm Rozszerzenie metody A (2) = l i,3 = a i,3 a 3,3, a 3,3 0 a (2) 1,1 a (2) 1,2 a (2) 1,n 1 a (2) 1,n 0 a (2) 2,2 a (2) 2,n 1 a (2) 2,n 0 0 a (2) 3,n 1 a (2) 3,n 0 0 a (2) n 1,n 1 a (2) n 1,n 0 0 a (2) n,n 1 a (2) n,n b (2) 1 b (2) 2 b (2) 3 b (2) n 1 b (2) n P. Modliński, GiK PW Rozw. ukł. równ. lin. metody dokładne 14/27
k = k Problem Cel Przebieg metody Algorytm Rozszerzenie metody A (k) = a (k) 1,1 a (k) 1,2 a (k) 1,k a (k) 1,n 1 0 a (k) 2,2 a (k) 2,k a (k) 2,n 1 a (k) 1,n a (k) 2,n 0 0 a (k) 3,k a (k) 3,n 1 a (k) 3,n 0 0 a (k) k,k a (k) k,n 1 0 0 0 a (k) n 1,n 1 0 0 0 a (k) n,n 1 a (k) k,n a (k) n 1,n a (k) n,n b (k) 1 b (k) 2 b (k) 3 b (k) k b (k) n 1 b (k) n P. Modliński, GiK PW Rozw. ukł. równ. lin. metody dokładne 15/27
k = n Problem Cel Przebieg metody Algorytm Rozszerzenie metody A (n) = a (n) 1,1 a (n) 1,2 a (n) 1,k a (n) 1,n 1 0 a (n) 2,2 a (n) 2,k a (n) 2,n 1 a (n) 1,n a (n) 2,n 0 0 a (n) 3,k a (n) 3,n 1 a (n) 3,n 0 0 a (n) k,k a (n) k,n 1 0 0 0 a (n) n 1,n 1 a (n) k,n a (n) n 1,n 0 0 0 0 a (n) n,n b (n) 1 b (n) 2 b (n) 3 b (n) k b (n) n 1 b (n) n P. Modliński, GiK PW Rozw. ukł. równ. lin. metody dokładne 16/27
Cel Przebieg metody Algorytm Rozszerzenie metody Algorytm Dla k {1,, n 1}: Dla i {k + 1,, n}: Dla j {k,, n}: b (k+1) i l i,k = a(k) i,k a (k) k,k a (k+1) i,j = b (k) i = a (k) i,j l i,ka (k) k,j l i,k b (k) k Otrzymujemy układ z macierzą trójkątną górną, który potrafimy łatwo rozwiązać. P. Modliński, GiK PW Rozw. ukł. równ. lin. metody dokładne 17/27
y Problem Cel Przebieg metody Algorytm Rozszerzenie metody nie zawsze działa! Przykład: A = 0 1 2 3 a 1,1 = 0 dzielenie przez 0! Poza tym nie zawsze dobre własności numeryczne (zależy nam na dzieleniu przez jak największą co do modułu liczbę) P. Modliński, GiK PW Rozw. ukł. równ. lin. metody dokładne 18/27
Cel Przebieg metody Algorytm Rozszerzenie metody Częściowy wybór elementu głównego W każdym kroku wybieramy największy (co do modułu) element w aktualnie przetwarzanej kolumnie 1 Dla ustalenia uwagi w kolumnie k: a p,k = max k i n a i,k a następnie zamieniamy miejscami 2 wiersze k i p w macierzy A i wektorze b 1 w zasadzie tylko w dół od elementu a k,k włącznie na górze są zera 2 to odpowiada zmianie kolejności równań w układzie P. Modliński, GiK PW Rozw. ukł. równ. lin. metody dokładne 19/27
Cel Przebieg metody Algorytm Rozszerzenie metody Pełny wybór elementu głównego Analogiczny do wyboru częściowego, jednak element główny wybieramy nie tylko w przetwarzanej kolumnie, ale w całym fragmencie macierzy poniżej i na prawo włącznie od a k,k : a p,r = max k i n k j n a i,j a następnie zamieniami wiersze k i p w macierzy A i wektorze b, oraz kolumny 3 k i r w macierzy A. 3 zamiana kolumn w macierzy zmienia również kolejność elementów wektora x i zmiany te trzeba zapamiętać w dalszych obliczeniach! P. Modliński, GiK PW Rozw. ukł. równ. lin. metody dokładne 20/27
Podstawy teoretyczne Sens metody P. Modliński, GiK PW Rozw. ukł. równ. lin. metody dokładne 21/27
Podstawy teoretyczne Sens metody Każdy krok rozkładu Gaussa można przedstawić jako iloczyn macierzy: A (k+1) = L (k) A (k) Macierz L (k) ma postać: 1 0 0 0 L (k) = 0 1 0 0 0 l i,k 0 0 l n,k 0 1 P. Modliński, GiK PW Rozw. ukł. równ. lin. metody dokładne 22/27
Podstawy teoretyczne Sens metody Oznaczmy U A (n). Wówczas mamy: Wyznaczając zatem A mamy: U = L (n) A (n 1) = = L (n) L (n 1) A (n 2) = = L (n) L (n 1) L (1) A A = (L (1) ) 1 (L (n 1) ) 1 U P. Modliński, GiK PW Rozw. ukł. równ. lin. metody dokładne 23/27
Podstawy teoretyczne Sens metody Oznaczmy: L = (L (1) ) 1 (L (n 1) ) 1 Odwrócenie macierzy L (i) to zmiana znaku elementów l i,j na przeciwny. Zatem 1 0 0 0 L = 0 1 0 0 l i,1 l i,k 1 0 l n,1 l n,k l n,k+1 1 Wówczas: A = LU P. Modliński, GiK PW Rozw. ukł. równ. lin. metody dokładne 24/27
Podstawy teoretyczne Sens metody A = LU Wówczas układ równań można przedstawić następująco: Ax = b LUx = b Rozwiązując pomocniczy układ równań (trójkątny!) wyznaczamy wektor y: Ly = b A na jego podstawie rozwiązując uproszczony (również trójkątny!) układ dostajemy x: Ux = y P. Modliński, GiK PW Rozw. ukł. równ. lin. metody dokładne 25/27
Po co tak się bawić? Podstawy teoretyczne Sens metody Złożoność obliczeniowa: Doprowadzenie do macierzy trójkątnej O(n 3 ) Rozwiązanie układu trójkątnego O(n 2 ) Doprowadzenie do macierzy trójkątnej O(n 3 ) Odwrócenie macierzy L O(n 2 ) Rozwiązanie układu trójkątnego Ly = b O(n 2 ) Rozwiązanie układu trójkątnego Ux = y O(n 2 ) Dla rozwiązywania pojedynczego układu nie ma sensu! W przypadku gdy dla serii układów równań zmienia się tylko wektor b, wykonujemy tylko dwa ostatnie kroki, zatem rozwiązując dwa, lub więcej układów zyskujemy! P. Modliński, GiK PW Rozw. ukł. równ. lin. metody dokładne 26/27
Dziękuję za uwagę P. Modliński, GiK PW Rozw. ukł. równ. lin. metody dokładne 27/27