Dołącz do ponad 65000 studentów na Akademii eTrapez

Zarejestruj darmowe konto i uzyskaj natychmiastowy dostęp do 16 Lekcji Video.

Poznaj podstawy matematyczne na studiach. Za darmo. We własnym domu.

Zarejestruj darmowe konto na Akademii

Macierze odwrotne liczone metodą Gaussa-Jordana

Streszczenie

W artykule przedstawiam metodę Gaussa-Jordana na obliczanie macierzy odwrotnych, która sprawdza się dobrze dla macierzy o wymiarach większych niż 3*3

Macierze odwrotne różnych wymiarów – dobór metody

Macierze odwrotne można liczyć ze wzoru:

A^{-1}={1/{detA}}(A^D)^T

Sprawdza się to dobrze w macierzach rzędu 2*2 i 3*3. W przypadku wymiaru 2*2:

(matrix{2}{2}{a_{11} a_{12} a_{21} a_{22}})

…do macierzy dopełnień A^D potrzebujemy cztery dopełnienia algebraiczne (będą to wyznaczniki macierzy stopnia 1). Bułka z masłem. Do macierzy odwrotnej wymiaru 3*3:

(matrix{3}{3}{a_{11} a_{12} a_{13} a_{21} a_{22} a_{23} a_{31} a_{32} a_{33} })

…musimy policzyć już dziewięć dopełnień algebraicznych (wyznaczniki stopnia 2). Jak najbardziej do zrobienia.

Wyobraźmy sobie jednak macierz wymiaru 4*4:

(matrix{4}{4}{a_{11} a_{12} a_{13} a_{14} a_{21} a_{22} a_{23} a_{24} a_{31} a_{32} a_{33} a_{34} a_{41} a_{42} a_{43} a_{44} })

Jej wyznacznik stopnia czwartego jest jeszcze do przejścia. Ale wyobraź sobie macierz dopełnień… Przed nami 16 (słownie: szesnaście) wyznaczników trzeciego stopnia! Zadanie na długie zimowe wieczory, a pamiętajmy, że jeden drobny błąd w gąszczu obliczeń rozkłada całe zadanie.

Obliczanie macierzy wymiarów większych niż 4*4 metodą macierzy dopełnień pozostawiam już bez komentarza.

Wyjście?

Macierze odwrotne metoda Gaussa-Jordana

Metoda Gaussa-Jordana jest metodą dosyć żmudną, ale bez porównania mniej żmudną niż próba obliczania z wykorzystaniem dopełnień algebraicznych macierzy odwrotnych wymiaru 4*4 i większych. Opiera się ona na zastosowaniu sztuczek wykorzystywanych już w metodzie Gaussa rozwiązywania układów równań liniowych na wierszach – ale musimy ich stosować więcej.

Uwaga!

W metodzie Gaussa-Jordana możemy wykorzystywać tylko operacje elementarne na wierszach. Nie można zamieniać kolumn miejscami. Ograniczenie to powoduje, że w wielu przykładach będzie nam się robić o wiele ciężej, a często zabrnięcie w ułamki będzie nieuniknione.

Zamiast macierzy trójkątnej będziemy chcieli uzyskać macierz jednostkową, co będzie wymagało wykonania znacznie większej ilości operacji (i tylko na wierszach). Oczywiście zanim nauczymy się tej metody silnie zalecam naprawdę solidne przerobienie metody Gaussa rozwiązywania układów równań liniowych.

Jak to się robi?

Startujemy mając do policzenia macierz odwrotną do jakiejś A

Budujemy wielgachną (na ogół) macierz:
Macierz Gaussa-Jordana
…gdzie po lewej stronie kreski jest nasza macierz, do której odwrotną mamy policzyć, a po prawej stronie kreski macierz jednostkowa (kwadratowa, która na głównej przekątnej ma jedynki a poza nimi same zera). Potem, korzystając z operacji elementarnych znanych z metody Gaussa rozwiązywania układów równań liniowych (np. dodawanie do siebie wierszy po przemnożeniu ich przez jakąś liczbę), przekształcamy tą wielgachną macierz do postaci:
Macierz odwrotna z macierzy Gaussa
… w której macierz B po prawej stronie kreski to jest już nasz wynik, czyli macierz odwrotna A^{-1}.

Łatwo powiedzieć, trudniej zrobić? Ano zobaczmy na konkretnym przykładzie.

Przykład

Weźmy macierz 4*4:
Macierz 4 na 4
Zadanie polega na obliczeniu do niej macierzy odwrotnej. Zrobimy to metodą Gaussa-Jordana. Tworzymy odpowiednią macierz:
Macierz Gaussa-Jordana do przykładu
Po lewej stronie kreski mamy macierz, do której odwrotną trzeba policzyć, a po prawej macierz jednostkową (odpowiedniego wymiaru oczywiście). Nasze zadanie polega na tym, żeby sytuację odwrócić, tzn. po lewej stronie kreski mieć macierz jednostkową, a po prawej inną (która będzie naszym wynikiem – tak przy okazji).
Pracuję tak, jak to się robiło w rozwiązywaniu układów równań liniowych metodą Gaussa, ale z naciskiem, żeby na przekątnej mieć jedynki, oraz nie zamieniając kolumn miejscami (bo mogę pracować tylko na wierszach) . Zaczynam więc od pierwszej kolumny i manipuluję tak, aby w odpowiednim miejscu (czyli w pierwszym wierszu i pierwszej kolumnie) otrzymać jedynkę.
Macierz Gaussa-Jordana do przykładu

Pomnożenie pierwszego wiersza przez 1/3 wtrąci nas w ułamki. Tego nie chcemy i będziemy się przed tym bronić do końca. Żeby uzyskać jedynkę w pierwszym wierszu i pierwszej kolumnie mnożę czwarty wiersz przez -1 i dodaję do pierwszego, uzyskując:

Przekształcona macierz Gaussa-Jordana
Teraz zeruję pierwszą kolumnę, mnożąc pierwszy wiersz przez -5 i dodając do trzeciego:
Macierz Gaussa Jordana 2
…oraz mnożąc pierwszy wiersz przez -2 i dodając do czwartego:
Macierze Gaussa-Jordana 3
Pierwsza kolumna jest już „cacy” – taka, jaka powinna być w macierzy jednostkowej. Idziemy do drugiej. Najpierw musimy skombinować jedynkę w drugim wierszu drugiej kolumny (tam, gdzie jest w macierzy jednostkowej). W tej chwili jest tam 6. Pomnożenie przez 1/6 również wciągnie nas w ułamki. Tego nie chcemy. Zamiast tego mnożę czwarty wiersz przez -1 i dodaję do trzeciego:
Macierz Gaussa-Jordana 4
…i mam jedynkę w trzecim wierszu macierzy (czyli jeszcze nie tam, gdzie trzeba). Teraz zamieniam trzeci i drugi wiersz miejscami:
Macierz Gaussa-Jordana 5
Mam jedynkę we właściwym miejscu. Teraz zeruję drugą kolumnę (wiersz pierwszy zostawiam w spokoju, bo tam jest już zero). Mnożę drugi wiersz macierzy przez -6 i dodaję do trzeciego:
Macierz Gaussa-Jordana 6
Mnożę drugi wiersz macierzy przez -3 i dodaję do czwartego:
Macierz Gaussa-Jordana 7
Mamy wyzerowaną drugą kolumnę macierzy. Przechodzimy do trzeciej.
Tutaj czeka nas prawdziwe wyzwanie. Jedynkę musimy zrobić w miejscu -119. Manipulować moge już tylko trzecim i czwartym wierszem macierzy, bo gdybym ruszył pierwszy albo drugi zepsułbym już ustawione kolumny.
Mnożę czwarty wiersz przez -3 i dodaję do trzeciego:
Macierze Gauss-Jordan 8
Walczę o jedynkę bez wchodzenia ułamki dalej, nie dzielę więc trzeciego wiersza przez 10. Zamiast tego mnożę trzeci wiersz przez cztery i dodaję do czwartego:
Macierze Gaussa-Jordana 9
…a potem mnożę czwarty przez 3 i dodaję do trzeciego:
Macierze Gaussa-Jordana 10
Mam jedynkę i udało się uniknąć ułamków idzie mi więc naprawdę nieźle. Teraz zeruję CAŁĄ trzecią kolumnę (a więc elementy pierwszego, drugiego i czwartego wiersza) poprzez:
– pomnożenie trzeciego wiersza przez 7 i dodanie do pierwszego
– pomnożenie trzeciego wiersza przez -20 i dodanie do drugiego
– pomnożenie trzeciego wiersza przez 3 i dodanie do czwartego
Macierze Gaussa-Jordana 10
Trzecia kolumna przygotowana. Przechodzę do czwartej.
Bardzo fartownie w odpowiednim miejscu macierzy (czwarty wiersz i czwarta kolumna) mamy już jedynkę. Jeśli tam nie było by jedynki pozostało nam by już tylko jedno wyjście: podzielić czwarty wiersz przez odpowiednią liczbę, nawet jeśli oznaczało by to powstanie ułamków. Ale szczęśliwie możemy z miejsca zerować czwartą kolumnę, poprzez:
– pomnożenie czwartego wiersza przez -2 i dodanie do pierwszego
– pomnożenie czwartego wiersza przez 6 i dodanie do drugiego
– pomnożenie czwartego wiersza przez -1 i dodanie do trzeciego

macierz gaussa-jordana 12

W ten sposób dotarliśmy do celu! Po lewej stronie kreski mamy macierz jednostkową, a po prawej macierz odwrotną, którą szukamy.
Teraz już tylko zapisać odpowiedź:
Macierz Gaussa-Jordana 22

Nie wierzysz, że odpowiedź jest prawidłowa? Sprawdź mnie, mnożąc macierz, do której odwrotną mieliśmy policzyć:
Macierz 4 na 4
przez macierz wynikową:
Macierz Gaussa-Jordana 23
wynikiem powinna być macierz jednostkowa! 🙂

 

Kliknij, aby przypomnieć sobie, jak wykorzystać macierz odwrotną do rozwiązania układu równań (poprzedni Wykład) <–

Kliknij, aby powrócić na stronę z Wykładami do macierzy

 

Kurs Macierze

Dołącz do tysięcy studentów, którzy skorzystali z mojego Kursu Video...

  • 7 Lekcji
  • 260 minut nagrań video
  • 70 pytań testowych i 100 przykłady do zadań domowych
  • materiały bonusowe: video (w tym o liczeniu macierzy w WolframAlpha) i artykuły
  • cena: 39 zł
Zobacz więcej

12 komentarzy na “Macierze odwrotne liczone metodą Gaussa-Jordana”

  1. Kamil 30 stycznia 2013 o 23:22 Link do komentarza

    „Mamy wyzerowaną drugą kolumnę macierzy. Przechodzimy do trzeciej.
    Tutaj czeka nas prawdziwe wyzwanie. Jedynkę musimy zrobić w miejscu -119. Manipulować moge już tylko trzecim i czwartym wierszem macierzy, bo gdybym ruszył pierwszy albo drugi zepsułbym już ustawione kolumny.
    Mnożę trzeci wiersz przez 4 i dodaję do czwartego:”

    Tu chyba jest błąd. Patrząc na macierz pod tym tekstem zauwazyłem, że tak na prawde przemnożył Pan 4 wiersz przez -3 i dodał do trzeciego 🙂

    • Krystian Karczyński 4 lutego 2013 o 12:13 Link do komentarza

      Tak, dokładnie, ma Pan rację, w opisie jest błąd. Powinno być: „Mnożę czwarty wiersz przez -3 i dodaję do trzeciego:…”. Przepraszam i dziękuję za zwrócenie uwagi.

  2. Magda 20 lutego 2013 o 15:01 Link do komentarza

    I jest też mały błąd w macierzy jednostkowej bo zamiast zer w czwartej kolumnie jest -6 i 1. Ale ogólnie wiadomo o co chodzi, super wytłumaczone 😉 dzięki Krystian!

  3. Marcin 28 maja 2013 o 23:43 Link do komentarza

    Czy przy odwracaniu macierzy mogę sobie upraszczać wiersze? Np. jeśli wszystkie elementy w wierszu dzielą się przez 2 to czy mogę je wszystkie podzielić?

    • Stanisław wojcik 30 października 2015 o 18:02 Link do komentarza

      Mozna ale na końcu nalezy pomnożyć przez ten podzielenia dowolny wiersz macierzy odwrotnej

      • Stanisław wojcik 30 października 2015 o 19:33 Link do komentarza

        Pisałem , ze mozna z zastrzeżeniem .Mozna bez zadnych ograniczeń nie tylko dzielic ale rowniez mnożyć wiersze przez te sama liczbę .Przykladowo jeśli w element wiersza stanowi liczba różna od jedności a potrzebna zamiast tej liczby jedynka nalezy podzielic prze te liczbę wszystkie elementy wiersza .Mozna takze mnożyć , aby pozbyc sie ulamkow .Proponuje stosowanie mojej metody.Przez wydzielanie tworzyć potrzebne jedynki na przekątnej macierzy danej w kolejności od pierwszej kolumny .Majac jedynkę łatwiej wtedy uzyskiwać zera poza przekątna macierzy dla ktorej mamy obliczyć macierz odwrotna .Te działania powtórzyć w kolejnych kolumnach .Metodą uniwersalna , ktora realizuje komputer (głupi) a student jest wiele wiele mądrzejszy od komputera .

  4. Bartek 12 czerwca 2013 o 11:16 Link do komentarza

    Kurde Mistrzu wymiatasz gdyby nie Ty cala moja matma na studiach to bylaby jedna wielka niekonczaca sie poprawka. Pozdrawiam, oby tak dalej !

    • Bart 6 sierpnia 2013 o 21:05 Link do komentarza

      Szczególnie jak się wybrało informatykę po klasie biologiczno-chemicznej. 😀

  5. kkk 25 października 2013 o 20:02 Link do komentarza

    a jeśli z 0( które stoi na przekątnej) chce zrobić tą jedynkę to co musze wykonać?

  6. Boniek 15 czerwca 2016 o 21:30 Link do komentarza

    Czy metoda gaussa, jest równoważna metodzie macierzy rozszerzonej. Na mojej uczelni pani profesor wymaga zastosowanie metody macierzy rozszerzonej do wyliczania macierzy odwrotnej, czy stosujac metode gaussa również wynik zostanie uznany?

Dodaj komentarz