Gauß-Seidel-Verfahren

Algorithmus zur näherungsweisen Lösung von linearen Gleichungssystemen
Dies ist eine alte Version dieser Seite, zuletzt bearbeitet am 2. März 2006 um 20:36 Uhr durch 134.34.53.219 (Diskussion) (Beschreibung des Verfahrens). Sie kann sich erheblich von der aktuellen Version unterscheiden.

In der numerischen Mathematik ist das Gauß-Seidel-Verfahren oder Einzelschrittverfahren, (nach Carl Friedrich Gauß und Ludwig Seidel) ein Algorithmus zur näherungsweisen Lösung von linearen Gleichungssystemen. Es ist, wie das Jacobi-Verfahren, ein spezielles Splitting-Verfahren. Das Verfahren wurde zuerst von Gauß entwickelt, aber nicht veröffentlicht, später wurde es, bevor dessen Anwendung von Gauß bekannt war, von Seidel veröffentlicht.

Entwickelt wurde das Verfahren, da das Gaußsche Eliminationsverfahren, ein exakter Löser, für Rechenfehler sehr anfällig ist. Eine iterative Vorgehensweise hat diesen Nachteil nicht.

Beschreibung des Verfahrens

Gegeben ist ein lineares Gleichungssystem in n Variablen mit n Gleichungen.

 

Um dieses zu lösen, wird die k-te Gleichung nach der k-ten Variablen xk aufgelöst, d.h. für den (m+1)-ten Iterationsschritt:

 ,

wobei die vorher berechneten Werte des aktuellen Iterationsschritts mit verwendet werden, im Gegensatz zum Jacobi-Verfahren. Diese Ersetzung wird, ausgehend von einer willkürlichen Startbelegung der Variablen, sukzessive wiederholt. Als minimale Bedingung läßt sich hier festhalten, dass die Diagonalelemente ak;k von Null verschieden sein müssen.

Als Algorithmusskizze mit Abbruchbedingung ergibt sich:

wiederhole
fehler := 0;
für k=1 bis n
 ;
 
 
nächstes k
m := m+1
bis fehler<fehlerschranke

Dabei wurde die Erstbelegung des Variablenvektors und eine Fehlerschranke als Eingangsgrößen des Algorithmus angenommen, die Näherungslösung ist die vektorielle Rückgabegröße. Die Fehlerschranke misst hier, welche Größe die letzte Änderung des Variablenvektors hatte.

Herleitung des Verfahrens

Beschreibung des Verfahrens in Matrixschreibweise

Die Matrix   des linearen Gleichungssystems   wird zur Vorbereitung in eine Diagonalmatrix  , eine strikte untere Dreiecksmatrix   und eine strikte obere Dreiecksmatrix   zerlegt, so dass gilt:

 

In jedem Iterationsschritt gilt dann  . Nach Umstellen ergibt sich formal

  und daraus  .

Man legt dann einen Startvektor   fest und setzt ihn in die Iterationsvorschrift ein:

 .

Da es der erste Iterationsschritt ist, hat dabei   den Wert Null. Das Ergebnis der Rechnung ist ein erster Näherungswert   für den gesuchten Lösungsvektor  . Diesen Näherungswert kann man seinerseits in die Iterationsvorschrift einsetzen und gewinnt einen besseren Näherungswert  , den man wieder einsetzen kann. Wiederholt man diesen Vorgang, gewinnt man eine Folge von Werten, die sich dem Lösungsvektor immer mehr annähern, wenn die Konvergenzbedingungen (s. unten) erfüllt sind:

 

Diagonaldominanz und Konvergenz

Die Konvergenzgeschwindigkeit des Verfahrens hängt vom Spektralradius der Iterationsmatrix   als auch von der Nummerierung der Unbekannten ab.

Allgemein gilt: Ist   strikt diagonaldominant, sind also sowohl   als auch   "kleine" Matrizen im Sinne der Operatornorm (z.B. der Spektralnorm), ist also die Bedingung

 

erfüllt, so ist das Verfahren konvergent. In diesem Falle ist der Fixpunktsatz von Banach anwendbar.

Das einfachste und gebräuchlichste Kriterium für Diagonaldominanz ergibt sich in der Supremumsnorm   der Vektoren und deren induzierter Matrixnorm  . Es verlangt die Erfüllung des Zeilensummenkriteriums, also der Ungleichung

  für  .

Je größer die kleinste Differenz zwischen rechten und linken Seiten der Ungleichung ist, desto schneller konvergiert das Verfahren.

Anwendungen

Für moderne Anwendungen wie die Lösung großer dünnbesetzter Gleichungssysteme die aus der Diskretisierung partieller Differentialgleichungen stammen, ist das Verfahren ungeeignet. Es wird jedoch mit Erfolg als Vorkonditionierer in Krylow-Unterraum-Verfahren oder als Glätter in Mehrgitterverfahren eingesetzt.