Az
lineáris egyenletrendszer megoldására gyakran használt univerzális módszer a Gauss elimináció. Az egyenletrendszer mátrixai az alábbiak:
,
,
(F.33)
ahol
az együttható mátrix,
egy adott ismert értékekből álló vektor, az
vektor pedig az ismeretleneket tartalmazó vektor. Egyszerűbb esetben az
mátrix
-es, de az algoritmus
-es esetre is alkalmazható.
A megoldás bemutatása során a változók felírását gyakran elhagyjuk és az egyenletrendszert az alábbi kibővített mátrix segítségével írjuk fel:
. (F.34)
Látható, hogy a kibővített mátrix az együttható mátrix kiegészítve a
vektorral. A kiegészített
mátrix és az eredeti
mátrix rangjára vonatkozóan:
- ha
, akkor egy egyértelmű megoldás van.
- ha
, akkor az egyenletnek végtelen sok megoldása van. Ilyen esetben lehet csökkenteni az ismeretlenek számát, majd valamilyen optimális megoldást (pl. a négyzetes hibaminimalizáló megoldás) keresni.
- ha
akkor nincs megoldás.
A mátrixon az egyenletrendszer eredményének változása nélkül az alábbi elemi sor-műveletek végezhetők:
-
egy vagy több egyenlet (sor) szorzása egy c konstanssal,
-
két vagy több egyenlet (sor) felcserélése,
-
egy egyenlet (sor) c-szeresének hozzáadása egy másik sorhoz.
A fentiek mellett az alábbi, oszlopok cseréjével járó művelet is elvégezhető:
az egyenletrendszerben a változók sorrendjét felcseréljük (ez oszlopok cseréjét jelenti, kibővítettmátrix esetén az utolsó oszlop kivételével).
Az alap eljáráshoz elegendő az első három elemi sor-művelet, de bizonyos esetekben (például a pontosság növeléséhez) az utolsó műveletet is alkalmazzuk. Erről a későbbiekben lesz szó (ld. pivotolás).
A fenti műveletek segítségével a mátrixot, illetve az egyenletrendszert egy olyan egyszerűbb alakra (pl. háromszög-, diagonál mátrix) hozhatjuk, amely esetén egyszerű a megoldás számítása.
(F.35)
az eredeti egyenletrendszert egy
felső háromszögmátrixot (
) tartalmazó egyenletrendszerré alakítjuk, ami már egyszerű behelyettesítéssel megoldható. Az algoritmus egy köztes lépésében a
, (F.36)
az
kinullázásához a második sort elosztjuk az
generáló „pivot” elemmel majd ennek
szorosát kivonjuk a harmadik sorból. Amennyiben a pivot elem helyén 0 áll, sorcserét kell alkalmazni (ha nincs nem 0 sor, akkor az adott oszlop megfelel az elvárásoknak).
A “pivot” vagy generáló elem, amint azt láthattuk fontos szerephez jut az algoritmus során. A számítási pontosság növelésére szolgál a pivotolás, amikor ezt a pivot elemet tudatosan választjuk ki, ahol a cél egy nagy értékű elem használata. Ez az elem sor illetve oszlop cserével mozgatható a megfelelő pozícióba. A részleges pivotolás (partial pivoting) esetén az adott oszlop abszolút értékben legnagyobb elemét használjuk, míg a teljes pivotolás (complete pivoting) esetén a mátrix oszlopait és sorait is cserélve mozgatjuk az abszolútértékben legnagyobb elemet a megfelelő pozícióba. Ebben az esetben (oszlopok cseréjénél) az ismeretlenek sorrendje is változik. A leggyakrabban elegendő az egyszerűbb részleges pivotolás alkalmazása.
A fentiekhez hasonlóan egy másik algoritmus, a Gauss-Jordan elimináció célja az alábbi diagonális mátrix alak:
(F.37)
amit a Gauss eliminációnál alkalmazott műveletekkel érhetünk el. Ebben az esetben nincs szükség visszahelyettesítésekre, az eredmény azonnal számítható.