Gauss-Jordan kiesés

A matematika , pontosabban lineáris algebra , Gauss-Jordan elimináció , más néven Gauss pivot eljárás elnevezett Carl Friedrich Gauss és Wilhelm Jordan , egy algoritmus meghatározására megoldások egy egyenletrendszer lineáris , hogy meghatározza a rangsorban a mátrix vagy egy invertálható (négyzet) mátrix inverzének kiszámításához . Amikor Gauss-eliminációt alkalmazunk egy mátrixra, megkapjuk annak méretezett redukált alakját .

Történelem

Ezt a módszert a kínai matematikus , mivel legalább a I st  században AD. Erre utal a Jiuzhang suanshu ( A matematikai művészet kilenc fejezete ) című kínai könyv , amelynek a nyolcadik fejezetét képezi, "Fang cheng" (téglalap alakú elrendezés) címmel. A módszert tizennyolc gyakorlat segítségével mutatjuk be. 263- ban írt kommentárjában Liu Hui az apaságot Ts'ang Chang-nak, az ie II .  Századi kínai császár kancellárjának tulajdonítja .

Európában ezt a módszert fedeztek fel, és az adatokat modern formája a XIX th  században . 1810-ben Carl Friedrich Gauss a Pallas aszteroida mozgását tanulmányozó könyvben mutatta be a legkisebb négyzetek módszerét . E könyv 13. cikkében leír egy általános módszert a lineáris egyenletrendszer megoldására, amely a pivot módszer lényegét képezi. 1888-ban Wilhelm Jordan kiadott egy geodéziai könyvet, amely meghatározta ennek a módszernek a használatát, és kissé eltérő jelölést alkalmaz. Ennek a könyvnek köszönhető, hogy ez a módszer elterjedt egész nyugaton. Manapság Gauss-Jordan megszüntetése néven ismert, vagy Gauss pivotjának módszerével .

Algoritmus

Tevékenységek

A Gauss-Jordan algoritmus elemi soros műveletek felhasználásával állítja elő a mátrix redukált skálázott mátrixát . Háromféle elemi műveletet használnak:

Álkód

Legyen n × m dimenziójú A mátrix  ;

A Gauss-Jordan algoritmus a következő:

Gauss-Jordan r = 0 (r est l'indice de ligne du dernier pivot trouvé) Pour j de 1 jusqu'à m (j décrit tous les indices de colonnes) | Rechercher max(|A[i,j]|, r+1 ≤ i ≤ n). Noter k l'indice de ligne du maximum | (A[k,j] est le pivot) | Si A[k,j]≠0 alors (A[k,j] désigne la valeur de la ligne k et de la colonne j) | | r=r+1 (r désigne l'indice de la future ligne servant de pivot) | | Diviser la ligne k par A[k,j] (On normalise la ligne de pivot de façon que le pivot prenne la valeur 1) | | Si k≠r alors | | | Échanger les lignes k et r (On place la ligne du pivot en position r) | | Fin Si | | Pour i de 1 jusqu'à n (On simplifie les autres lignes) | | | Si i≠r alors | | | | Soustraire à la ligne i la ligne r multipliée par A[i,j] (de façon à annuler A[i,j]) | | | Fin Si | | Fin Pour | Fin Si Fin Pour Fin Gauss-Jordan


Példa.

A mátrixból indulunk ki

Ez egy valós mátrix, tehát az együttható modulusa az abszolút értéke.

Numerikus stabilitás

Az algoritmus első szakasza, vagyis a legnagyobb csavarértékű sorcsere az algoritmus numerikus stabilitásának javítására irányul. Ez a lépés megpróbálja minimalizálni a kumulatív kerekítési hibákat, amelyek numerikus instabilitást okoznak. Ez a stratégia általában lehetővé teszi ezen instabilitás orvoslását, még ha ellenpéldákat is tudunk adni.

Algoritmikus összetettség

A Gauss-elimináció aszimptotikus algoritmikus bonyolultsága O ( n 3 ) ( Landau-jelölések ): n × n a mátrix mérete, és az elvégzendő utasítások száma arányos n 3- mal . Ez az algoritmus számítógépen használható olyan rendszerek számára, amelyekben több ezer ismeretlen és egyenlet található . Azonban, Strassen-algoritmus , amely O ( n 2,807 ) jobb a aszimptotikus algoritmikus bonyolultságát.

A Gauss-pivot algoritmikus bonyolultsága O ( n 3 ) marad, ha a mátrix ritka. Vegyünk egy olyan n × n mátrixot, amelynek csak k n bemenete nem nulla, de amelynek bemenetei rendszeresen oszlanak el a sorok és oszlopok között, majd a Gauss-féle pivot algoritmus során a nem nulla értékek átlagos számát egy a vonal k- ről 2k-ra, majd 3k- ról n- re megy . Ezért azt találjuk, hogy az utasítások száma az nn (n-1) / 2 nagyságrendű .

A négyzetmátrix inverzének kiszámítása

Gauss-Jordan elimináció lehet használni, hogy fordítsa a négyzetes mátrix , ha az invertálható . Ehhez létrehozunk egy mátrix n sorból és 2 n oszlopok által határos A mátrix által azonosító mátrix I n , amely létrehoz egy bővített mátrixot (a) jelöljük [A | I] . Ha a bemeneti mátrix megfordítható, akkor a kibővített mátrixra a Gauss-Jordan algoritmust alkalmazzák. A végső mátrix az [I | alakú A −1 ], és a kezdeti mátrix inverzét tartalmazza a jobb szakaszában.  

Példa

Tegyük fel a következő mátrixot:

Ennek a mátrixnak az inverz megtalálásához létre kell hoznunk a kibővített mátrixot [A | I] az alábbiak szerint:

A Gauss-Jordan algoritmus alkalmazásával a kibővített mátrixot a következő redukált méretarányban kapjuk meg:

Demonstráció

Mint korábban, az első pivot az első sorban van. A 2.2.3 lépésben az első sor lesz

A 2.2.4. Lépés a következő lesz:

Így van

A második iterációhoz megfertőzzük a 2. és a 3. sort, és az új 2. sort elosztjuk 2-vel, vagyis a 2.2.3. Lépésben:

A 2.2.4 lépésben:

Így van

A harmadik iterációhoz elosztjuk a 3. sort 1-gyel, a mátrix változatlan a 2.2.3 lépésben.

A 2.2.4 lépésben:

Így van

.

A 2. és 3. sor végleges permutációja megadja

.

A mátrix bal oldali szakasza az identitásmátrix, amely azt bizonyítja, hogy A fordíthatatlan. A jobb oldali 3x3 szakasz, azaz a B mátrix az A inverze.

Általános eset

Végző elemi műveletet O a N sorok egy mátrix összegek megszorozzuk a bal oldalon a mátrixot (átfordítható) G s  : = O ( I n ).

Megjegyezve O 1 , ..., O s az elemi műveletet, amelyek az egyik végez a A , és a G s = O s ( I n ) a kapcsolódó elemi mátrixok, egy így végül, a bal oldali részén, a mátrix

a jobb oldali pedig a mátrixnál

Így, B jelentése nonsingular és BA = I n , így a B -1 = A és A -1 = B .

Megoldása a lineáris egyenletrendszer

Gauss-Jordan eliminációval megoldható az AX = B egyenletrendszer, ahol A egy r rangú n × m mátrix , B fix vektor és X az ismeretlen vektor. N sorból és m + 1 oszlopból álló táblázatot készítünk úgy, hogy az A mátrixot a B vektorral határoljuk. A mátrixot csökkentett méretarányban redukáljuk.

Ha az (A | B) -hez társított redukált skálázott mátrix pivotjai csak az első m oszlopokban helyezkednek el (ami mindig így van, ha r = n  ), és az oszlop indexük k 1 ,…, k r  , akkor az utolsó oszlop egy adott megoldást nyújt, amelyet úgy kapunk meg, hogy összes nulla tagját vesszük, kivéve azokat, amelyek a k i index vonalán helyezkednek el, és amelyekhez megadjuk az utolsó oszlop i egyenesén elhelyezkedő kifejezés értékét , i változik 1-től r-ig .

A rendszer általános megoldását úgy kapjuk meg, hogy ehhez az adott megoldáshoz hozzáadjuk az A kernel bármely elemét. Ezt úgy kapjuk meg, hogy tetszőleges értékeket adunk a k i-től eltérő sorindexben elhelyezkedő X együtthatóknak , és meghatározzuk a k i index vonalain elhelyezkedő együtthatók , hogy kielégítsék a rendszert (ami a mátrix méretarányos alakja miatt könnyű).

Ha az (A | B) -hez társított redukált skálázott mátrix utolsó pivotja az utolsó oszlopban van, akkor nincs megoldás.

Ha az A mátrix invertálható négyzet (más szóval, a rendszer Cramer), akkor az utolsó oszlopban megkapjuk a rendszer egyedi X megoldását.

Változat: az előző algoritmusban, ha egy skálázott (nem redukált) mátrix megszerzésére szorítkozunk, akkor magasabb háromszög mátrixot kapunk. Csak annyi marad, hogy "visszamegyünk", hogy megtaláljuk az X együtthatóinak értékeit.

1. példa (részletes)

Legyen a lineáris egyenletek rendszere:

Megállapítjuk a megfelelő mátrixot:

Az 1. oszloppal kezdjük. A forgáspont az abszolút érték maximuma 1, 3 és 2, azaz 3 között:

Mivel ez a pivot nem nulla, elosztjuk a pivot-tal a vonalat, ahol található (azaz a 2. vonalat):

1. és 2. sort cserélünk:

Most elemezzük a vonalakon kívüli vonalakat. A 2. sorban A (2, 1) = 1. Kiszámoljuk

A 3. sorban A (3, 1) = 2. Kiszámítjuk

Az így kiszámított 2. és 3. sort helyettesítjük:

Mi megy a 2 oszlop pivot a maximális abszolút értéke között és , nevezetesen  :

Mivel ez a pivot nem nulla, elosztjuk a pivot-tal a vonalat, ahol található (azaz a 3. vonalat):

Cseréljük a 2. és 3. sort:

Most elemezzük a vonalakon kívüli vonalakat. Az 1. sorban A (1, 2) = van . Kiszámoljuk

A 3. sorban A (3, 2) = van . Kiszámoljuk

Az így kiszámított 1. és 3. sort helyettesítjük:

A 3. oszlopra megyünk. A forgáspont  :

Mivel ez a pivot nem nulla, elosztjuk a pivot-tal a vonalat, ahol található (azaz a 3. vonalat):

Mivel ez az elfordulás már a 3. vonal, nem szükséges felcserélni a vonalakat.

Most elemezzük a vonalakon kívüli vonalakat. Az 1. sorban A (1, 3) = van . Kiszámoljuk

A 2. sorban A (2, 3) = van . Kiszámoljuk

Az így kiszámított 1. és 2. sort helyettesítjük:

A függőleges sávtól balra lévő összes oszlop feldolgozásra került. Csökkentett méretarányú mátrix jelenlétében vagyunk, az egyik oldalon az identitásmátrix, a másikon a változók értéke. Az egyenletrendszer megoldása tehát:

2. példa

Legyen a lineáris egyenletek rendszere:

A redukált skálázott mátrix társul az .

Az elfordulási pontok az 1. és 3. index oszlopaiban helyezkednek el. Ezért egy konkrét megoldás:, amely megfelel a vektornak:

3. példa

Legyen a lineáris egyenletek rendszere:

A redukált skálázott mátrix társul az .

Nincs megoldás.

Meghatározó

Ez az algoritmus lehetővé teszi egy mátrix determinánsának kiszámítását is  :

a p száma sorban permutációk, és a pivot lépésben feljegyzett j az algoritmus.

Ha az egyik pivot nulla, akkor a mátrix determinánsa nulla, és nem invertálható.

Példa

A mátrixból indulunk ki

Ez egy valós mátrix, tehát az együttható modulusa az abszolút értéke.

Az 1. oszlopban keressük a forgást:

Az 1-es vonalat elosztjuk 2-vel, így 1-et kapunk az átlón:

A 2. és a 3. sort az 1. vonallal végzett lineáris kombinációkkal módosítjuk, így az első oszlopban nullákat kapunk (kivéve az átlót):

A csapot a 2. oszlopban keressük:

Cseréljük a 2. és 3. sort:

A 2. sort elosztjuk (3/2) -nel, így 1-t kapunk az átlón:

Az 1. és a 3. sort a 2. vonallal végzett lineáris kombinációkkal módosítjuk, így a második oszlopban nullákat kapunk (kivéve az átlót):

A 3. oszlopban keressük az elfordulást:

A 3. sort elosztjuk (4/3) -kal, így 1-t kapunk az átlón:

Az 1. és a 2. sort lineáris kombinációkkal módosítjuk a 3. sorral úgy, hogy nullákat kapjunk a harmadik oszlopban (kivéve az átlót), a mátrix ekkor:

amelyet kicsinyítenek.

Ezért érdemes a mátrix meghatározója .

Megjegyzések

  1. Gauss 1810 .
  2. Jordánia 1888 .
  3. Althoen és McLaughlin 1987 .
  4. Átdolgozása Cserpák 2014 , p.  30.
  5. Lásd például Patrick Lascaux és Raymond Théodor megjegyzéseit: Matric numerikus elemzés a mérnök művészetére , t.  1: Közvetlen módszerek [ a kiadások részletei ], P.  228 .

Hivatkozások

Kapcsolódó cikkek

Külső hivatkozás

Gaussian pivot módszer a math-linux.com oldalon