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)
- Zapíšte sústavu ako rozšírenú maticu (koeficienty a pravé strany).
- 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.
- 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.
- Opakujte pre ďalší stĺpec a riadky posunuté o jednu doprava až dovtedy, kým nepokryjete všetky premenné alebo riadky.
- 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.
- 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.