V matematike je Gaussova eliminácia (nazývaná aj redukcia riadkov) metóda používaná na riešenie sústav lineárnych rovníc. Je pomenovaná po Carlovi Friedrichovi Gaussovi, slávnom nemeckom matematikovi, ktorý o tejto metóde písal, hoci ju nevynašiel.

Základná myšlienka

Na vykonanie Gaussovej eliminácie sa koeficienty členov v sústave lineárnych rovníc zapíšu do tzv. rozšírenej matice (augmented matrix). Potom sa pomocou základných riadkových operácií matica upravuje, až kým nedosiahne jednoduchší tvar, z ktorého sa riešenie sústavy dá ľahko získať.

Riadkové operácie

Používajú sa tri základné typy riadkových operácií, ktoré nemenia množinu riešení sústavy:

  • Typ 1: výmena dvoch riadkov.
  • Typ 2: násobenie riadku nenulovým číslom.
  • Typ 3: pripočítanie násobku jedného riadku k druhému (sčítanie/odčítanie riadku).

Požadované tvary matice

Cieľom Gaussovej eliminácie je dosiahnuť maticu v riadkovom echelónovom tvare (row echelon form). To znamená, že každý riadok začína o jednu (alebo viac) nul viac ako riadok nad ním pri čítaní zľava doprava a všetky nulové riadky (ak existujú) sú pod nenulovými riadkami. Ak ďalej v každom riadku urobíme vedúci (prvý nenulový) prvok rovný 1 a zabezpečíme, aby v jeho stĺpci boli všetky ostatné prvky nulové, dostaneme redukovaný riadkovo-echelónový tvar (reduced row echelon form, RREF).

Gaussova-Jordanova eliminácia je varianta, ktorá priamo vedie k RREF a umožňuje bez ďalšieho back-substitution čítať riešenia priamo z matice.

Postup (algoritmus)

  1. Zapíšte sústavu ako rozšírenú maticu (koeficienty a pravé strany).
  2. Prejdite stĺpce zľava doprava a v každom stĺpci vyberte pivot (prvý nenulový prvok zhora, prípadne pomocou výmeny riadkov zabezpečte nenulový pivot). Odporúča sa čiastočné pivotovanie (výmena s riadkom, ktorý má najväčšiu absolútnu hodnotu v stĺpci) kvôli numerickej stabilite.
  3. Pomocou pivotu eliminujte všetky prvky pod ním (t. j. urobte ich nulovými) pripočítaním vhodných násobkov pivotového riadku k riadkom pod ním.
  4. Opakujte pre ďalší stĺpec a riadky posunuté o jednu doprava až dovtedy, kým nepokryjete všetky premenné alebo riadky.
  5. Ak chcete RREF, po získaní echelónového tvaru ešte eliminujte nad pivotmi (urobte prvky nad pivotmi nulovými) a škálujte pivoty na 1.
  6. Pre klasickú Gaussovu elimináciu použite back-substitution na zistenie hodnôt premenných z echelónového tvaru.

Možné výsledky sústavy

  • Jediné riešenie: počet pivotov rovná sa počtu premenných (matica má plný stĺpcový hodnosť).
  • Žiadne riešenie (inkonzistentná sústava): počas eliminácie vznikne riadok tvaru [0 0 ... 0 | b] s b ≠ 0, čo znamená protirečenie 0 = b.
  • Infinitne veľa riešení: počet pivotov je menší než počet premenných — existujú voľné premenné (parameters), ktoré možno nastaviť libovolne a ostatné premenné vyjadriť pomocou nich.

Komplexnosť

Pre maticu n × n má priamy Gaussov algoritmus časovú zložitosť O(n^3) (operácie sčítania/násobenia). Pre veľké systémy sa často používajú metódy špeciálne prispôsobené štruktúre matice (riedke matice, symetrické, atď.).

Príklad (krok za krokom)

Riešme sústavu 3 rovníc so 3 neznámymi:

 x + 2y -  z = 1 2x + 3y +  z = 4 - x +  y + 2z = -1 

Zapíšeme rozšírenú maticu:

 [ 1  2 -1 |  1 ] [ 2  3  1 |  4 ] [-1  1  2 | -1 ] 

Krok 1: eliminujeme prvky pod pivotom v prvom stĺpci.

R2 ← R2 - 2·R1, R3 ← R3 + R1

 [ 1   2  -1 |  1 ] [ 0  -1   3 |  2 ] [ 0   3   1 |  0 ] 

Krok 2: ako pivot v druhom kroku použijeme druhý riadok (môžeme ho vynásobiť -1, aby pivot bol 1): R2 ← -1·R2

 [ 1  2  -1 |  1 ] [ 0  1  -3 | -2 ] [ 0  3   1 |  0 ] 

Krok 3: eliminujeme prvky v druhom stĺpci pod pivotom: R3 ← R3 - 3·R2

 [ 1  2  -1 |  1 ] [ 0  1  -3 | -2 ] [ 0  0  10 |  6 ] 

Krok 4: teraz riešime pre z z tretieho riadku: 10z = 6 ⇒ z = 6/10 = 3/5.

Krok 5: spätnou substitúciou nájdeme y z druhého riadku: y - 3z = -2 ⇒ y = -2 + 3·(3/5) = -2 + 9/5 = (-10 + 9)/5 = -1/5.

Krok 6: z prvého riadku nájdeme x: x + 2y - z = 1 ⇒ x = 1 - 2y + z = 1 - 2·(-1/5) + 3/5 = 1 + 2/5 + 3/5 = 1 + 1 = 2.

Riešenie sústavy je x = 2, y = -1/5, z = 3/5.

Tipy a poznámky

  • Pri numerických výpočtoch sa odporúča pivotovanie (zvyčajne čiastočné pivotovanie: výber najväčšieho absolútneho prvku v aktuálnom stĺpci) kvôli zlepšeniu stability a zníženiu zaokrúhľovacích chýb.
  • Pre veľké a riedke matice sa používajú špecializované implementácie, ktoré zachovávajú riedosť, aby sa znížila pamäťová náročnosť a zrýchlil výpočet.
  • Gaussova eliminácia nie je len na riešenie sústav; používa sa aj pri výpočte inverznej matice (aplikovaním eliminácie na rozšírenú maticu [A | I]) a pri výpočte hodnosti matice.