5. Rozwiązywanie układów równań liniowych
Transkrypt
5. Rozwiązywanie układów równań liniowych
5. Rozwiązywanie układów równań liniowych Wprowadzenie (5.1) Układ n równań z n niewiadomymi: a11 x 1+a 12 x 2+...+a 1n xn =a 10 , a 21 x1+a 22 x 2+...+a 2n x n=a 20 , .............................................. , a n1 x 1+an2 x 2+...+a nn x n=a n0 . Wprowadzając oznaczenia macierzowe układ równań można zapisać w postaci AX = A0 . Wprowadzenie (5.1) Zakłada się, że elementy a ij są liczbami rzeczywistymi. Macierz A nazywa się macierzą główną układu równań, wektor A0 kolumną wyrazów wolnych a wektor X wektorem niewiadomych. Rozwiązaniem rozważanego układu równań nazywany jest każdy wektor =[ x1 x2 xn X T ] o składowych xj , j =1 n , rzeczywistych, spełniający równanie ̄ = A0 . AX Twierdzenie (Cramer): Układ równań liniowych AX = A0 ma dokładnie jedno rozwiązanie gdy det A≠0. Metody rozwiązywania równań liniowych dzieli się na dwie klasy: - metody skończone - pozwalają uzyskać rozwiązanie po wykonaniu skończonej liczby działań arytmetycznych a otrzymane rozwiązania obarczone są tylko błędami zaokrągleń. - metody iteracyjne - polegają na wyznaczaniu ciągu wektorów X 0 , X 1 , , X k , zbieżnego do rozwiązania układu. Uzyskane rozwiązania są obarczone błędem metody oraz zaokrągleń. Metody te pozwalają jednak wyznaczyć rozwiązania z dowolną, z góry zadaną dokładniością. Metody skończone rozwiązywania układów równań liniowych (5.2) Metoda wyznaczników Cramera (5.2.1) Układ równań liniowych AX = A0 można rozwiązać stosując wzory Cramera Def. Podwyznacznikiem danego wyznacznika nazywamy każdy wyznacznik, który otrzymamy usuwając z macierzy danego wyznacznika pewną liczbę wierszy i taką samą liczbę kolumn, zachowując kolejność elementów pozostałych. Def. Minorem wyznacznika przynależnym do elementu a ik macierzy tego wyznacznika nazywamy ten podwyznacznik danego wyznacznika, który otrzymamy usuwając z macierzy danego wyznacznika wiersz oraz kolumnę, na przecięciu których znajduje się ten element (usuwamy i-ty wiersz oraz k-tą kolumnę). Metody skończone rozwiązywania układów równań liniowych (5.2) Metoda wyznaczników Cramera (5.2.1) Uwaga! Minor wyznacznika przynależny do elementu a ii jest minorem głównym wyznacznika Def. Dopełnieniem algebraicznym Aik elementu a ik wyznacznika nazywamy iloczyn minora tego wyznacznika przynależnego do elementu a ik oraz ik czynnika −1 . Tw. (Laplace'a) Wyznacznik jest równy sumie iloczynów każdego elementu dowolnego wiersza (kolumny) i odpowiadającego temu elementowi dopełnienia algebraicznego. Przykład 1: Stosując wzory Cramera wyprowadzić wzory na rozwiązanie układu dwóch równań liniowych z dwiema niewiadomymi x 1, x 2 a 11 x 1+a12 x 2=b1 , a 21 x1 +a 22 x 2=b2 . Metody skończone rozwiązywania układów równań liniowych (5.2) Metoda wyznaczników Cramera (5.2.1) Rozwiązanie: Przykład 2: Stosując wzory Cramera wyprowadzić wzory na rozwiązanie układu trzech równań liniowych z trzema niewiadomymi x 1, x 2, x 3 a11 x 1+a 12 x 2+a13 x 3=b1 , a 21 x1+a 22 x 2+a 23 x 3=b 2 , a 31 x 1+a32 x 2+a 33 x3=b3 . Metody skończone rozwiązywania układów równań liniowych (5.2) Metoda wyznaczników Cramera (5.2.1) Rozwiązanie: Metody skończone rozwiązywania układów równań liniowych (5.2) Metoda wyznaczników Cramera (5.2.1) Złożoność obliczeniowa metody wyznaczników Cramera: Stosowanie wzorów Cramera nakłada konieczność obliczenia n1 wyznaczników stopnia n. Stosując opisaną wcześniej klasyczną metodę obliczania wyznacznika należy wykonać n ! dodawań oraz n⋅n ! mnożeń. Łącznie należy wykonać n1! działań arytmetycznych zmiennoprzecinkowych. W tabeli poniżej zamieszczono czasy obliczania wyznacznika przez komputer wykonujący 108 operacji zmiennoprzecinkowych na sekundę. Aby rozwiązać układ równań AX = A0 należy obliczyć n1 wyznaczników stopnia n oraz wykonać n dzieleń. Całkowita liczba działań arytmetycznych jest zatem równa n1⋅n1 !n . Z powodu dużej złożoności obliczeniowej wzory Cramera stosuje się tylko dla n4. Metody skończone rozwiązywania układów równań liniowych (5.2) Metoda Eliminacji Gaussa (5.2.2) Rozwiązywanie układu równań przebiega w dwóch etapach: - etap postępowania prostego - układ równań zostaje przekształcony do postaci równoważnej (mającej takie samo rozwiązanie, co układ wyjściowy) z trójkątną górną macierzą główną układu, - etap postępowania odwrotnego - układ w postaci równoważnej zostaje rozwiązany. Metoda Eliminacji Gaussa - etap postępowania prostego Wyjściowy układ równań: (0) (0) (0) (0) a 11 x1 +a 12 x 2 +...+a 1n x n=a 10 , (0) (0) (0) (0) a 21 x1 +a 22 x 2 +...+a 2n x n=a 20 , ................................................ , (0) (0) (0) (0) a n1 x 1+an2 x 2+...+a nn x n=a n0 . (1) Przekształcanie macierzy głównej układu w macierz trójkątną odbywa sie w n krokach. Metody skończone rozwiązywania układów równań liniowych (5.2) Metoda Eliminacji Gaussa (5.2.2) Etap postępowania prostego (cd) Krok 1: eliminacja niewiadomej x 1 z równań nr 2, 3, , n . 0 0 Zakładając, że element a 11 ≠0 dzieli się pierwsze równanie przez a 11 i otrzymuje (2) gdzie Następnie od i-tego ( i=2, 3, , n ) równania układu (1) odejmuje się równanie (2) pomnożone przez a 0 otrzymując i1 (3) gdzie Metody skończone rozwiązywania układów równań liniowych (5.2) Metoda Eliminacji Gaussa (5.2.2) Etap postępowania prostego (cd) Krok 2: eliminacja niewiadomej x 2 z równań nr 3, 4, , n. Schemat obliczeń kroku 1 powtarza się w odniesieniu do ukłdu równań (3). Tak więc zakładając, że element a 1 dzieli się pierwsze równanie układu (3) przez 22 ≠0 1 a 22 i otrzymuje (4) gdzie Następnie od i-tego ( i=3, 4, , n ) równania układu (3) odejmuje się 1 równanie (4) pomnożone przez a i2 otrzymując (5) gdzie Metody skończone rozwiązywania układów równań liniowych (5.2) Metoda Eliminacji Gaussa (5.2.2) Etap postępowania prostego (cd) Krok 3,4, ..., n-1: eliminacja kolejnych niewiadomych x 3 , , x n−1 w sposób analogiczny do algorytmu postępowania z kroków 1 i 2. Po wykonaniu obliczeń w n−1 kroku, otrzymuje się równania (6) gdzie oraz (7) Krok n: zakłada się, że element a nn−1 ≠0 . Równanie (7) dzieli się przez n n−1 a n n i otrzymuje x n =a n n0 . (8) Metody skończone rozwiązywania układów równań liniowych (5.2) Metoda Eliminacji Gaussa (5.2.2) Metody skończone rozwiązywania układów równań liniowych (5.2) Metoda Eliminacji Gaussa (5.2.2) Etap postępowania odwrotnego: Rozwiącuje się równoważny układ równań uzyskany w wyniku postępowania prostego Algorytm rozwiązania tego układu równań jest oczywisty. Z ostatniego równania odczytuje się bezpośrednio x n . Wartość tę podstawia się do równań n−1, n−2, , 1 . Z równania n−1 można wyznaczyć x n −1 . Obliczoną wartość podstawia sie do równań n−2, n−3, ,1 . Teraz z równania n−2 można wyznaczyć x n −2 itd. Metody skończone rozwiązywania układów równań liniowych (5.2) Metoda Eliminacji Gaussa (5.2.2) Wnioski: Układ równań liniowych mozna rozwiązać metodą eliminacji Gaussa, (k −1 ) gdy elementy a k k (k =1 , 2 ,… , n) są różne od zera. Ponieważ pomiędzy tymi elementami a minorami macierzy głównej układu zachodzą związki wyrażone w twierdzeniu Twierdzenie. Zachodzą równości Stąd prawdziwe jest twierdzenie Twierdzenie. Układ równań liniowych można rozwiązać metodą eliminacji Gaussa, jeśli wszystkie minory główne macierzy głównej układu są różne od zera Metody skończone rozwiązywania układów równań liniowych (5.2) Metoda Eliminacji Gaussa (5.2.2) Przykład : Stosując metodę eliminacji Gaussa rozwiązać układ równań liniowych 1,2 x 1 2,6 x 2 −0,1 x3 4,5 x 1 9,8 x 2 −0,4 x3 0,1 x 1 −0,1 x 2 −0,3 x3 4,5 x 1 −5,2 x 2 4,2 x3 1,5 x 4 5,7 x 4 −3,5 x 4 −3,4 x 4 = 13,15 , = 49,84 , = −14,08 , = −46,51 . Metody skończone rozwiązywania układów równań liniowych (5.2) Metoda Eliminacji Gaussa (5.2.2) Rozwiązanie: Postępowanie proste Metody skończone rozwiązywania układów równań liniowych (5.2) Metoda Eliminacji Gaussa (5.2.2) Rozwiązanie (cd): Postępowanie proste Postępowanie odwrotne x 4= 4,10003 x 3=−2,40029 x 2 = 3,19989 x1=−1,29983 Rozwiązanie x1=−1,29983 x 2 = 3,19989 x 3=−2,40029 x 4= 4,10003 Metody skończone rozwiązywania układów równań liniowych (5.2) Metoda Eliminacji Gaussa (5.2.2) Z pełnym wyborem elementu podstawowego Przytoczone wczesniej twierdzenie określające warunki stosowalności metody eliminacji Gaussa pokazało istotne jej ograniczenia (aby układ równań liniowych można było rozwiązać metodą eliminacji Gaussa, wszystkie minory główne macierzy głównej układu muszą być różne od zera). Algorytm ten można jednak zmodyfikować w taki sposób, aby można go było stosować do układu Cramera, tzn do układu z det A≠0. Przyjmijmy, że układ równań liniowych AX = A0 jest rozwiązywany metodą eliminacji Gaussa i że zostało już wykonanych k −1 kroków etapu postępowania prostego. Wyjściowy układ równań został przekształcony do postaci (9) Metody skończone rozwiązywania układów równań liniowych (5.2) Metoda Eliminacji Gaussa (5.2.2) Algorytm z pełnym wyborem elementu podstawowego k−1 1. wyszukuje się element a rs spełniający warunek ∣a rs (k−1) a , ∣= kmax ∣ ∣ { } ij ⩽i ⩽n (k −1) k ⩽ j ⩽n 2. przestawia się w układzie (9) równanie r z równaniem k oraz kolumę s kolumną k , 3. eliminuje się niewiadomą x k z równań k 1, k 2, , n , zgodnie z algorytmem k-tego kroku prostej eliminacji Gaussa. Jeśli det A≠0 to żaden element podstawowy w tej metodzie nie jest równy zero. Przykład : Rozwiązać układ równań liniowych stosując metodę eliminacji Gaussa z pełnym wyborem elementu podstawowego 1,2 x 1 2,6 x 2 −0,1 x3 4,5 x 1 9,8 x 2 −0,4 x3 0,1 x 1 −0,1 x 2 −0,3 x3 4,5 x 1 −5,2 x 2 4,2 x3 1,5 x 4 5,7 x 4 −3,5 x 4 −3,4 x 4 = 13,15 , = 49,84 , = −14,08 , = −46,51 . Metody skończone rozwiązywania układów równań liniowych (5.2) Metoda Eliminacji Gaussa (5.2.2) Algorytm z pełnym wyborem elementu podstawowego Rozwiązanie: Postępowanie proste Metody skończone rozwiązywania układów równań liniowych (5.2) Metoda Eliminacji Gaussa (5.2.2) Algorytm z pełnym wyborem elementu podstawowego Rozwiązanie (cd): Postępowanie proste Metody skończone rozwiązywania układów równań liniowych (5.2) Metoda Eliminacji Gaussa (5.2.2) Algorytm z pełnym wyborem elementu podstawowego Rozwiązanie (cd): Postępowanie proste Metody skończone rozwiązywania układów równań liniowych (5.2) Metoda Eliminacji Gaussa (5.2.2) Algorytm z pełnym wyborem elementu podstawowego Proces zamiany elementów w macierzy A oraz wektorach X i A0 najprościej można dokonać możąc powyższe zmienne przez odpowiednio dobrane macierze elementarnej permutacji Pk ,i . k Macierz taka różni się od macierzy jednostkowej tylko elementami p k ,k = p i , i =0 i p k ,i = p i , k =1 , stąd pełna informacja o macierzy dana jest tylko dwiema liczbami k i i k . Można pokazać, że: k k k k Pk ,i =PTk ,i =P−1 k ,i k k [ ] 1 . k . czyli macierz elementarnej permutacji jest symetryczna i ortogonalna. Pk ,i = Lewostronne przemnożenie danej macierzy A przez Pk ,i (t.j. Pk ,i A ) odpowiada przestawieniu jej wierszy o numerach k i i k , a przemnożenie prawostronne (t.j. A Pk ,i ) równoważne jest przestawieniu odpowiednich kolumn. k k k k 0 . . 1 . . . . 1 . . 0 . . 1 Metody skończone rozwiązywania układów równań liniowych (5.2) Metoda Eliminacji Gaussa (5.2.2) Algorytm z pełnym wyborem elementu podstawowego W omawianym przykładzie mamy: [ ] [] [ ] [ ] [ ][ ] 1,2 2,6 −0,1 1,5 (0) (0) 4,5 9,8 −0,4 5,7 X = A = , 0,1 −0,1 −0,3 −3,5 4,5 −5,2 4,2 −3,4 x1 x2 , x3 x4 13,15 (0) A0 = 49,84 . −14,08 −46,51 W kroku 1 postępowania prostego należy zamienić miejscami wiersze k =1 oraz i k =2 . Macierz elementarnej 0 1 P1,2 = 0 0 permutacji ma wówczas postać: (0) ' 1 0 0 0 0 0 1 0 0 0 . 0 1 ' Macierz A oraz wektor A(0) z zamienionymi wierszami otrzymamy w 0 wyniku operacji 0 (0) ' (0) 1 A =P 1,2 A = 0 0 1 0 0 0 0 0 1 0 0 0 0 1 1,2 2,6 −0,1 1,5 4,5 9,8 −0,4 5,7 , 0,1 −0,1 −0,3 −3,5 4,5 −5,2 4,2 −3,4 Metody skończone rozwiązywania układów równań liniowych (5.2) Metoda Eliminacji Gaussa (5.2.2) Algorytm z pełnym wyborem elementu podstawowego [ ] 4,5 9,8 −0,4 5,7 (0) ' 1,2 2,6 −0,1 1,5 A = , 0,1 −0,1 −0,3 −3,5 4,5 −5,2 4,2 −3,4 [ ][ ] [ ] 0 (0) ' (0) 1 A0 =P 1,2 A0 = 0 0 1 0 0 0 0 0 1 0 0 13,15 49,84 0 49,84 = 13,15 , 0 −14,08 −14,08 1 −46,51 −46,51 W kroku 1 należy również zamienić miejscami kolumny k =1 oraz i k =2. Macierz elementarnej permutacji ma wówczas postać [ ] 0 1 P1,2 = 0 0 1 0 0 0 0 0 1 0 0 0 . 0 1 Metody skończone rozwiązywania układów równań liniowych (5.2) Metoda Eliminacji Gaussa (5.2.2) Algorytm z pełnym wyborem elementu podstawowego (0) ' ' Macierz A z zamienionymi kolumnami otrzymamy w wyniku operacji [ 4,5 A(0) ' ' = A(0)' P 1,2= 1,2 0,1 4,5 [ 9,8 2,6 −0,1 −5,2 ][ 9,8 −0,4 5,7 0 2,6 −0,1 1,5 1 −0,1 −0,3 −3,5 0 −5,2 4,2 −3,4 0 4,5 1,2 0,1 4,5 −0,4 −0,1 −0,3 4,2 5,7 1,5 −3,5 −3,4 1 0 0 0 0 0 1 0 ] 0 0 = 0 1 ] W tym przypadku konieczna jest również zamiana wierszy w wektorze X (1) Wykonując poniższe przekształcenie otrzymuje sie wektor X . [ 0 (1) (0) 1 X =P1,2 X = 0 0 1 0 0 0 0 0 1 0 0 0 0 1 ][ ] [ ] x1 x2 x2 x = 1 . x3 x3 x4 x4 (0) . Metody skończone rozwiązywania układów równań liniowych (5.2) Metoda Eliminacji Gaussa (5.2.2) Algorytm z pełnym wyborem elementu podstawowego Teraz można przystąpić do przekształceń pierwszego kroku algorytmu ) eliminacji Gaussa, w wyniku czego otrzymamy macierz A(1 ) oraz wektor A(1 0 o postaciach: [ 1,0 (1 ) 0,0 A = 0,0 0,0 0,45918 0,00613 0,14592 6,88774 −0,04082 0,00613 −0,30408 3,98774 ] [ ] 0,58163 −0,01224 , −3,44184 −0,37552 5,08571 (1 ) −0,07285 A0 = . −13,57143 −20,06413 W kroku 2 postępowania prostego należy zamienić miejscami wiersze k =2 oraz i k =4. Macierz elementarnej permutacji ma postać: [ ] 1 0 P2,4 = 0 0 0 0 0 1 0 0 1 0 0 1 . 0 0 Metody skończone rozwiązywania układów równań liniowych (5.2) Metoda Eliminacji Gaussa (5.2.2) Algorytm z pełnym wyborem elementu podstawowego (1 ) ' (1 ) ' Macierz A oraz wektor A0 wyniku operacji z zamienionymi wierszami otrzymamy w [ ][ ] [ ] [ ][ ] [ ] 1 (1 ) ' (1) 0 A =P 2,4 A = 0 0 0 0 0 1 1,0 (1 ) ' 0,0 A = 0,0 0,0 1 )' (1) 0 A(1 =P A = 0 2,4 0 0 0 0 0 1 0 0 1 0 0 1,0 0,0 0,0 0,0 0,45918 −0,04082 0,58163 0,00613 0,00613 −0,01224 , 0,14592 −0,30408 −3,44184 6,88774 3,98774 −0,37552 0,45918 −0,04082 6,88774 3,98774 0,14592 −0,30408 0,00613 0,00613 0 0 0 1 0 0 1 0 0,58163 −0,37552 , −3,44184 −0,01224 0 5,08571 5,08571 1 −0,07285 = −20,06413 , 0 −13,57143 −13,57143 0 −20,06413 −0,07285 Metody skończone rozwiązywania układów równań liniowych (5.2) Metoda Eliminacji Gaussa (5.2.2) Algorytm z pełnym wyborem elementu podstawowego Teraz można przystąpić do przekształceń drugiego kroku algorytmu eliminacji Gaussa, w wyniku którego otrzymamy macierz A(2) oraz wektor A(2) 0 o postaciach: [ 1,0 (2) 0,0 A = 0,0 0,0 0,45918 1,00000 0,00000 0,00000 Wektor X (2) ma postać: ] [ ] −0,04082 0,58163 0,57896 −0,05452 , −0,38856 −3,43388 0,00258 −0,01191 [] x2 X (2)= X (1) = x1 . x3 x4 5,08571 (2) −2,91305 A0 = . −13,14636 −0,05499 Metody skończone rozwiązywania układów równań liniowych (5.2) Metoda Eliminacji Gaussa (5.2.2) Algorytm z pełnym wyborem elementu podstawowego W kroku 3 postępowania prostego należy zamienić miejscami kolumny k =3 oraz i k =4 . Macierz elementarnej permutacji ma wówczas postać: (2) ' Macierz A [ ] ][ ] ] 1 P3,4 = 0 0 0 0 1 0 0 0 0 0 1 0 0 . 1 0 z zamienionymi kolumnami otrzymamy w wyniku operacji [ 1,0 (2) ' (2) 0,0 A =A P3,4 = 0,0 0,0 0,45918 1,00000 0,00000 0,00000 [ 1,0 0,0 0,0 0,0 −0,04082 0,58163 1 0,57896 −0,05452 0 −0,38856 −3,43388 0 0,00258 −0,01191 0 0 1 0 0 0,45918 0,58163 −0,04082 1,00000 −0,05452 0,57896 . 0,00000 −3,43388 −0,38856 0,00000 −0,01191 0,00258 0 0 0 1 0 0 = 1 0 Metody skończone rozwiązywania układów równań liniowych (5.2) Metoda Eliminacji Gaussa (5.2.2) Algorytm z pełnym wyborem elementu podstawowego W tym przypadku konieczna jest również zamiana wierszy w wektorze X Wykonując poniższe przekształcenie otrzymuje sie wektor X (3) . (2) . [ ][ ] [ ] 1 (3) (2) 0 X =P3,4 X = 0 0 0 1 0 0 0 0 0 0 0 1 1 0 x2 x2 x1 = x1 . x3 x4 x4 x3 Teraz można przystąpić do przekształceń trzeciego kroku algorytmu eliminacji Gaussa, w wyniku którego otrzymamy macierz A(3) oraz wektor A(3) o 0 postaciach: [ 1,0 (3) 0,0 A = 0,0 0,0 0,45918 1,00000 0,00000 0,00000 ] [ ] 0,58163 −0,04082 −0,05452 0,57896 , 1,00000 0,11315 0,00000 0,00393 5,08571 (3) −2,91305 A0 = . 3,82843 −0,00939 Metody skończone rozwiązywania układów równań liniowych (5.2) Metoda Eliminacji Gaussa (5.2.2) Algorytm z pełnym wyborem elementu podstawowego W kroku 4 (ostatnim) postępowania prostego należy jedynie sprowadzić do 1,0 (3) współczynnik A(3) macierzy . Ostatecznie po zakończeniu postępowania A 4,4 (4) A prostego otrzymujemy układ równań A(4) X (4)= A(4) z macierzą główną 0 (4) (3) trójkątną górną i wektorem X = X . [ 1,0 0,0 0,0 0,0 0,45918 1,00000 0,00000 0,00000 0,58163 −0,05452 1,00000 0,00000 −0,04082 0,57896 0,11315 1,00000 ][ ] [ ] x2 5,08571 x1 −2,91305 = . 3,82843 x4 −2,38931 x3 Teraz można rozwiązać powyższy układ równań - rozpocząć etap postępowania odwrotnego algorytmu eliminacji Gaussa. Ostatecznie otrzymuje się wektor X (4), którego elementy należy odpowiednio przepisać do wektora X (0). [][ ] x2 3,20402 X (4)= x 1 = −1,30627 , 4,09878 x4 −2,38931 x3 [][ ] x1 −1,30627 X (0)= x 2 = 3,20402 . −2,38931 x3 4,09878 x4