<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="de">
	<id>https://wiki-de.moshellshocker.dns64.de/index.php?action=history&amp;feed=atom&amp;title=SOR-Verfahren</id>
	<title>SOR-Verfahren - Versionsgeschichte</title>
	<link rel="self" type="application/atom+xml" href="https://wiki-de.moshellshocker.dns64.de/index.php?action=history&amp;feed=atom&amp;title=SOR-Verfahren"/>
	<link rel="alternate" type="text/html" href="https://wiki-de.moshellshocker.dns64.de/index.php?title=SOR-Verfahren&amp;action=history"/>
	<updated>2026-06-07T04:39:56Z</updated>
	<subtitle>Versionsgeschichte dieser Seite in Wikipedia (Deutsch) – Lokale Kopie</subtitle>
	<generator>MediaWiki 1.43.8</generator>
	<entry>
		<id>https://wiki-de.moshellshocker.dns64.de/index.php?title=SOR-Verfahren&amp;diff=342330&amp;oldid=prev</id>
		<title>imported&gt;PerfektesChaos: tk k</title>
		<link rel="alternate" type="text/html" href="https://wiki-de.moshellshocker.dns64.de/index.php?title=SOR-Verfahren&amp;diff=342330&amp;oldid=prev"/>
		<updated>2019-09-18T15:09:06Z</updated>

		<summary type="html">&lt;p&gt;tk k&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Neue Seite&lt;/b&gt;&lt;/p&gt;&lt;div&gt;Das &amp;#039;&amp;#039;&amp;#039;„Successive Over-Relaxation“-Verfahren&amp;#039;&amp;#039;&amp;#039; (Überrelaxationsverfahren) oder &amp;#039;&amp;#039;&amp;#039;SOR-Verfahren&amp;#039;&amp;#039;&amp;#039; ist ein [[Algorithmus]] der [[Numerische Mathematik|numerischen Mathematik]] zur näherungsweisen Lösung von [[Lineares Gleichungssystem|linearen Gleichungssystemen]]. Es ist, wie das [[Gauß-Seidel-Verfahren]] und das [[Jacobi-Verfahren]], ein spezielles [[Splitting-Verfahren]] der Form &amp;lt;math&amp;gt;A = B + (A - B)&amp;lt;/math&amp;gt; mit &amp;lt;math&amp;gt;B = (1/\omega)D + L&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
== Beschreibung des Verfahrens ==&lt;br /&gt;
Gegeben ist ein quadratisches lineares Gleichungssystem &amp;lt;math&amp;gt;A x= b&amp;lt;/math&amp;gt; mit &amp;lt;math&amp;gt;n&amp;lt;/math&amp;gt; Gleichungen und der Unbekannten &amp;lt;math&amp;gt;x&amp;lt;/math&amp;gt;.&lt;br /&gt;
Dabei sind&lt;br /&gt;
&lt;br /&gt;
: &amp;lt;math&amp;gt;A=\begin{pmatrix} a_{11} &amp;amp; a_{12} &amp;amp; \cdots &amp;amp; a_{1n} \\ a_{21} &amp;amp; a_{22} &amp;amp; \cdots &amp;amp; a_{2n} \\ \vdots &amp;amp; \vdots &amp;amp; \ddots &amp;amp; \vdots \\a_{n1} &amp;amp; a_{n2} &amp;amp; \cdots &amp;amp; a_{nn} \end{pmatrix}, \qquad x = \begin{pmatrix} x_{1} \\ x_2 \\ \vdots \\ x_n \end{pmatrix} , \qquad b = \begin{pmatrix} b_{1} \\ b_2 \\ \vdots \\ b_n \end{pmatrix}.&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Das SOR-Verfahren löst diese Gleichung nun ausgehend von einem [[Startvektor]] &amp;lt;math&amp;gt;x_0&amp;lt;/math&amp;gt; nach der [[Iteration]]svorschrift&lt;br /&gt;
&lt;br /&gt;
: &amp;lt;math&amp;gt; x^{(m+1)}_k  = (1-\omega)x^{(m)}_k + \frac{\omega}{a_{kk}} \left(b_k - \sum_{i&amp;gt;k} a_{ki}x^{(m)}_i - \sum_{i&amp;lt;k} a_{ki}x^{(m+1)}_i \right),\quad k=1,2,\ldots,n. &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Der reelle Überrelaxationsparameter &amp;lt;math&amp;gt;\omega \in (0,2)&amp;lt;/math&amp;gt; sorgt dafür, dass das Verfahren schneller konvergiert als das [[Gauß-Seidel-Verfahren]], das ein Spezialfall dieser Formel mit &amp;lt;math&amp;gt;\omega=1&amp;lt;/math&amp;gt; ist.&lt;br /&gt;
&lt;br /&gt;
== Algorithmus ==&lt;br /&gt;
Als Algorithmusskizze mit Abbruchbedingung bietet sich an:&lt;br /&gt;
&lt;br /&gt;
: &amp;#039;&amp;#039;wähle&amp;#039;&amp;#039; &amp;lt;math&amp;gt;x_0&amp;lt;/math&amp;gt;&lt;br /&gt;
: &amp;#039;&amp;#039;wiederhole&amp;#039;&amp;#039;&lt;br /&gt;
:: &amp;lt;math&amp;gt;\text{fehler} := 0&amp;lt;/math&amp;gt;&lt;br /&gt;
:: &amp;#039;&amp;#039;für&amp;#039;&amp;#039; &amp;lt;math&amp;gt;k=1&amp;lt;/math&amp;gt; &amp;#039;&amp;#039;bis&amp;#039;&amp;#039; &amp;lt;math&amp;gt;n&amp;lt;/math&amp;gt;&lt;br /&gt;
::: &amp;lt;math&amp;gt;x^{(m+1)}_k:=(1-\omega)x_k^{(m)}+\frac{\omega}{a_{k;k}}\left(b_k-\sum_{i=1}^{k-1} a_{k;i}\cdot x^{(m+1)}_i -\sum_{i=k+1}^n a_{k;i}\cdot x^{(m)}_i\right)&amp;lt;/math&amp;gt;&lt;br /&gt;
::: &amp;lt;math&amp;gt;\text{fehler}:=\max(\text{fehler}, |x^{(m+1)}_k-x^{(m)}_k|)&amp;lt;/math&amp;gt;&lt;br /&gt;
:: &amp;#039;&amp;#039;nächstes&amp;#039;&amp;#039; &amp;lt;math&amp;gt;k&amp;lt;/math&amp;gt;&lt;br /&gt;
:: &amp;lt;math&amp;gt;m := m+1&amp;lt;/math&amp;gt;&lt;br /&gt;
: &amp;#039;&amp;#039;bis&amp;#039;&amp;#039; &amp;lt;math&amp;gt;\text{fehler} &amp;lt; \text{fehlerschranke}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Dabei wurde eine [[Fehlerschranke]] als Eingangsgröße des Algorithmus angenommen; die Näherungslösung ist die vektorielle Rückgabegröße &amp;lt;math&amp;gt;x^{(m)}&amp;lt;/math&amp;gt;. Die Fehlerschranke misst hier, welche Größe die letzte Änderung des Variablenvektors hatte.&lt;br /&gt;
&lt;br /&gt;
Bei [[Dünnbesetzte Matrix|dünnbesetzten Matrizen]] reduziert sich der Aufwand des Verfahrens pro Iteration deutlich.&lt;br /&gt;
&lt;br /&gt;
== Herleitung ==&lt;br /&gt;
Das SOR-Verfahren ergibt sich mittels Relaxation des Gauß-Seidel-Verfahrens:&lt;br /&gt;
&lt;br /&gt;
: &amp;lt;math&amp;gt;x^{(m+1)}_k:=(1-\omega)x_k^{(m)}+\frac{\omega}{a_{k;k}}\left(b_k-\sum_{i=1}^{k-1} a_{k;i}\cdot x^{(m+1)}_i -\sum_{i=k+1}^n a_{k;i}\cdot x^{(m)}_i\right),&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
für &amp;lt;math&amp;gt;\omega=1&amp;lt;/math&amp;gt; erhält man also Gauß-Seidel zurück. Um das Verfahren zu analysieren, bietet sich die Formulierung als Splitting-Verfahren an, die es erlaubt, die Eigenschaften des Verfahrens zu analysieren. Die Matrix &amp;lt;math&amp;gt;A&amp;lt;/math&amp;gt; wird dazu als Summe einer [[Diagonalmatrix]] &amp;lt;math&amp;gt;D&amp;lt;/math&amp;gt; sowie zweier [[Dreiecksmatrix|strikter Dreiecksmatrizen]] &amp;lt;math&amp;gt;L&amp;lt;/math&amp;gt; und &amp;lt;math&amp;gt;R&amp;lt;/math&amp;gt; geschrieben:&lt;br /&gt;
&lt;br /&gt;
: &amp;lt;math&amp;gt;A=D+L+R&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
mit&lt;br /&gt;
&lt;br /&gt;
: &amp;lt;math&amp;gt;D = \begin{pmatrix} a_{11} &amp;amp; 0 &amp;amp; \cdots &amp;amp; 0 \\ 0 &amp;amp; a_{22} &amp;amp; \cdots &amp;amp; 0 \\ \vdots &amp;amp; \vdots &amp;amp; \ddots &amp;amp; \vdots \\0 &amp;amp; 0 &amp;amp; \cdots &amp;amp; a_{nn} \end{pmatrix}, \quad L = \begin{pmatrix} 0 &amp;amp; 0 &amp;amp; \cdots &amp;amp; 0 \\ a_{21} &amp;amp; 0 &amp;amp; \cdots &amp;amp; 0 \\ \vdots &amp;amp; \vdots &amp;amp; \ddots &amp;amp; \vdots \\a_{n1} &amp;amp; a_{n2} &amp;amp; \cdots &amp;amp; 0 \end{pmatrix}, \quad R = \begin{pmatrix} 0 &amp;amp; a_{12} &amp;amp; \cdots &amp;amp; a_{1n} \\ 0 &amp;amp; 0 &amp;amp; \cdots &amp;amp; a_{2n} \\ \vdots &amp;amp; \vdots &amp;amp; \ddots &amp;amp; \vdots \\0 &amp;amp; 0 &amp;amp; \cdots &amp;amp; 0 \end{pmatrix}.&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Das lineare Gleichungssystem ist dann äquivalent zu&lt;br /&gt;
&lt;br /&gt;
: &amp;lt;math&amp;gt;(D+\omega L) x = \omega b - (\omega R + (\omega-1) D) x &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
mit einem &amp;lt;math&amp;gt;\omega &amp;gt; 0&amp;lt;/math&amp;gt;. Die [[Iterationsmatrix]] ist dann also&lt;br /&gt;
&lt;br /&gt;
: &amp;lt;math&amp;gt;M=-(D+\omega L)^{-1}(\omega R + (\omega-1) D)&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
und das Verfahren ist konsistent und konvergiert genau dann, wenn der [[Spektralradius]] &amp;lt;math&amp;gt;\rho(M)&amp;lt;1&amp;lt;/math&amp;gt; ist.&lt;br /&gt;
&lt;br /&gt;
Obige Formulierung zur komponentenweisen Berechnung der &amp;lt;math&amp;gt;x^{(m)}_i&amp;lt;/math&amp;gt; erhält man aus dieser Matrix-Darstellung, wenn man die Dreiecksgestalt der Matrix &amp;lt;math&amp;gt;(D+\omega L)&amp;lt;/math&amp;gt; ausnutzt. Diese Matrix lässt sich direkt durch [[Gaußsches Eliminationsverfahren#Vorwärtseinsetzen|Vorwärtseinsetzen]] invertieren.&lt;br /&gt;
&lt;br /&gt;
== Konvergenz ==&lt;br /&gt;
Man kann zeigen, dass das Verfahren für eine [[Symmetrische Matrix|symmetrische]] [[positiv definit]]e Matrix &amp;lt;math&amp;gt;A&amp;lt;/math&amp;gt; für jedes &amp;lt;math&amp;gt;\omega \in (0,2)&amp;lt;/math&amp;gt; [[Grenzwert (Folge)|konvergiert]]. Um die Konvergenz gegenüber dem Gauß-Seidel-Verfahren zu beschleunigen, verwendet man heuristische Werte zwischen &amp;lt;math&amp;gt;1{,}5&amp;lt;/math&amp;gt; und &amp;lt;math&amp;gt;2{,}0&amp;lt;/math&amp;gt;. Die optimale Wahl hängt von der Koeffizientenmatrix &amp;lt;math&amp;gt;A&amp;lt;/math&amp;gt; ab. Werte &amp;lt;math&amp;gt;\omega &amp;lt; 1&amp;lt;/math&amp;gt; können gewählt werden, um eine Lösung zu stabilisieren, die ansonsten leicht divergiert.&lt;br /&gt;
&lt;br /&gt;
Das Theorem von [[William Kahan|Kahan]] (1958) zeigt, dass für &amp;lt;math&amp;gt;\omega&amp;lt;/math&amp;gt; außerhalb des Intervalls &amp;lt;math&amp;gt;(0,2)&amp;lt;/math&amp;gt; keine Konvergenz mehr vorliegt.&lt;br /&gt;
&lt;br /&gt;
Es kann gezeigt werden, dass der optimale Relaxationsparameter durch &amp;lt;math&amp;gt;\omega_{\text{opt}}=\frac{2}{1+\sqrt{1-\rho^2}}&amp;lt;/math&amp;gt; gegeben ist, wobei &amp;lt;math&amp;gt;\rho&amp;lt;/math&amp;gt; der [[Spektralradius]] der Verfahrensmatrix &amp;lt;math&amp;gt;D^{-1}(L+R)&amp;lt;/math&amp;gt; des [[Jacobi-Verfahren]]s ist.&amp;lt;ref&amp;gt;Thomas Westermann: &amp;#039;&amp;#039;Modellbildung und Simulation.&amp;#039;&amp;#039; Springer, 2010.&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Literatur ==&lt;br /&gt;
* Andreas Meister: &amp;#039;&amp;#039;Numerik linearer Gleichungssysteme&amp;#039;&amp;#039;. 3. Auflage. Vieweg, 2007, ISBN 3-8348-0431-2&lt;br /&gt;
&lt;br /&gt;
== Weblinks ==&lt;br /&gt;
* {{MathWorld |id=SuccessiveOverrelaxationMethod |title=Successive Overrelaxation-Method |author=Noel Black, Shirley Moore}}&lt;br /&gt;
* [http://mathfaculty.fullerton.edu/mathews/n2003/SORmethodMod.html Implementierung des SOR-Verfahrens] (englisch)&lt;br /&gt;
&lt;br /&gt;
== Einzelnachweise ==&lt;br /&gt;
&amp;lt;references /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Kategorie:Numerische lineare Algebra]]&lt;/div&gt;</summary>
		<author><name>imported&gt;PerfektesChaos</name></author>
	</entry>
</feed>