- Vysvětlení pomocí jednoduchého případu
- Kroky, které je třeba sledovat
- Analýza metody
- Aplikace
- Příklady metody Gauss-Seidel
- - Příklad 1
- Řešení
- - Příklad 2
- Řešení
- - Příklad 3
- Řešení
- - Příklad 4
- Řešení
- Reference
Gauss-Seidel metoda je iterační postup pro zjištění přibližné řešení soustavy lineárních rovnic s libovolně zvolenou přesností. Metoda je aplikována na čtvercové matice s nenulovými prvky v jejich diagonálech a konvergence je zaručena, pokud je matice diagonálně dominantní.
Vytvořil jej Carl Friedrich Gauss (1777-1855), který v roce 1823 dal soukromou demonstraci jednomu ze svých studentů. Později byl formálně publikován Philippem Ludwigem von Seidelem (1821-1896) v roce 1874, odtud název obou matematiků.
Obrázek 1. Gauss-Seidelova metoda rychle konverguje, aby získala řešení soustavy rovnic. Zdroj: F. Zapata.
Pro úplné porozumění této metodě je nutné vědět, že matice je diagonálně dominantní, když je absolutní hodnota diagonálního prvku každého řádku větší nebo rovna součtu absolutních hodnot ostatních prvků stejného řádku.
Matematicky je vyjádřeno takto:
Vysvětlení pomocí jednoduchého případu
Pro ilustraci toho, z čeho se skládá Gaussova-Seidelova metoda, vezmeme jednoduchý případ, ve kterém hodnoty X a Y lze nalézt v systému 2 × 2 lineárních rovnic uvedených níže:
5X + 2Y = 1
X - 4Y = 0
Kroky, které je třeba sledovat
1 - Nejprve je nutné zjistit, zda je konvergence bezpečná. Okamžitě je pozorováno, že ve skutečnosti jde o diagonálně dominantní systém, protože v prvním řádku má první koeficient vyšší absolutní hodnotu než ostatní v prvním řádku:
-5 -> - 2-
Stejně tak je diagonálně dominantní i druhý koeficient ve druhé řadě:
- 4 -> - 1-
2 - Proměnné X a Y jsou vymazány:
X = (1 - 2R) / 5
Y = X / 4
3 - Je vložena libovolná počáteční hodnota, nazvaná „seed“: Xo = 1, I = 2.
4 - Začne iterace: pro získání první aproximace X1, Y1 je semeno nahrazeno v první rovnici z kroku 2 a výsledek ve druhé rovnici z kroku 2:
X1 = (1 - 2 I) / 5 = (1 - 2 x 2) / 5 = -3/5
Y1 = X1 / 4 = (-3/5) / 4 = -3/20
5- Podobným způsobem postupujeme k získání druhé aproximace řešení soustavy rovnic:
X2 = (1 - 2 Y1) / 5 = (1 - 2x (-3/20)) / 5 = 13/50
Y2 = X2 / 4 = (13/50) / 4 = 13/200
6. Třetí iterace:
X3 = (1 - 2 Y2) / 5 = (1 - 2 (13/200)) / 5 = 87/500
Y3 = X3 / 4 = (87/500) / 4 = 87/2000
7- Čtvrtá iterace, jako poslední iterace tohoto ilustrativního případu:
X4 = (1 - 2 Y3) / 5 = (1 - 2 (87/2000)) / 5 = 913/5000
Y4 = X4 / 4 = (913/5000) / 4 = 913/20000
Tyto hodnoty docela dobře souhlasí s řešením nalezeným jinými metodami rozlišení. Čtečka to může rychle zkontrolovat pomocí online matematického programu.
Analýza metody
Jak je vidět, v Gauss-Seidelově metodě musí být přibližné hodnoty získané pro předchozí proměnnou ve stejném kroku nahrazeny následující proměnnou. Tím se odlišuje od jiných iteračních metod, jako jsou Jacobiho, u nichž každý krok vyžaduje aproximaci předchozí fáze.
Metoda Gauss-Seidel není paralelní procedura, zatímco metoda Gauss-Jordan je. To je také důvod, že metoda Gauss-Seidel má rychlejší konvergenci - v méně krocích - než metoda Jordánska.
Pokud jde o diagonálně dominantní maticový stav, není to vždy splněno. Ve většině případů však stačí, aby řádky byly nahrazeny původním systémem, aby byla podmínka splněna. Kromě toho metoda téměř vždy konverguje, i když není splněna podmínka diagonální dominance.
Předchozí výsledek získaný čtyřmi iteracemi Gauss-Seidelovy metody lze zapsat v desítkové podobě:
X4 = 0,1826
Y4 = 0,04565
Přesné řešení navrhovaného systému rovnic je:
X = 2/11 = 0,1818
Y = 1/22 = 0,04545.
Díky pouhým 4 iteracím získáte výsledek s tisícinovou přesností (0,001).
Obrázek 1 ukazuje, jak se následné iterace rychle přibližují k přesnému řešení.
Aplikace
Metoda Gauss-Seidel není omezena pouze na systém 2 × 2 lineárních rovnic. Předchozí postup lze zobecnit k vyřešení lineárního systému n rovnic s n neznámými, který je znázorněn v matici jako je tato:
A X = b
Kde A je matice nxn, zatímco X je složka vektoru n proměnných n, které mají být vypočteny; a b je vektor obsahující hodnoty nezávislých termínů.
Pro zobecnění posloupnosti iterací aplikovaných v ilustrativním případě na systém nxn, ze kterého se má vypočítat proměnná Xi, se použije následující vzorec:
V této rovnici:
- k je index pro hodnotu získanou iterací k.
-k + 1 označuje novou hodnotu v následujícím.
Konečný počet iterací je stanoven, když se hodnota získaná iterací k + 1 liší od hodnoty získané bezprostředně před tím, o hodnotu ε, která je přesně požadovanou přesností.
Příklady metody Gauss-Seidel
- Příklad 1
Napište obecný algoritmus, který umožňuje výpočet vektoru přibližných řešení X lineárního systému rovnic nxn, vzhledem k matici koeficientů A, vektoru nezávislých výrazů b, počtu iterací (i ter) a počáteční hodnotě nebo "semenu" „vektoru X.
Řešení
Algoritmus se skládá ze dvou „To“ cyklů, jeden pro počet iterací a druhý pro počet proměnných. Bylo by to následující:
Pro k ∊
Pro i ∊
X: = (1 / A) * (b - ∑ j = 1 n (A * X) + A * X)
- Příklad 2
Zkontrolujte fungování předchozího algoritmu pomocí jeho aplikace v bezplatném a volně použitelném matematickém softwaru SMath Studio, který je k dispozici pro Windows a Android. Vezměme si příklad matice 2 × 2, která nám pomohla ilustrovat Gauss-Seidelovu metodu.
Řešení
Obrázek 2. Řešení soustavy rovnic příkladu 2 x 2 pomocí softwaru SMath Studio. Zdroj: F. Zapata.
- Příklad 3
Aplikujte Gauss-Seidelův algoritmus pro následující soustavu rovnic 3 × 3, která byla dříve uspořádána tak, aby koeficienty diagonály byly dominantní (tj. Větší absolutní hodnoty než absolutní hodnoty koeficientů stejný řádek):
9 X1 + 2 X2 - X3 = -2
7 X1 + 8 X2 + 5 X3 = 3
3 X1 + 4 X2 - 10 X3 = 6
Použijte nulový vektor jako semeno a zvažte pět iterací. Komentář k výsledku.
Řešení
Obrázek 3. Řešení soustavy rovnic řešeného příkladu 3, pomocí SMath Studio. Zdroj: F. Zapata.
Pro stejný systém s 10 iteracemi namísto 5 se získají následující výsledky: X1 = -0,485; X2 = 1,0123; X3 = -0,3406
To nám říká, že pět iterací stačí k získání tří desetinných míst s přesností a že metoda rychle konverguje k řešení.
- Příklad 4
Pomocí výše uvedeného algoritmu Gauss-Seidel vyhledejte řešení níže uvedeného systému 4 × 4 rovnic:
10 x 1 - x 2 + 2 x 3 + 0 x 4 = 6
-1 x 1 + 11 x 2 - 1 x 3 + 3 x 4 = 25
2 x 1 - 1 x 2 + 10 x 3 - 1 x 4 = -11
0 x 1 + 3 x 2 - 1 x 3 + 8 x 4 = 15
Chcete-li spustit metodu, použijte toto semeno:
x1 = 0, x2 = 0, x3 = 0 a x4 = 0
Zvažte 10 iterací a odhadněte chybu výsledku ve srovnání s iteračním číslem 11.
Řešení
Obrázek 4. Řešení soustavy rovnic řešeného příkladu 4, pomocí programu SMath Studio. Zdroj: F. Zapata.
Při porovnání s další iterací (číslo 11) je výsledek totožný. Největší rozdíly mezi oběma iteracemi jsou řádově 2 × 10-8, což znamená, že zobrazené řešení má přesnost nejméně sedm desetinných míst.
Reference
- Iterativní metody řešení. Gauss-Seidel. Obnoveno z: cimat.mx
- Numerické metody. Gauss-Seidel. Obnoveno z: test.cua.uam.mx
- Numerické: Gauss-Seidelova metoda. Obnoveno z: aprendeenlinea.udea.edu.co
- Wikipedia. Gaussova-Seidelova metoda. Obnoveno z: en. wikipedia.com
- Wikipedia. Gaussova-Seidelova metoda. Obnoveno z: es.wikipedia.com