Rozwiązywanie układów równań metodą eliminacji Gaussa

Autor podstrony: Krzysztof Zajączkowski

Stronę tą wyświetlono już: 13641 razy

Rozwiązywanie układów równań liniowych możliwe jest poprzez zastosowanie metody eliminacji Gaussa. Metoda ta sprowadza macierz danego układu równań do macierzy jednostkowej lub macierzy trójkątnej z jednoczesnym wyznaczeniem wartości niewiadomych x1, x2, ... , xn.

Z współczynników stojących przy niewiadomych oraz wyrazów wolnych należy utworzyć macierz:

gdzie:

Przekształcenie powyższej macierzy do macierzy trójkątnej górnej odbywa się etapowo w dwóch krokach, które realizowane są dla wartości i zmieniającej się od 1 do n:

  1. Podzielić i-ty wiersz macierzy przez odwrotność jej argumentu ai,i w następujący sposób:

    Przykład dla i=1:

  2. Dla każdego wiersza o indeksie k takim że i<kn odjąć otrzymany wiersz Wi' przemnożony przez argument ai,k:

    Przykład dla k= 2, ... , n:

    Aby zredukować do zera argumenty macierzy znajdujące się nad przekątną główną należy operację odejmowania przeprowadzić dla k∈{1, 2, ..., n}{i}.

Macierz powstała w wyniku jednokrotnego wykonania kroków 1, 2 stanowi dane wejściowe dla następnego cyklu. W początkowej fazie, dla i=1 dane wejściowe stanowi macierz [2].

Po przeprowadzeniu wszystkich etapów dla i=1, 2, ... , n otrzymana zostanie następująca macierz trójkątna górna:

gdzie:

Wartość niewiadomej xn układu równań [1] po przeprowadzeniu metody eliminacji Gaussa jest równa:

natomiast kolejne niewiadome o indeksach i=n-1, n-2, ... , 1 obliczyć można za pomocą następującego wzoru:

Przykład

Rozwiązać metodą eliminacji Gaussa do postaci macierzy trójkątnej górnej następujący układ równań:

Zacząć należy od utworzenia macierzy:

Etap pierwszy dla i = 1

Krok pierwszy - podzielenie pierwszego wiersza przez a1,1

Krok drugi - odjęcie od wierszy 2, 3, 4 wiersza pierwszego pomnożonego odpowiednio przez współczynniki a2,1, a3,1, a4,1.

Ponieważ argument a2,2 uzyskanej macierzy jest równy 0, konieczna jest zamiana miejscami wiersza drugiego z trzecim w następujący sposób:

Etap drugi dla i=2

Krok pierwszy - podzielenie drugiego wiersza przez a2,2

Krok drugi - odjęcie od wierszy 3, 4 wiersza drugiego pomnożonego odpowiednio przez współczynniki a3,2, a4,2, jednakże wiersz trzeci można pominąć, ponieważ argument a3,2=0.

Etap trzeci dla i=3

Krok pierwszy - podzielenie wiersza trzeciego przez argument a3,3

Krok drugi - odjęcie od wiesza czwartego wiersza trzeciego pomnożonego przez współczynnik a4,3.

Etap czwarty dla i=4

Krok pierwszy - podzielenie wiersza czwartego przez argument a4,4

Kroku drugiego nie ma i nie będzie, ponieważ brak jest wierszy do przeliczenia.

Według wzoru [6] niewiadoma x4 jest równa:

Pozostałe niewiadome można obliczyć według wzoru [7].

Można zredukować do zera argumenty macierzy znajdujące nad przekątną główną macierzy uzyskanej w kroku czwartym za pomocą trzech etapów otrzymując w ten sposób w ostatniej kolumnie wartości niewiadomych x1, x2, x3, x4.

Etat pierwszy - od wierszy 1, 2, 3 odjąć wiersz czwarty pomnożony odpowiednio przez współczynniki a1,4, a2,4, a3,4.

Etap drugi - od wierszy 1, 2 odjąć wiersz trzeci pomnożony odpowiednio przez współczynniki a1,3, a2,3.

Etap trzeci - od wiersza pierwszego odjąć wiersz drugi pomnożony przez współczynnik a1,2.

Ponieważ swego czasu zrobiłem program, który w przebiegły sposób wykorzystuje metodą eliminacji Gausa do rozwiązywania liniowych układów równań, więc użyję go tutaj do rozwiązania tego samego układu równań podając mu na wejście następujące dane:

4 2 4 8 2 10 1 2 12 56 30 22 26 4 40 160 28 32 26 6 10

by program po chwili wypluł na powierzchnię ekranu następujący wynik:

Przeliczanie macierzy do postaci macierzy jednostkowej: 2 4 8 2 10 1 2 12 56 30 22 26 4 40 160 28 32 26 6 10 Etap 1: 1 2 4 1 5 1 2 12 56 30 22 26 4 40 160 28 32 26 6 10 1 2 4 1 5 0 0 8 55 25 0 -18 -84 18 50 0 -24 -86 -22 -130 Etap 2: a(2, 2)=0 i dlatego muszę posortowac: 1 2 4 1 5 0 -24 -86 -22 -130 0 0 8 55 25 0 -18 -84 18 50 1 2 4 1 5 -0 1 3.583333333 0.9166666667 5.416666667 0 0 8 55 25 0 -18 -84 18 50 1 0 -3.166666667 -0.8333333333 -5.833333333 -0 1 3.583333333 0.9166666667 5.416666667 0 0 8 55 25 0 0 -19.5 34.5 147.5 Etap 3: 1 0 -3.166666667 -0.8333333333 -5.833333333 -0 1 3.583333333 0.9166666667 5.416666667 0 0 1 6.875 3.125 0 0 -19.5 34.5 147.5 1 0 0 20.9375 4.0625 -0 1 0 -23.71875 -5.78125 0 0 1 6.875 3.125 0 0 0 168.5625 208.4375 Etap 4: 1 0 0 20.9375 4.0625 -0 1 0 -23.71875 -5.78125 0 0 1 6.875 3.125 0 0 0 1 1.23655914 1 0 0 0 -21.82795699 0 1 0 0 23.5483871 0 0 1 0 -5.376344086 0 0 0 1 1.23655914

Jak widać powyżej, program nie tylko rozwiązuje ale i rozpisuje kolejne etapy.

Przykład do samodzielnego rozwiązania:

Odpowiedź:

Załączniki:

Napisany przeze mnie program RownaniaLiniowe