Zum Inhalt springen
L

Wikipedia · einfach zusammengefasst · Stand

Gauß-Seidel-Verfahren

In der numerischen Mathematik ist das Gauß-Seidel-Verfahren oder Einzelschrittverfahren (nach Carl Friedrich Gauß und Ludwig Seidel) ein Algorithmus zur …

Inhalt5 Abschnitte
  1. 1. Grundidee und Ablauf
  2. 2. Abbruch und Rechenaufwand
  3. 3. Matrixform
  4. 4. Beispiel
  5. 5. Konvergenz, Anwendungen und nichtlineare Erweiterung

Grundidee und Ablauf

Das Gauß-Seidel-Verfahren ist ein iteratives Verfahren zur näherungsweisen Lösung eines linearen Gleichungssystems mit n Variablen. Anders als ein exaktes Lösungsverfahren erzeugt es aus einem Startvektor schrittweise bessere Näherungen für den Lösungsvektor.

Für die Gleichungen a₁₁x₁+…+a₁ₙxₙ=b₁, …, aₙ₁x₁+…+aₙₙxₙ=bₙ wird im Iterationsschritt m+1 jede Gleichung nach ihrer zugehörigen Variablen aufgelöst:

x_k^(m+1) = 1/a_kk · (b_k − Σ_(i=1)^(k−1) a_ki x_i^(m+1) − Σ_(i=k+1)^n a_ki x_i^(m)), k=1,…,n.

Entscheidend ist: Bereits berechnete Werte des aktuellen Durchgangs x_i^(m+1) werden sofort verwendet. Für noch nicht berechnete Variablen werden die Werte des vorherigen Durchgangs x_i^(m) benutzt. Beim Jacobi-Verfahren würden dagegen ausschließlich Werte des vorherigen Iterationsschritts eingesetzt.

So entsteht die Folge x^(0), x^(1), x^(2), … → x. Sie nähert sich dem Lösungsvektor x nur dann an, wenn das Verfahren konvergiert. Alle Diagonalelemente a_kk müssen von 0 verschieden sein, weil durch sie dividiert wird.

Abbruch und Rechenaufwand

Der Startvektor x^(0) kann willkürlich gewählt werden. In jedem Durchgang wird zusätzlich der größte Betrag einer Änderung gespeichert:

fehler := max(fehler, |x_k^(m+1) − x_k^(m)|).

Nach dem Berechnen aller n Komponenten wird m um 1 erhöht. Das Verfahren endet, wenn fehler < fehlerschranke gilt. Die Fehlerschranke beschreibt also, wie klein die letzte Änderung des Variablenvektors sein muss.

Das Verfahren ist inhärent sequentiell: Bevor eine Gleichung bearbeitet werden kann, müssen die Ergebnisse der vorherigen Gleichungen vorliegen. Daher eignet es sich nur eingeschränkt für Parallelrechner, insbesondere bei dünnbesetzten Matrizen. Bei solchen Matrizen, die viele Nulleinträge besitzen, sinkt jedoch der Aufwand pro Iteration deutlich.

Matrixform

Für das Gleichungssystem A·x=b wird A in drei Teile zerlegt:

A = L + D + U.

Dabei ist D die Diagonalmatrix, L eine strikte untere Dreiecksmatrix und U eine strikte obere Dreiecksmatrix. Ein Iterationsschritt erfüllt zunächst

D x^(neu) = b − L x^(neu) − U x^(alt).

Daraus folgt

(D+L)x^(neu) = b − Ux^(alt)

und formal

x^(neu) = (D+L)⁻¹(b−Ux^(alt)).

Mit einem Startvektor x^(0) lautet die Iterationsvorschrift:

x^(k+1) = −(D+L)⁻¹U x^(k) + (D+L)⁻¹b.

Der Ausdruck −(D+L)⁻¹U heißt Iterationsmatrix.

Beispiel

Gegeben sind

A = ((16, 3), (7, −11)) und b = (11, 13)ᵀ.

Die Zerlegung in eine untere Dreiecksmatrix einschließlich Diagonale und eine strikte obere Dreiecksmatrix ist

A = L_* + U = ((16, 0), (7, −11)) + ((0, 3), (0, 0)).

Mit T = −L_⁻¹U und C = L_⁻¹b wird x^(k+1)=Tx^(k)+C. Näherungsweise ergeben sich

T = ((0,000, −0,1875), (0,000, −0,1194))

und C = (0,6875, −0,7439)ᵀ.

Für den Startvektor x^(0)=(1,0; 1,0)ᵀ ergeben die Iterationen unter anderem x^(1)=(0,5000; −0,8636)ᵀ, x^(2)=(0,8494; −0,6413)ᵀ und x^(4)=(0,8127; −0,6646)ᵀ. Ab x^(6) und x^(7) erhält man näherungsweise (0,8122; −0,6650)ᵀ. Der Algorithmus konvergiert damit gegen

x=A⁻¹b ≈ (0,8122; −0,6650)ᵀ.

Konvergenz, Anwendungen und nichtlineare Erweiterung

Das Verfahren konvergiert linear, wenn der Spektralradius der Iterationsmatrix T=−(D+L)⁻¹U kleiner als 1 ist. Der Spektralradius ist der größte Betrag eines Eigenwerts. Je kleiner er ist, desto schneller ist die Konvergenz. Im gegenteiligen Fall divergiert das Verfahren, wenn die rechte Seite einen Anteil eines Eigenvektors zu einem Eigenwert mit Betrag größer als 1 enthält.

Da der Spektralradius praktisch meist schwer zu bestimmen ist, verwendet man hinreichende Kriterien über eine Matrixnorm. Eine besonders gebräuchliche Bedingung ist strikte Diagonaldominanz nach Zeilen:

Σ_(i=1, i≠k)^n |a_ki| < |a_kk| für k=1,…,n.

Die Summe der Beträge aller Nebendiagonalelemente einer Zeile muss also kleiner sein als der Betrag des Diagonalelements. Je größer die kleinste Differenz zwischen rechter und linker Seite dieser Ungleichung ist, desto schneller konvergiert das Verfahren. Zeilen und Spalten können umnummeriert werden, um möglichst große Matrixelemente auf die Diagonale zu bringen; bei Zeilenvertauschungen muss auch die rechte Seite des Gleichungssystems vertauscht werden.

Für große dünnbesetzte Gleichungssysteme aus der Diskretisierung partieller Differentialgleichungen ist das Verfahren ungeeignet. Es wird jedoch als Vorkonditionierer in Krylow-Unterraum-Verfahren oder als Glätter in Mehrgitterverfahren eingesetzt.

Die Idee lässt sich auf nichtlineare Gleichungssysteme f(x)=g übertragen. Im i-ten Schritt wird die i-te Gleichung nach x_i^(k+1) gelöst, während für vorherige Variablen die neuen und für folgende Variablen die bisherigen Werte verwendet werden:

f_i(x_1^(k+1), …, x_(i−1)^(k+1), x_i^(k+1), x_(i+1)^k, …, x_n^k)=g_i.

Dieses Auflösen erfolgt in der Regel selbst durch ein weiteres iteratives Verfahren für nichtlineare Gleichungen. Zur Unterscheidung vom linearen Verfahren heißt dies häufig Gauß-Seidel-Prozess; seine Konvergenz folgt nach dem Banachschen Fixpunktsatz ebenfalls linear.

Weiterlesen

Carl Friedrich Gauß Gauß-Newton-Verfahren, ein Verfahren zur Lösung nichtlinearer Gleichungen; Gauß-Seidel-Verfahren, ein Verfahren zur Lösung von linearen Gleichungssystemen … Algorithmus Algorithmen bestehen aus endlich vielen, wohldefinierten Einzelschritten. ... Damit können sie zur Ausführung in ein Computerprogramm implementiert, aber auch in … Lineares Gleichungssystem Die Cramersche Regel verwendet Determinanten, um Formeln für die Lösung eines quadratischen linearen Gleichungssystems zu erzeugen, wenn dieses eindeutig lösbar … Jacobi-Verfahren Das Jacobi-Verfahren gehört zu den frühen iterativen Alternativen zu direkten Lösern wie gaußsche Elimination, welche zwar exakt sind jedoch für Rundungsfehler … SOR-Verfahren Das „Successive Over-Relaxation“-Verfahren (Überrelaxationsverfahren) oder SOR-Verfahren ist ein Algorithmus der numerischen Mathematik zur näherungsweisen … Gaußsches Eliminationsverfahren Es ist ein wichtiges Verfahren zum Lösen von linearen Gleichungssystemen und beruht darauf, dass Äquivalenzumformungen zwar das Gleichungssystem ändern, aber … Iteration Iteration (von lateinisch iterare ,wiederholen') beschreibt allgemein einen Prozess mehrfachen Wiederholens gleicher oder ähnlicher Handlungen zur … Parallelrechner Pipelining. Bearbeiten. Problemstellungen, bei denen größere Datenmengen in mehreren aufeinander folgenden Schritten verarbeitet werden, sogenanntes Pipelining. Dünnbesetzte Matrix In der numerischen Mathematik bezeichnet man als dünnbesetzte oder schwachbesetzte Matrix (englisch sparse matrix) eine Matrix, bei der so viele Einträge … Hauptdiagonale Die Hauptdiagonale einer Matrix besteht in der Mathematik aus denjenigen Elementen der Matrix, die auf einer gedachten diagonal von links oben unter 45° … Gleichung Unter einer Gleichung versteht man in der Mathematik eine Aussage über die Gleichheit zweier Terme, die mit Hilfe des Gleichheitszeichens („=“) symbolisiert … Matrix (Mathematik) In der Mathematik versteht man unter einer Matrix (Plural Matrizen) eine rechteckig angeordnete Tabelle von sogenannten Elementen.