Gauß-Seidel-Verfahren
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
- a1;1⋅x1+⋯+a1;n⋅xna2;1⋅x1+⋯+a2;n⋅xnan;1⋅x1+⋯+an;n⋅xn==⋮=b1b2bn
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:
- xk(m+1):=ak;k1(bk−i=1∑k−1ak;i⋅xi(m+1)−i=k+1∑nak;i⋅xi(m)),
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ässt 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
- xk(m):=xk(m+1)
- xk(m+1):=ak;k1(bk−i=1∑k−1ak;i⋅xi(m+1)−i=k+1∑nak;i⋅xi(m))
- fehler:=max(fehler;∣xk(m+1)−xk(m)∣)
- 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
- A=L+D+U
In jedem Iterationsschritt gilt dann
Dx(neu)=b−Lx(neu)−Ux(alt). Nach Umstellen ergibt sich formal
- (D+L)x(neu)=b−Ux(alt) und daraus x(neu)=(D+L)−1(b−Ux(alt)).
Man legt dann einen Startvektor
x(0) fest und setzt ihn in die Iterationsvorschrift ein:
- x(k+1)=−(D+L)−1Ux(k)+(D+L)−1b.
Da es der erste Iterationsschritt ist, hat dabei
k den Wert Null. Das Ergebnis der Rechnung ist ein erster Näherungswert
x(1) für den gesuchten Lösungsvektor
x. Diesen Näherungswert kann man seinerseits in die Iterationsvorschrift einsetzen und gewinnt einen besseren Näherungswert
x(2), 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:
- x(0),x(1),x(2),⋯→x
Diagonaldominanz und Konvergenz
Die Konvergenzgeschwindigkeit des Verfahrens hängt sowohl vom
Spektralradius der Iterationsmatrix
−(D+L)−1U als auch von der Nummerierung der Unbekannten ab.
Allgemein gilt: Ist
A strikt diagonaldominant, sind also sowohl
D−1U als auch
D−1L "kleine"
Matrizen im Sinne der
Operatornorm (z.B. der Spektralnorm), ist also die Bedingung
- ∥D−1L∥+∥D−1U∥<1
erfüllt, so ist das Verfahren
konvergent. In diesem Falle ist der
Fixpunktsatz von Banach anwendbar. Dabei ist die Kontraktionskonstante des Gauß-Seidel-Verfahrens kleinergleich der Kontraktionskonstante des Jabobi-Verfahrens.
Das einfachste und gebräuchlichste Kriterium für Diagonaldominanz ergibt sich in der
Supremumsnorm ∥x∥:=kmax∣xk∣ der Vektoren und deren induzierter Matrixnorm
∥A∥:=kmaxi∑∣aki∣. Es verlangt die Erfüllung des Zeilensummenkriteriums, also der
Ungleichung
- i=1, i=/k∑n∣aki∣<∣akk∣ für k=1,…,n.
Je größer die kleinste
Differenz zwischen rechten und linken Seiten der
Ungleichung ist, desto schneller konvergiert das Verfahren.
Anwendungen
So seltsam es auch klingen mag, die Stärke der Mathematik beruht auf dem Vermeiden jeder unnötigen Annahme und auf ihrer großartigen Einsparung an Denkarbeit.
Ernst Mach
Anbieterkеnnzeichnung: Mathеpеdιa von Тhοmas Stеιnfеld
• Dοrfplatz 25 • 17237 Blankеnsее
• Tel.: 01734332309 (Vodafone/D2) •
Email: cο@maτhepedιa.dе