Zum Inhalt springen

Splitting-Verfahren

aus Wikipedia, der freien Enzyklopädie

Vorlage:Hinweisbaustein

In der numerischen Mathematik sind Splitting-Verfahren klassische iterative Verfahren zum Lösen linearer Gleichungssysteme <math>Ax=b</math> mit einer Matrix <math>A\in\Complex^{n\times n}</math> und rechter Seite <math>b\in\Complex^n.</math> Im Unterschied zu direkten Verfahren nähert man sich dabei ausgehend von einer Startnäherung schrittweise der gesuchten Lösung an und bricht ab, sobald die Genauigkeit hoch genug ist.

Herleitung[Bearbeiten]

Zu Beginn spalten wir die Systemmatrix auf

<math>A = B + (A-B),</math>

wobei <math>B\in\Complex^{n\times n}</math> invertierbar ist. Nun können wir das lineare Gleichungssystem äquivalent umformen

<math>

A x=b \quad \iff \quad B^{-1}(B+(A-B))x = B^{-1}b. </math>

Daraus ergibt sich die Fixpunktgleichung

<math>

x = B^{-1}(B-A)x + B^{-1}b. </math>

Setzt man

<math>

M := B^{-1}(B-A) = I - B^{-1}A, </math>

wobei <math>I</math> die Einheitsmatrix bezeichnet, so folgt die Fixpunktiteration.

Iterationsvorschrift[Bearbeiten]

Das zugehörige Splitting-Verfahren lautet:

  1. Wähle einen Startvektor <math>x_0\in\Complex^n</math>, beispielsweise <math>x_0=b</math>.
  2. Berechne iterativ für <math> k \in \mathbb{N} </math> mit vorheriger Schätzung <math>x_{k-1}</math> und <math> \; M = (I-B^{-1}A) </math> den nächsten Vektor
    <math>

x_k \leftarrow Mx_{k-1}+B^{-1}b . </math>

Richardson-Iteration[Bearbeiten]

Mit dem Residuum

<math>

r_{k-1}=b-Ax_{k-1} </math>

lässt sich die Iteration schreiben als

<math>

x_k=x_{k-1}+B^{-1}r_{k-1}, </math>

denn <math> x_{k-1}+B^{-1}(b-Ax_{k-1}) = (I-B^{-1}A)x_{k-1}+B^{-1}b </math>.
Damit ist jedes Splitting-Verfahren dieser Form äquivalent zu einer vorkonditionierten Richardson-Iteration mit Vorkonditionierer <math>B</math>. Für <math>B=I</math> erhält man die klassische Richardson-Iteration.

Abbruchkriterium[Bearbeiten]

Die Iteration kann abgebrochen werden, sobald die Norm des Residuums <math> r_k=b-Ax_k </math> eine vorgegebene Fehlerschranke unterschreitet.

Konvergenz[Bearbeiten]

Mit dem Fehler zu einem Fixpunkt <math> e_k := x_k - x^* </math> lässt sich der Fehler ausdrücken

<math>

e_k = M^k e_0 . </math>

<math> M^k \to \textbf{0} </math> konvergiert genau dann, wenn der Spektralradius der Iterationsmatrix <math>M</math> kleiner als <math>1</math> ist, i.e.

<math>

\rho(M)<1. </math>

Dabei bezeichnet <math>\sigma(M)</math> das Spektrum von <math>M</math>, also die Menge der Eigenwerte von <math>M</math>, und <math> \rho(M) := \max_{\lambda \in \sigma(M)} |\lambda| </math> den Spektralradius von <math>M </math>.
Mit Hilfe des banachschen Fixpunktsatzes folgt außerdem die lineare Konvergenzgeschwindigkeit der gesamten Verfahrensklasse. Je kleiner der Spektralradius ist, desto schneller konvergiert das Verfahren.

Falls sich <math>B</math> und <math>A</math> nur wenig unterscheiden, kann man mit dem Störungslemma zeigen, dass auch der Spektralradius von <math>M</math> klein ist.

Übersicht klassischer Splitting-Verfahren[Bearbeiten]

Die klassischen Splitting-Verfahren basieren auf der Zerlegung <math>A = L + D + R</math>, wobei <math>D := \operatorname{diag}(A)</math> die Diagonalmatrix, <math>L := \operatorname{tril}(A,-1)</math> die strikte untere Dreiecksmatrix und <math>R := \operatorname{triu}(A,1)</math> die strikte obere Dreiecksmatrix von <math>A</math> bezeichnet.

Aufwand und praktische Bedeutung[Bearbeiten]

Damit ergibt sich ein Gegensatz zwischen schneller Konvergenz und geringen Kosten pro Iteration:

  • Schnelle Konvergenz wird erreicht, wenn <math>B</math> die Matrix <math>A</math> gut approximiert.
  • Geringe Kosten pro Iteration erhält man, wenn <math>B</math> einfach invertierbar ist.

Insgesamt sind Splitting-Verfahren für viele praktische Probleme als eigenständige Verfahren zu langsam. Aufgrund ihrer einfachen Anwendbarkeit eignen sie sich jedoch gut als Vorkonditionierer. Darüber hinaus können viele Splitting-Verfahren als Glätter in einem Mehrgitterverfahren verwendet werden.

Modifikationen[Bearbeiten]

Man unterscheidet zwischen stationären Verfahren mit konstanter Iterationsmatrix und instationären Verfahren, wo die Matrizen <math>M</math> vom Index <math>i</math> abhängen dürfen.

Literatur[Bearbeiten]

  • Andreas Meister: Numerik linearer Gleichungssysteme. 2. Auflage. Vieweg, Wiesbaden 2005, ISBN 3-528-13135-7.
  • Christian Kanzow: Numerik linearer Gleichungssysteme. Direkte und iterative Verfahren. Springer, Berlin/Heidelberg 2005, ISBN 978-3-540-20654-5.
  • Wolfgang Hackbusch: Iterative Lösung großer schwachbesetzter Gleichungssysteme. 2. Auflage. Teubner, Stuttgart 1993, ISBN 3-519-12372-X.