<?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=MINRES-Verfahren</id>
	<title>MINRES-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=MINRES-Verfahren"/>
	<link rel="alternate" type="text/html" href="https://wiki-de.moshellshocker.dns64.de/index.php?title=MINRES-Verfahren&amp;action=history"/>
	<updated>2026-06-08T10:38:58Z</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=MINRES-Verfahren&amp;diff=2592429&amp;oldid=prev</id>
		<title>imported&gt;Ismael 203 og lele: /* growthexperiments-addlink-summary-summary:1|0|2 */</title>
		<link rel="alternate" type="text/html" href="https://wiki-de.moshellshocker.dns64.de/index.php?title=MINRES-Verfahren&amp;diff=2592429&amp;oldid=prev"/>
		<updated>2024-12-10T20:53:46Z</updated>

		<summary type="html">&lt;p&gt;&lt;span class=&quot;autocomment&quot;&gt;growthexperiments-addlink-summary-summary:1|0|2&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Neue Seite&lt;/b&gt;&lt;/p&gt;&lt;div&gt;[[Datei:Minres illustration de.svg|mini|Ein Vergleich der Norm des Fehlers sowie des Residuums beim [[CG-Verfahren]] (blau) und dem MINRES-Verfahren (grün). Die verwendete Matrix stammt aus einem 2d-[[Randwertproblem]].]]&lt;br /&gt;
&lt;br /&gt;
Das &amp;#039;&amp;#039;&amp;#039;MINRES-Verfahren&amp;#039;&amp;#039;&amp;#039; (von {{enS}} &amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039;min&amp;#039;&amp;#039;&amp;#039;imum &amp;#039;&amp;#039;&amp;#039;res&amp;#039;&amp;#039;&amp;#039;idual&amp;#039;&amp;#039; „minimales Residuum“) ist ein [[Krylow-Unterraum-Verfahren]] zur iterativen Lösung von symmetrischen linearen Gleichungssystemen. Es wurde 1975 von den Mathematikern [[Christopher Conway Paige]] und [[Michael Alan Saunders]] vorgeschlagen.&amp;lt;ref&amp;gt;{{Literatur | Autor=Christopher C. Paige, Michael A. Saunders | Titel=Solution of sparse indefinite systems of linear equations | Sammelwerk=[[SIAM Journal on Numerical Analysis]] | Band=12 | Nummer=4 | Datum=1975}}&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Im Unterschied zum [[CG-Verfahren]] wird beim MINRES-Verfahren nicht vorausgesetzt, dass die Matrix [[Definitheit|positiv definit]] ist, nur die Symmetrie der Matrix wird zwingend vorausgesetzt.&lt;br /&gt;
&lt;br /&gt;
== Eigenschaften des MINRES-Verfahrens ==&lt;br /&gt;
Das MINRES-Verfahren berechnet iterativ eine Näherungslösung eines linearen Gleichungssystems der Form&lt;br /&gt;
: &amp;lt;math&amp;gt;Ax = b&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Dabei ist &amp;lt;math&amp;gt;A\in\mathbb{R}^{n\times n}&amp;lt;/math&amp;gt; eine [[symmetrische Matrix]] und &amp;lt;math&amp;gt;b\in\mathbb{R}^n&amp;lt;/math&amp;gt; die rechte Seite.&lt;br /&gt;
&lt;br /&gt;
Hierzu wird die Norm des Residuums &amp;lt;math&amp;gt;r(x) := b - Ax&amp;lt;/math&amp;gt; im &amp;lt;math&amp;gt;k&amp;lt;/math&amp;gt;-dimensionalen [[Krylowraum]]&lt;br /&gt;
: &amp;lt;math&amp;gt;V_k = x_0+\operatorname{span}\{r_0, Ar_0\ldots,A^{k-1}r_0\}.&amp;lt;/math&amp;gt;&lt;br /&gt;
minimiert. Dabei ist &amp;lt;math&amp;gt;x_0\in\mathbb{R}^n&amp;lt;/math&amp;gt; ein Startwert und &amp;lt;math&amp;gt;r_0 := r(x_0)&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Genauer definieren wir die Näherungslösungen &amp;lt;math&amp;gt;x_k&amp;lt;/math&amp;gt; durch&lt;br /&gt;
: &amp;lt;math&amp;gt;x_k := \mathrm{argmin}_{x\in V_k} \|r(x)\|&amp;lt;/math&amp;gt;.&lt;br /&gt;
Dabei ist &amp;lt;math&amp;gt;\|\cdot\|&amp;lt;/math&amp;gt; die [[euklidische Norm]] im &amp;lt;math&amp;gt;\mathbb{R}^n&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Wegen der Symmetrie von &amp;lt;math&amp;gt;A&amp;lt;/math&amp;gt; ist es dabei im Gegensatz zum [[GMRES-Verfahren]] möglich, diesen Minimierungsprozess rekursiv durchzuführen. Im &amp;lt;math&amp;gt;k&amp;lt;/math&amp;gt;-ten Schritt ist jeweils nur der Rückgriff auf die Iterierten aus den letzten beiden Schritten nötig (kurze Rekursion).&lt;br /&gt;
&lt;br /&gt;
== Konstruktionsidee von MINRES ==&lt;br /&gt;
&lt;br /&gt;
Krylov-Unterraum-Verfahren beschränken sich darauf, nur Vektoren aus Matrix-Vektor-Produkten mit der Systemmatrix zu benutzen. Das hat Vorteile, weil die Matrix dazu nicht explizit, sondern nur als Funktion für das Matrix-Vektor-Produkt verfügbar sein muss. Zu Beginn sind die einzigen bekannten Vektoren die aktuelle Näherungslösung &amp;lt;math&amp;gt;x_0&amp;lt;/math&amp;gt; (zu Beginn meist ein Nullvektor), die rechte Seite &amp;lt;math&amp;gt;b&amp;lt;/math&amp;gt; und das Residuum &amp;lt;math&amp;gt;r_0 = b - A \cdot x_0&amp;lt;/math&amp;gt;. &lt;br /&gt;
&lt;br /&gt;
Man kopiert das Residuum in einen Vektor &amp;lt;math&amp;gt;p_0&amp;lt;/math&amp;gt; und nimmt diesen aus obigem Grund als Korrekturrichtung für die Näherungslösung. Dazu berechnet man sein Bild &amp;lt;math&amp;gt;s_0 = A \cdot p_0&amp;lt;/math&amp;gt;. Dieses Bild will man optimal an das Residuum heranaddieren, sodass dessen Länge kleinstmöglich wird (daher der Verfahren-Name). Dazu rechnet man &amp;lt;math&amp;gt;r_1 = r_0 - \xi \cdot s_0&amp;lt;/math&amp;gt;, mit &amp;lt;math&amp;gt;r_1 \perp s_0&amp;lt;/math&amp;gt;. Dazu muss &amp;lt;math&amp;gt;\xi = \langle s_0,r_0 \rangle/\langle s_0,s_0 \rangle&amp;lt;/math&amp;gt; sein (Gram-Schmidt). Die zugehörige Näherungslösung &amp;lt;math&amp;gt;x_1&amp;lt;/math&amp;gt; für dieses Residuum kennt man: &amp;lt;math&amp;gt;x_1 = x_0 + \xi \cdot p_0&amp;lt;/math&amp;gt;. &lt;br /&gt;
&lt;br /&gt;
Für das neue Residuum erstellt man wieder eine Kopie &amp;lt;math&amp;gt;p_1&amp;lt;/math&amp;gt; und berechnet wieder das Bild &amp;lt;math&amp;gt;s_1 = A \cdot p_1&amp;lt;/math&amp;gt;. Um durch Wiederholung dieses Prinzips das Residuum immer weiter zu verkleinern, möchte man im nächsten Schritt ein Residuum &amp;lt;math&amp;gt;r_2&amp;lt;/math&amp;gt; erzeugen, dass auf &amp;lt;math&amp;gt;s_0&amp;lt;/math&amp;gt; und &amp;lt;math&amp;gt;s_1&amp;lt;/math&amp;gt; senkrecht steht. Da &amp;lt;math&amp;gt;s_1&amp;lt;/math&amp;gt; einen Richtungsanteil von &amp;lt;math&amp;gt;s_0&amp;lt;/math&amp;gt; enthalten könnte, muss &amp;lt;math&amp;gt;s_1&amp;lt;/math&amp;gt; auf &amp;lt;math&amp;gt;s_0&amp;lt;/math&amp;gt; orthogonalisiert und &amp;lt;math&amp;gt;p_1&amp;lt;/math&amp;gt; analog angepasst werden, damit danach weiterhin &amp;lt;math&amp;gt;s_1 = A \cdot p_1&amp;lt;/math&amp;gt; gilt. Für &amp;lt;math&amp;gt;s_1 := s_1 - \tau \cdot s_0&amp;lt;/math&amp;gt; wird &amp;lt;math&amp;gt;p_1 := p_1 - \tau \cdot p_0&amp;lt;/math&amp;gt;. So setzt man das über viele Iterationen fort.&lt;br /&gt;
&lt;br /&gt;
Auf diese Weise müsste in der &amp;lt;math&amp;gt;i&amp;lt;/math&amp;gt;-ten Iteration die Richtung &amp;lt;math&amp;gt;s_i&amp;lt;/math&amp;gt; auf &amp;lt;math&amp;gt;i-1&amp;lt;/math&amp;gt; Vorgängern &amp;lt;math&amp;gt;s_1,\dotsc,s_{i-1}&amp;lt;/math&amp;gt; orthogonalisiert werden. Lanczos konnte jedoch zeigen, dass &amp;lt;math&amp;gt;s_i&amp;lt;/math&amp;gt; bereits auf all diesen Richtungen senkrecht steht, falls &amp;lt;math&amp;gt;s_i&amp;lt;/math&amp;gt; nur auf seinen beiden Vorgängern &amp;lt;math&amp;gt;s_{i-1},s_{i-2}&amp;lt;/math&amp;gt; orthogonalisiert (= senkrecht gestellt) wird. Dies liegt an der Symmetrie von &amp;lt;math&amp;gt;A&amp;lt;/math&amp;gt; (weshalb das Verfahren auch nur im symmetrischen Fall funktioniert).&lt;br /&gt;
&lt;br /&gt;
== Algorithmus des MINRES-Verfahrens ==&lt;br /&gt;
Anmerkung: Das MINRES-Verfahren ist vergleichsweise komplizierter als das algebraisch äquivalente Conjugate Residual Verfahren. Im Folgenden wurde daher ersatzweise das Conjugate Residual (CR) Verfahren niedergeschrieben. Es unterscheidet sich insoweit von MINRES, dass in CR nicht wie bei MINRES die Spalten einer Basis des Krylov-Raums (unten bezeichnet mit &amp;lt;math&amp;gt;p_k&amp;lt;/math&amp;gt;), sondern deren Bilder (unten bezeichnet mit &amp;lt;math&amp;gt;s_k&amp;lt;/math&amp;gt;) über die Lanczos-Rekursion orthogonalisiert werden. Es existieren effizientere und präkonditionierte Varianten mit weniger AXPYs. Vgl. dazu mit dem englischsprachigen Artikel.&lt;br /&gt;
&lt;br /&gt;
Zunächst wählt man &amp;lt;math&amp;gt;x_0\in\mathbb{R}^n&amp;lt;/math&amp;gt; beliebig und berechnet&lt;br /&gt;
: &amp;lt;math&amp;gt;r_0 = b - A x_0&amp;lt;/math&amp;gt;&lt;br /&gt;
: &amp;lt;math&amp;gt;p_0 = r_0&amp;lt;/math&amp;gt;&lt;br /&gt;
: &amp;lt;math&amp;gt;s_0 = A p_0&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Dann iterieren wir für &amp;lt;math&amp;gt;k=1,2,\dots&amp;lt;/math&amp;gt; die folgenden Schritte:&lt;br /&gt;
&lt;br /&gt;
* Berechne die &amp;lt;math&amp;gt;x_k,r_k&amp;lt;/math&amp;gt; durch&lt;br /&gt;
: &amp;lt;math&amp;gt;\alpha_{k-1} = \frac{ \langle r_{k-1}, s_{k-1} \rangle}{ \langle s_{k-1}, s_{k-1} \rangle } &amp;lt;/math&amp;gt;&lt;br /&gt;
: &amp;lt;math&amp;gt; x_k = x_{k-1} + \alpha_{k-1} p_{k-1} &amp;lt;/math&amp;gt;&lt;br /&gt;
: &amp;lt;math&amp;gt; r_k = r_{k-1} - \alpha_{k-1} s_{k-1} &amp;lt;/math&amp;gt;&lt;br /&gt;
: falls &amp;lt;math&amp;gt;\|r_k\|&amp;lt;/math&amp;gt; kleiner als eine vorgegebene Toleranz ist, bricht man an dieser Stelle den Algorithmus mit der Näherungslösung &amp;lt;math&amp;gt;x_k&amp;lt;/math&amp;gt; ab, ansonsten berechnet man eine neue Abstiegsrichtung &amp;lt;math&amp;gt;p_k&amp;lt;/math&amp;gt; mittels&lt;br /&gt;
: &amp;lt;math&amp;gt;p_k \leftarrow s_{k-1}&amp;lt;/math&amp;gt;&lt;br /&gt;
: &amp;lt;math&amp;gt;s_k \leftarrow As_{k-1}&amp;lt;/math&amp;gt;&lt;br /&gt;
* für &amp;lt;math&amp;gt;l=1,2&amp;lt;/math&amp;gt; (der Schritt &amp;lt;math&amp;gt;l=2&amp;lt;/math&amp;gt; wird erst ab dem zweiten Iterationsschritt durchgeführt) berechne:&lt;br /&gt;
:: &amp;lt;math&amp;gt;\beta_{k,l} = \frac{\langle s_k, s_{k-l} \rangle}{ \langle s_{k-l}, s_{k-l} \rangle}&amp;lt;/math&amp;gt;&lt;br /&gt;
:: &amp;lt;math&amp;gt;p_k \leftarrow p_k - \beta_{k,l} p_{k-l}&amp;lt;/math&amp;gt;&lt;br /&gt;
:: &amp;lt;math&amp;gt;s_k \leftarrow s_k - \beta_{k,l} s_{k-l}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Konvergenzrate des MINRES-Verfahrens ==&lt;br /&gt;
Im Fall von positiv definiten Matrizen lässt sich die Konvergenzrate des MINRES-Verfahrens ähnlich wie beim CG-Verfahren abschätzen.&amp;lt;ref&amp;gt;{{Literatur | Autor=Sven Gross, Arnold Reusken | Titel=Numerical Methods for Two-phase Incompressible Flows | Verlag=Springer | ISBN=978-3-642-19685-0 | Kapitel=Kap. 5.2}}&amp;lt;/ref&amp;gt; Im Gegensatz zum CG-Verfahren gilt die Abschätzung allerdings nicht für die Fehler der Iterierten, sondern für das Residuum. Es gilt:&lt;br /&gt;
: &amp;lt;math&amp;gt;\|r_k\| \le&lt;br /&gt;
2\left(\frac{\sqrt{\kappa(A)}-1}{\sqrt{\kappa(A)}+1}\right)^k\|r_{0}\|&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Dabei ist &amp;lt;math&amp;gt;\kappa(A)&amp;lt;/math&amp;gt; die [[Kondition (Mathematik)|Konditionszahl]]&lt;br /&gt;
der Matrix &amp;lt;math&amp;gt;A&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
== Beispiel-Implementierung in GNU Octave / Matlab ==&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;matlab&amp;quot;&amp;gt;&lt;br /&gt;
function [x,r] = minres(A,b,x0,maxit,tol)&lt;br /&gt;
  x = x0;&lt;br /&gt;
  r = b - A*x0;&lt;br /&gt;
  p0 = r;&lt;br /&gt;
  s0 = A*p0;&lt;br /&gt;
  p1 = p0;&lt;br /&gt;
  s1 = s0;&lt;br /&gt;
  for iter=[1:maxit]&lt;br /&gt;
    p2 = p1;p1 = p0;&lt;br /&gt;
    s2 = s1;s1 = s0;&lt;br /&gt;
    alpha = r&amp;#039;*s1/(s1&amp;#039;*s1);&lt;br /&gt;
    x += alpha*p1;&lt;br /&gt;
    r -= alpha*s1;&lt;br /&gt;
    if (r&amp;#039;*r &amp;lt; tol^2)&lt;br /&gt;
      break&lt;br /&gt;
    end&lt;br /&gt;
    p0 = s1;&lt;br /&gt;
    s0 = A*s1;&lt;br /&gt;
    beta1 = s0&amp;#039;*s1/(s1&amp;#039;*s1);&lt;br /&gt;
    p0 -= beta1*p1;&lt;br /&gt;
    s0 -= beta1*s1;&lt;br /&gt;
    if iter &amp;gt; 1&lt;br /&gt;
      beta2 = s0&amp;#039;*s2/(s2&amp;#039;*s2);&lt;br /&gt;
      p0 -= beta2*p2;&lt;br /&gt;
      s0 -= beta2*s2;&lt;br /&gt;
    end&lt;br /&gt;
  end&lt;br /&gt;
end&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Einzelnachweise ==&lt;br /&gt;
&amp;lt;references /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{SORTIERUNG:Minresverfahren}}&lt;br /&gt;
[[Kategorie:Numerische lineare Algebra]]&lt;/div&gt;</summary>
		<author><name>imported&gt;Ismael 203 og lele</name></author>
	</entry>
</feed>