text:
# Numerische lineare Algebra
Die numerische lineare Algebra ist ein zentrales Teilgebiet der numerischen Mathematik. Sie beschäftigt sich mit der Entwicklung und der Analyse von Rechenverfahren (Algorithmen) für Problemstellungen der linearen Algebra, insbesondere der Lösung von linearen Gleichungssystemen und Eigenwertproblemen. Solche Probleme spielen in allen Natur- und Ingenieurwissenschaften, aber auch in der Ökonometrie und in der Statistik eine große Rolle.
Die Algorithmen der numerischen linearen Algebra lassen sich grob in zwei Gruppen einteilen: in die direkten Verfahren, die theoretisch nach endlich vielen Rechenschritten die exakte Lösung eines Problems liefern, und in die iterativen Verfahren, bei denen die exakte Lösung schrittweise immer genauer angenähert wird. Da aber auch die direkten Verfahren wegen der beim Rechnen mit endlicher Genauigkeit entstehenden Rundungsfehler nur Näherungen für die exakte Lösung liefern, ist diese Unterscheidung nur für die Entwicklung und Untersuchung der Verfahren selbst von Bedeutung; für den praktischen Einsatz spielt sie keine große Rolle. Historisch gehen die ersten systematischen Verfahren aus beiden Gruppen – das direkte gaußsche Eliminationsverfahren und das iterative Gauß-Seidel-Verfahren – auf Carl Friedrich Gauß zurück. Beispiele für bedeutende Verfahren des 20. Jahrhunderts, die zahlreiche Verbesserungen und Weiterentwicklungen zur Folge hatten, sind das Zerlegungsverfahren von André-Louis Cholesky, das QR-Verfahren für Eigenwertprobleme von John G. F. Francis und Wera Nikolajewna Kublanowskaja sowie das CG-Verfahren von Eduard Stiefel und Magnus Hestenes als erster Vertreter der wichtigen Krylow-Unterraum-Verfahren.

## Einführung in die Problemstellungen
Ein – auch historisch gesehen – zentraler Anfangspunkt der elementaren linearen Algebra sind lineare Gleichungssysteme. Wir betrachten {\displaystyle n} Gleichungen der Gestalt
{\displaystyle a_{i1}x_{1}+\ldots +a_{in}x_{n}=b_{i}}
für {\displaystyle n} Unbekannte {\displaystyle x_{1},\dotsc ,x_{n}}. Die Koeffizienten {\displaystyle a_{ij}} und {\displaystyle b_{i}} sind gegebene Zahlen; die gesuchten Werte für {\displaystyle x_{1},\dotsc ,x_{n}} sollen so bestimmt werden, dass alle Gleichungen erfüllt werden. Die Koeffizienten lassen sich zu einer Matrix {\displaystyle A=(a_{ij})} zusammenfassen; die Zahlen {\displaystyle b_{i}} und die Unbekannten {\displaystyle x_{j}} bilden Spaltenvektoren {\displaystyle \mathbf {b} =(b_{i})} und {\displaystyle \mathbf {x} =(x_{j})}. Auf diese Weise ergibt sich die Matrix-Vektor-Darstellung
{\displaystyle A\cdot \mathbf {x} =\mathbf {b} }
eines linearen Gleichungssystems: Gesucht ist ein Vektor {\displaystyle \mathbf {x} }, der bei der Matrix-Vektor-Multiplikation mit der gegebenen Matrix {\displaystyle A} den gegebenen Vektor {\displaystyle \mathbf {b} } ergibt.
Als Teilgebiet der Numerik betrachtet auch die numerische lineare Algebra nur sogenannte korrekt gestellte Probleme, also insbesondere nur solche Probleme, die eine Lösung besitzen und bei denen die Lösung eindeutig bestimmt ist. Insbesondere wird im Folgenden stets angenommen, dass die Matrix {\displaystyle A} regulär ist, also eine Inverse {\displaystyle A^{-1}} besitzt. Dann gibt es für jede rechte Seite {\displaystyle \mathbf {b} } eine eindeutig bestimmte Lösung {\displaystyle \mathbf {x} } des linearen Gleichungssystems, die formal als {\displaystyle \mathbf {x} =A^{-1}\mathbf {b} } angegeben werden kann.
Viele wichtige Anwendungen führen allerdings auf lineare Gleichungssysteme mit mehr Gleichungen als Unbekannten. In der Matrix-Vektor-Darstellung {\displaystyle A\cdot \mathbf {x} =\mathbf {b} } hat in diesem Fall die Matrix {\displaystyle A} mehr Zeilen als Spalten. Solche überbestimmten Systeme haben im Allgemeinen keine Lösung. Man behilft sich deshalb damit, den Vektor {\displaystyle \mathbf {x} } so zu wählen, dass die Differenz {\displaystyle \mathbf {r} =A\cdot \mathbf {x} -\mathbf {b} }, das Residuum, in einem noch festzulegenden Sinn „möglichst klein“ wird. Beim mit Abstand wichtigsten Fall, dem sogenannten linearen Ausgleichsproblem, wird dazu die Methode der kleinsten Quadrate verwendet: Hierbei wird {\displaystyle \mathbf {x} } so gewählt, dass die Quadratsumme {\displaystyle r_{1}^{2}+\ldots +r_{m}^{2}} minimal wird, wobei {\displaystyle r_{1},\dotsc ,r_{m}} die Komponenten des Differenzvektors {\displaystyle \mathbf {r} } bezeichnen. Mithilfe der euklidischen Norm lässt sich das auch so schreiben: Man wähle {\displaystyle \mathbf {x} } so, dass {\displaystyle \|A\cdot \mathbf {x} -\mathbf {b} \|_{2}^{2}} minimal wird.
Neben den linearen Gleichungen sind die Eigenwertprobleme ein weiteres zentrales Thema der linearen Algebra. Gegeben ist hierbei eine Matrix {\displaystyle A} mit {\displaystyle n} Zeilen und {\displaystyle n} Spalten; gesucht sind Zahlen {\displaystyle \lambda } und Vektoren {\displaystyle \mathbf {x} \neq \mathbf {0} }, sodass die Gleichung
{\displaystyle A\cdot \mathbf {x} =\lambda \mathbf {x} }
erfüllt ist. Man nennt dann {\displaystyle \mathbf {x} } einen Eigenvektor von {\displaystyle A} zum Eigenwert {\displaystyle \lambda }. Das Problem, alle Eigenwerte und Eigenvektoren einer Matrix zu bestimmen, ist gleichbedeutend damit, sie zu diagonalisieren. Das bedeutet: Man finde eine reguläre Matrix {\displaystyle S} und eine Diagonalmatrix {\displaystyle D} mit {\displaystyle S^{-1}\cdot A\cdot S=D}. Die Diagonaleinträge von {\displaystyle D} sind dann die Eigenwerte von {\displaystyle A} und die Spalten von {\displaystyle S} die zugehörigen Eigenvektoren.
Diese Probleme treten in allen Natur- und Ingenieurwissenschaften auf. Sie spielen aber auch in den Wirtschaftswissenschaften sowie in der Statistik – und damit in allen Gebieten, die sich statistischer Methoden bedienen – eine große Rolle. Lineare Gleichungssysteme beschreiben beispielsweise Modelle in der Statik, elektrische Netzwerke oder volkswirtschaftliche Verflechtungen. So scheinbar unterschiedliche Aufgabenstellungen wie die Stabilitätsuntersuchung dynamischer Systeme, Resonanzphänomene bei Schwingungen, die Bestimmung eines PageRanks oder die Hauptkomponentenanalyse in der Statistik führen alle auf Eigenwertprobleme. Lineare Gleichungen entstehen auch durch Linearisierung und Diskretisierung innerhalb anderer numerischer Verfahren. So lassen sich beispielsweise zahlreiche Modelle in Naturwissenschaft und Technik durch partielle Differentialgleichungen beschreiben. Ihre numerische Lösung durch Differenzen- oder Finite-Elemente-Verfahren führt auf Systeme mit sehr vielen Unbekannten.
In diesem Übersichtsartikel wird der Einfachheit halber angenommen, dass alle gegebenen Matrizen und Vektoren reell sind, das heißt, dass alle ihre Einträge reelle Zahlen sind. Meist lassen sich die angesprochenen Verfahren direkt auf komplexe Zahlen verallgemeinern; an die Stelle der orthogonalen Matrizen tritt dann beispielsweise ihr komplexes Pendant, die unitären Matrizen. Mitunter ist es auch vorteilhaft, ein gegebenes komplexes Problem – etwa durch Betrachtung von Real- und Imaginärteil – auf ein reelles zurückzuführen. Zusatzüberlegungen treten allerdings bei Eigenwertproblemen mit nichtsymmetrischen reellen Matrizen auf, denn diese können auch nichtreelle Eigenwerte und Eigenvektoren haben.

## Geschichte

### Die Anfänge: Gauß und Jacobi
Bereits seit der Antike sind Lösungen konkreter Problemstellungen überliefert, die aus heutiger Sicht als lineare Gleichungssysteme angesehen werden können. Die Neun Kapitel der Rechenkunst, in denen der Stand der chinesischen Mathematik des 1. Jahrhunderts n. Chr. zusammengefasst ist, enthielten dabei bereits tabellarische Rechenvorschriften, die Eliminationsverfahren in Matrixdarstellung entsprachen. Die systematische Untersuchung linearer Gleichungssysteme setzte gegen Ende des 17. Jahrhunderts mit ihrer Formulierung mithilfe allgemeiner Koeffizienten ein. Nach Vorarbeiten von Gottfried Wilhelm Leibniz und Colin Maclaurin veröffentlichte Gabriel Cramer 1750 eine explizite Lösungsformel für beliebig viele Unbekannte mithilfe von Determinanten. Mit dieser cramerschen Regel war das Problem theoretisch vollständig gelöst, auch in Hinblick auf Existenz und Eindeutigkeit von Lösungen. Für deren praktische Berechnung erwies sich die Formel jedoch als völlig ungeeignet, weil der Rechenaufwand dabei mit der Anzahl der Unbekannten astronomisch schnell anwächst (siehe auch Cramersche Regel#Rechenaufwand).
Die erste Verwendung und Beschreibung systematischer Rechenverfahren für lineare Gleichungen geht auf Carl Friedrich Gauß (1777–1855) zurück. Zu Beginn des 19. Jahrhunderts waren die Bestimmung der Bahndaten astronomischer Objekte und die Landesvermessung durch Triangulation die wichtigsten Anwendungsaufgaben der mathematischen Praxis. 1801 erregte Gauß großes Aufsehen, als es ihm gelang, die Bahn des neu entdeckten Kleinplaneten Ceres aus wenigen Beobachtungen so genau zu bestimmen, dass Ceres Ende des Jahres wiedergefunden werden konnte. Für das zugehörige überbestimmte Gleichungssystem verwendete er die von ihm entdeckte Methode der kleinsten Quadrate. Das von ihm zur Berechnung der Lösung eingesetzte Eliminationsverfahren beschrieb Gauß systematisch ab 1809 im Rahmen der Bahnbestimmung des Asteroiden Pallas, allerdings noch direkt angewendet auf Quadratsummen.
Auch das erste Iterationsverfahren zur Lösung linearer Gleichungssysteme – das Gauß-Seidel-Verfahren – stammt von Gauß. In einem Brief an Christian Ludwig Gerling berichtete er 1823 von einem neuen einfachen Verfahren, mit dem die Lösung Schritt für Schritt immer besser angenähert werden könne. Gauß, der inzwischen mit der Triangulation des Königreichs Hannover beschäftigt war, schreibt darin, er rechne fast jeden Abend noch einen Iterationsschritt; das sei eine angenehme Abwechslung zur einförmigen Aufnahme der Messdaten. Das Verfahren sei so wenig anfällig für Fehler, dass es sich sogar „halb im Schlaf“ ausführen lasse. 1845 veröffentlichte Carl Gustav Jacob Jacobi ein anderes, ähnliches Iterationsverfahren, das Jacobi-Verfahren. Als Philipp Ludwig von Seidel, ein Schüler Jacobis, 1874 ein System mit 72 Unbekannten lösen musste, entwickelte er eine modifizierte, verbesserte Version dieser Methode. Wie sich im Nachhinein herausstellte, ist dieses Verfahren äquivalent zum Iterationsverfahren von Gauß, von dem Seidel jedoch vermutlich nichts wusste. Jacobi veröffentlichte 1846 auch ein iteratives Verfahren zur Transformation von Matrizen, das sich zur Lösung des Eigenwertproblems für symmetrische Matrizen eignet und heute ebenfalls als Jacobi-Verfahren bezeichnet wird. Er selbst verwendete es jedoch nur als Vorbereitungsschritt, um die Diagonaleinträge der Matrix stärker dominant zu machen.

### 20. Jahrhundert
Im Jahr 1923 wurde ein von André-Louis Cholesky entwickeltes Verfahren veröffentlicht, das bestimmte lineare Gleichungssysteme löst, indem die Koeffizientenmatrix in ein Produkt zweier einfacherer Matrizen zerlegt wird, die Cholesky-Zerlegung. Auch das gaußsche Eliminationsverfahren stellte sich im Nachhinein als ein Spezialfall solcher Matrixzerlegungsverfahren heraus. Algorithmen aus dieser Verfahrensgruppe sind auch heute noch die Standardverfahren zur Lösung mäßig großer Systeme.
Ab Ende der 1920er Jahre kamen auch neue Ideen zur iterativen Lösung von Eigenwertproblemen auf, beginnend 1929 mit der Vorstellung der Potenzmethode durch Richard von Mises. Wie auch bei der Weiterentwicklung zur inversen Iteration durch Helmut Wielandt 1944, können mit diesen einfachen Vektoriterationsverfahren immer nur Eigenvektoren zu einem einzelnen Eigenwert berechnet werden. Eine vollständige Lösung des Eigenwertproblems für beliebige Matrizen blieb aufwändig. Der Durchbruch kam hier 1961–1962 mit der Entwicklung des QR-Verfahrens durch den britischen Informatiker John G. F. Francis und unabhängig davon durch die russische Mathematikerin Wera Nikolajewna Kublanowskaja. Während Kublanowskaja in ihrer Arbeit von Anfang an ein tiefes Verständnis der Konvergenzeigenschaften der Methode aufzeigte, arbeitete Francis vor allem an Implementierungsdetails, die das Verfahren schnell und stabil machten. Das QR-Verfahren ist bis heute das Standardverfahren zur Berechnung aller Eigenwerte und Eigenvektoren nicht allzu großer Matrizen.
Die Lösung linearer Gleichungssysteme mit sehr großen Matrizen, wie sie bei der Diskretisierung von partiellen Differentialgleichungen auftreten, blieb weiterhin schwierig. Diese Matrizen haben nur relativ wenige Einträge, die ungleich null sind, und es ist von entscheidender Bedeutung, dass ein numerisches Verfahren diese Eigenschaft ausnutzt. Ein neuer Ansatz dazu, der sich als Startpunkt zahlreicher Weiterentwicklungen herausstellen sollte, war das 1952 von Eduard Stiefel und Magnus Hestenes entwickelte CG-Verfahren. Dabei wird das lineare Gleichungssystem in dem Spezialfall, dass die Matrix symmetrisch und zusätzlich positiv definit ist, durch ein äquivalentes Optimierungsproblem ersetzt. Als noch fruchtbarer erwies sich ein anderer Zugang zum CG-Verfahren, der gleichzeitig von Cornelius Lanczos entdeckt wurde: Die durch das CG-Verfahren berechneten Näherungen befinden sich in einer aufsteigenden Kette von Unterräumen, den Krylow-Räumen.
Trotz der Entdeckung dieser Zusammenhänge dauerte es relativ lange, bis konkrete Verallgemeinerungen des CG-Verfahrens entwickelt wurden. Das 1974 von Roger Fletcher veröffentlichte BiCG-Verfahren ist zwar theoretisch für beliebige Matrizen anwendbar, erwies sich jedoch in der Praxis in vielen Fällen als instabil. Das 1975 erschienene MINRES-Verfahren ist ein Krylow-Unterraum-Verfahren, für das die Matrix zwar symmetrisch sein muss, aber nicht unbedingt positiv definit wie beim CG-Verfahren. In der Folgezeit wurden zahlreiche Weiterentwicklungen untersucht, insbesondere Stabilisierungsversuche für das BiCG-Verfahren. Ein Beispiel für ein weit verbreitetes Krylow-Unterraum-Verfahren für beliebige lineare Gleichungssysteme ist eine Verallgemeinerung des MINRES-Verfahrens, das 1986 von Yousef Saad und Martin H. Schultz vorgestellte GMRES-Verfahren. Weitere Verfahren verwenden Synthesen aus Ideen der BiCG-Gruppe und GMRES, so das QMR-Verfahren (Roland W. Freund und Noel M. Nachtigal, 1991) sowie das TFQMR-Verfahren (Freund, 1993). Von Anfang an wurden Krylow-Unterraum-Verfahren auch zur Berechnung von Eigenwerten verwendet, Ausgangspunkte waren hier ein Verfahren von Lanczos 1950 und das Arnoldi-Verfahren von Walter Edwin Arnoldi 1951.

## Grundprinzipien
“The field of numerical linear algebra is more beautiful, and more fundamental, than its rather dull name may suggest. More beautiful, because it is full of powerful ideas that are quite unlike those normally emphasized in a linear algebra course in a mathematics department. […] More fundamental, because, thanks to a trick of history, ‘numerical’ linear algebra is really applied linear algebra.”

„Das Fachgebiet der numerischen linearen Algebra ist schöner und grundlegender, als es sein ziemlich langweiliger Name vermuten lässt. Schöner, weil es voll mächtiger Ideen ist, die ganz anders sind als diejenigen, die normalerweise in einer Vorlesung über lineare Algebra an einem mathematischen Institut als bedeutend herausgestellt werden. […] Grundlegender, weil ‚numerische‘ lineare Algebra dank eines Tricks der Geschichte in Wirklichkeit angewandte lineare Algebra ist.“

### Ausnutzung von Strukturen
Modelle und Fragestellungen in Wissenschaft und Technik können auf Probleme der linearen Algebra mit Millionen von Gleichungen führen. Die Einträge einer Matrix mit einer Million Zeilen und Spalten benötigen im double-precision-Format 8 Terabyte Speicherplatz. Das zeigt, dass bereits die Bereitstellung der Daten eines Problems, geschweige denn seine Lösung, eine Herausforderung darstellen, wenn nicht auch seine spezielle Struktur berücksichtigt wird. Glücklicherweise führen viele wichtige Anwendungen – wie beispielsweise die Diskretisierung partieller Differentialgleichungen mit der Finite-Elemente-Methode – zwar auf sehr viele Gleichungen, in jeder einzelnen Gleichung kommen jedoch nur relativ wenige Unbekannte vor. Für die zugehörige Matrix bedeutet das, dass es in jeder Zeile nur wenige Einträge ungleich null gibt, die Matrix ist, wie man sagt, dünnbesetzt. Es gibt zahlreiche Methoden, um solche Matrizen effizient abzuspeichern und ihre Struktur auszunutzen. Verfahren, in denen Matrizen nur in Matrix-Vektor-Produkten vorkommen, sind für dünnbesetzte Probleme besonders gut geeignet, da dabei alle Multiplikationen und Additionen mit null nicht explizit ausgeführt werden müssen. Algorithmen, bei denen die Matrix selbst umgeformt wird, sind hingegen meist nur schwierig zu implementieren, da dann die Dünnbesetztheit im Allgemeinen verloren geht.
Allgemein hat die Besetzungsstruktur, also die Anzahl und die Position der Matrixeinträge ungleich null, einen sehr großen Einfluss auf die theoretischen und numerischen Eigenschaften eines Problems. Das wird am Extremfall von Diagonalmatrizen, also Matrizen, die nur auf der Hauptdiagonale Einträge ungleich null haben, besonders deutlich. Ein lineares Gleichungssystem mit einer Diagonalmatrix kann einfach gelöst werden, indem die Einträge auf der rechten Seite durch die Diagonalelemente dividiert werden, also mittels {\displaystyle n} Divisionen. Auch lineare Ausgleichsprobleme und Eigenwertprobleme sind für Diagonalmatrizen trivial. Die Eigenwerte einer Diagonalmatrix sind ihre Diagonalelemente und die zugehörigen Eigenvektoren die Standardbasisvektoren {\displaystyle \mathbf {e} _{1},\dotsc ,\mathbf {e} _{n}}.
Ein weiterer wichtiger Spezialfall sind die Dreiecksmatrizen, bei denen alle Einträge oberhalb oder unterhalb der Hauptdiagonale null sind. Gleichungssysteme mit solchen Matrizen können durch Vorwärts- bzw. Rückwärtseinsetzen einfach von oben nach unten bzw. von unten nach oben der Reihe nach aufgelöst werden. Die Eigenwerte von Dreiecksmatrizen sind wiederum trivialerweise die Einträge auf der Hauptdiagonale; zugehörige Eigenvektoren können ebenfalls durch Vorwärts- oder Rückwärtseinsetzen bestimmt werden. Ein weiterer häufiger Spezialfall dünnbesetzter Matrizen sind die Bandmatrizen: Hier sind nur die Hauptdiagonale und einige benachbarte Nebendiagonalen mit Einträgen ungleich null besetzt. Eine Abschwächung der oberen Dreiecksmatrizen sind die oberen Hessenbergmatrizen, bei den auch die Nebendiagonale unter der Hauptdiagonale besetzt ist. Eigenwertprobleme lassen sich mit relativ geringem Aufwand in äquivalente Probleme für Hessenberg- oder Tridiagonalmatrizen transformieren.
Aber nicht nur die Besetzungsstruktur, sondern auch andere Matrixeigenschaften spielen für die Entwicklung und Analyse numerischer Verfahren eine wichtige Rolle. Viele Anwendungen führen auf Probleme mit symmetrischen Matrizen. Insbesondere die Eigenwertprobleme sind deutlich einfacher zu handhaben, wenn die gegebene Matrix symmetrisch ist, aber auch bei linearen Gleichungssystemen reduziert sich in diesem Fall der Lösungsaufwand im Allgemeinen um etwa die Hälfte. Weitere Beispiele für Typen von Matrizen, für die spezialisierte Algorithmen existieren, sind die Vandermonde-Matrizen, die Toeplitz-Matrizen und die zirkulanten Matrizen.

### Fehleranalyse: Vektor- und Matrixnormen
Als Maße für die „Größe“ eines Vektors {\displaystyle \mathbf {x} =(x_{i})\in \mathbb {R} ^{n}} werden in der Mathematik unterschiedliche Vektornormen verwendet. Am bekanntesten und verbreitetsten ist die euklidische Norm
{\displaystyle \|\mathbf {x} \|_{2}={\sqrt {\sum _{i=1}^{n}x_{i}^{2}}}},
also die Wurzel aus der Summe der Quadrate aller Vektorkomponenten. Bei der bekannten geometrischen Veranschaulichung von Vektoren als Pfeile im zwei- oder dreidimensionalen Raum entspricht dies gerade der Pfeillänge. Je nach untersuchter Fragestellung können jedoch auch andere Vektornormen wie etwa die Maximumsnorm {\displaystyle \|\mathbf {x} \|_{\infty }} oder die 1-Norm {\displaystyle \|\mathbf {x} \|_{1}} geeigneter sein.
Sind {\displaystyle \mathbf {x} ,{\tilde {\mathbf {x} }}\in \mathbb {R} ^{n}} Vektoren, wobei {\displaystyle {\tilde {\mathbf {x} }}} als eine Näherung für {\displaystyle \mathbf {x} } aufgefasst werden soll, so lässt sich mithilfe einer Vektornorm {\displaystyle \|\cdot \|} die Genauigkeit dieser Näherung quantifizieren. Die Norm des Differenzvektors
{\displaystyle \|{\tilde {\mathbf {x} }}-\mathbf {x} \|}
wird als (normweiser) absoluter Fehler bezeichnet. Betrachtet man den absoluten Fehler im Verhältnis zur Norm des „exakten“ Vektors {\displaystyle \mathbf {x} \neq \mathbf {0} } erhält man den (normweisen) relativen Fehler
{\displaystyle {\frac {\|{\tilde {\mathbf {x} }}-\mathbf {x} \|}{\|\mathbf {x} \|}}}.
Da der relative Fehler nicht durch die Skalierung von {\displaystyle \mathbf {x} } und {\displaystyle {\tilde {\mathbf {x} }}} beeinflusst wird, ist dieser das Standardmaß für den Unterschied der beiden Vektoren und wird oft auch vereinfacht nur als „Fehler“ bezeichnet.
Auch die „Größe“ von Matrizen wird mit Normen gemessen, den Matrixnormen. Für die Wahl einer Matrixnorm {\displaystyle \|A\|} ist es wesentlich, dass sie zur verwendeten Vektornorm „passt“, insbesondere soll die Ungleichung {\displaystyle \|A\mathbf {x} \|\leq \|A\|\|\mathbf {x} \|} für alle {\displaystyle \mathbf {x} } erfüllt sein. Definiert man {\displaystyle \|A\|} für eine gegebene Vektornorm als die kleinste Zahl {\displaystyle L}, sodass {\displaystyle \|A\mathbf {x} \|\leq L\|\mathbf {x} \|} für alle {\displaystyle \mathbf {x} } gilt, dann erhält man die sogenannte natürliche Matrixnorm. Für jede Vektornorm gibt es also eine davon induzierte natürliche Matrixnorm: Für die euklidische Norm ist das die Spektralnorm {\displaystyle \|A\|_{2}}, für die Maximumsnorm ist es die Zeilensummennorm {\displaystyle \|A\|_{\infty }} und für die 1-Norm die Spaltensummennorm {\displaystyle \|A\|_{1}}. Analog zu Vektoren kann mithilfe einer Matrixnorm der relative Fehler
{\displaystyle {\frac {\|{\tilde {A}}-A\|}{\|A\|}}}
bei einer Näherung einer Matrix {\displaystyle A} durch eine Matrix {\displaystyle {\tilde {A}}} quantifiziert werden.

### Kondition und Stabilität
Bei Problemen aus der Praxis sind gegebene Größen meist mit Fehlern behaftet, den Datenfehlern. Zum Beispiel kann bei einem linearen Gleichungssystem {\displaystyle A\mathbf {x} =\mathbf {b} } die gegebene rechte Seite {\displaystyle \mathbf {b} } aus einer Messung stammen und daher eine Messabweichung aufweisen. Aber auch bei theoretisch beliebig genau bekannten Größen lassen sich Rundungsfehler bei ihrer Darstellung im Computer als Gleitkommazahlen nicht vermeiden. Es muss also davon ausgegangen werden, dass anstelle des exakten Systems {\displaystyle A\mathbf {x} =\mathbf {b} } in Wirklichkeit ein System {\displaystyle A{\tilde {\mathbf {x} }}={\tilde {\mathbf {b} }}} mit einer gestörten rechten Seite {\displaystyle {\tilde {\mathbf {b} }}} und dementsprechend einer „falschen“ Lösung {\displaystyle {\tilde {\mathbf {x} }}} vorliegt. Die grundlegende Frage ist nun, wie stark sich Störungen der gegebenen Größen auf Störungen der gesuchten Größen auswirken. Wenn der relative Fehler der Lösung nicht wesentlich größer ist als die relativen Fehler der Eingangsgrößen, spricht man von einem gut konditionierten, anderenfalls von einem schlecht konditionierten Problem. Für das Beispiel linearer Gleichungssysteme lässt sich hierzu die Abschätzung
{\displaystyle {\frac {\|{\tilde {\mathbf {x} }}-\mathbf {x} \|}{\|\mathbf {x} \|}}\leq \|A\|\|A^{-1}\|\cdot {\frac {\|{\tilde {\mathbf {b} }}-\mathbf {b} \|}{\|\mathbf {b} \|}}}
beweisen. Das Problem ist also gut konditioniert, wenn {\displaystyle \|A\|\|A^{-1}\|}, das Produkt der Norm der Koeffizientenmatrix und der Norm ihrer Inversen, klein ist. Diese wichtige Kenngröße heißt Konditionszahl der Matrix {\displaystyle A} und wird mit {\displaystyle \kappa (A)} bezeichnet. In realen Problemen wird meist nicht nur, wie hier dargestellt, die rechte Seite {\displaystyle \mathbf {b} } fehlerbehaftet sein, sondern auch die Matrix {\displaystyle A}. Dann gilt eine ähnliche, kompliziertere Abschätzung, in der aber ebenfalls {\displaystyle \kappa (A)} die wesentliche Kennzahl zur Bestimmung der Kondition des Problems bei kleinen Datenfehlern ist. Die Definition der Konditionszahl lässt sich auf nicht quadratische Matrizen verallgemeinern und spielt dann auch eine wesentliche Rolle bei der Analyse linearer Ausgleichsprobleme. Wie gut ein solches Problem konditioniert ist, hängt allerdings nicht nur wie bei linearen Gleichungssystemen von der Konditionszahl der Koeffizientenmatrix {\displaystyle A} ab, sondern auch von der rechten Seite {\displaystyle \mathbf {b} }, genauer vom Winkel zwischen den Vektoren {\displaystyle A\mathbf {x} } und {\displaystyle \mathbf {b} }. Nach dem Satz von Bauer-Fike lässt sich auch die Kondition des Eigenwertproblems mit Konditionszahlen beschreiben. Hier ist es jedoch nicht die Zahl {\displaystyle \kappa (A)}, mit der sich Störungen der Eigenwerte abschätzen lassen, sondern {\displaystyle \kappa (S)}, die Konditionszahl der Matrix {\displaystyle S}, die {\displaystyle A} via {\displaystyle S^{-1}AS=D} diagonalisiert.
Während die Kondition eine Eigenschaft des zu lösenden Problems ist, ist Stabilität eine Eigenschaft des dafür verwendeten Verfahrens. Ein numerischer Algorithmus liefert – auch bei exakt gedachten Eingangsdaten – im Allgemeinen nicht die exakte Lösung des Problems. Zum Beispiel muss ein iteratives Verfahren, das eine wahre Lösung schrittweise immer genauer annähert, nach endlich vielen Schritten mit der bis dahin erreichten Näherungslösung abbrechen. Aber auch bei direkten Verfahren, die theoretisch in endlich vielen Rechenschritten die exakte Lösung ergeben, kommt es bei der Umsetzung auf dem Computer bei jeder Rechenoperation zu Rundungsfehlern. In der numerischen Mathematik werden zwei unterschiedliche Stabilitätsbegriffe verwendet, die Vorwärtsstabilität und Rückwärtsstabilität. Sei dazu allgemein {\displaystyle u} eine Eingabegröße eines Problems und {\displaystyle v=f(u)} seine exakte Lösung, aufgefasst als Wert einer Funktion {\displaystyle f} angewendet auf {\displaystyle u}. Auch wenn man die Eingabegröße als exakt vorgegeben betrachtet, wird die Berechnung mit einem Algorithmus ein anderes, „falsches“ Ergebnis {\displaystyle {\tilde {v}}=\operatorname {alg} (u)} liefern, aufgefasst als Wert einer anderen, „falschen“ Funktion {\displaystyle \operatorname {alg} } ebenfalls angewendet auf {\displaystyle u}. Ein Algorithmus heißt vorwärtsstabil, wenn sich {\displaystyle {\tilde {v}}} nicht wesentlich stärker von {\displaystyle v} unterscheidet, als es aufgrund der Fehler in der Eingangsgröße {\displaystyle u} und der Kondition des Problems sowieso zu erwarten wäre.
Mit einer formalen Definition dieses Begriffs erhält man zwar ein naheliegendes und relativ anschauliches Maß für die Stabilität, aber bei komplizierten Algorithmen ist es oft schwierig, ihre Vorwärtsstabilität zu untersuchen. Daher wird im Allgemeinen nach einer Idee von James H. Wilkinson zunächst eine sogenannte Rückwärtsanalyse betrachtet: Dazu wird ein {\displaystyle {\tilde {u}}} bestimmt mit {\displaystyle \operatorname {alg} (u)=f({\tilde {u}})}, das heißt: Der durch das Verfahren berechnete „falsche“ Wert wird aufgefasst als „richtiger“ Wert, der aber mit einem anderen Wert der Eingabegröße berechnet wurde. Ein Algorithmus heißt rückwärtsstabil, wenn sich {\displaystyle {\tilde {u}}} nicht wesentlich stärker von {\displaystyle u} unterscheidet, als es aufgrund der Fehler in dieser Eingangsgröße sowieso zu erwarten wäre.
Es lässt sich beweisen, dass ein rückwärtsstabiler Algorithmus auch vorwärtsstabil ist.

### Orthogonalität und orthogonale Matrizen
Wie die lineare Algebra zeigt, besteht ein enger Zusammenhang zwischen Matrizen und Basen des Vektorraums {\displaystyle \mathbb {R} ^{n}}. Sind {\displaystyle n} linear unabhängige Vektoren {\displaystyle \mathbf {b} _{1},\dotsc ,\mathbf {b} _{n}} im {\displaystyle \mathbb {R} ^{n}} gegeben, so sind diese eine Basis des Raums und jeder andere Vektor kann eindeutig als Linearkombination der Basisvektoren dargestellt werden. Ein Basiswechsel entspricht dabei der Multiplikation gegebener Vektoren und Matrizen mit einer Transformationsmatrix. Einen wichtigen Spezialfall bilden die Orthonormalbasen. Hierbei sind die Basisvektoren paarweise orthogonal zueinander („stehen senkrecht aufeinander“) und sind zudem alle auf euklidische Länge 1 normiert, so wie die Standardbasis {\displaystyle (\mathbf {e} _{1},\mathbf {e} _{2},\mathbf {e} _{3})} im dreidimensionalen Raum. Fasst man die Basisvektoren spaltenweise zu einer Matrix
{\displaystyle (\mathbf {b} _{1}|\cdots |\mathbf {b} _{n})}
zusammen, so erhält man im Fall einer Orthonormalbasis eine sogenannte orthogonale Matrix.
Orthonormalbasen und orthogonale Matrizen besitzen zahlreiche bemerkenswerte Eigenschaften, auf denen die wichtigsten Verfahren der modernen numerischen linearen Algebra basieren. Die Tatsache, dass bei einer orthogonalen Matrix {\displaystyle Q} die Spalten eine Orthonormalbasis bilden, lässt sich in Matrixschreibweise durch die Gleichung {\displaystyle Q^{T}Q=I} ausdrücken, wobei {\displaystyle Q^{T}} die transponierte Matrix und {\displaystyle I} die Einheitsmatrix bezeichnen. Das zeigt wiederum, dass eine orthogonale Matrix regulär ist und ihre Inverse gleich ihrer Transponierten ist: {\displaystyle Q^{-1}=Q^{T}}. Die Lösung eines linearen Gleichungssystems {\displaystyle Q\mathbf {x} =\mathbf {b} } lässt sich daher sehr einfach bestimmen, es gilt {\displaystyle \mathbf {x} =Q^{T}\mathbf {b} }. Eine andere grundlegende Eigenschaft ist es, dass eine Multiplikation eines Vektors mit einer orthogonalen Matrix seine euklidische Norm unverändert lässt
{\displaystyle \|Q\mathbf {x} \|_{2}=\|\mathbf {x} \|_{2}}.
Damit folgt für die Spektralnorm {\displaystyle \|Q\|_{2}=1} und für die Konditionszahl ebenfalls
{\displaystyle \kappa (Q)=\|Q\|_{2}\|Q^{-1}\|_{2}=1},
denn {\displaystyle Q^{-1}=Q^{T}} ist ebenfalls eine orthogonale Matrix. Multiplikationen mit orthogonalen Matrizen bewirken also keine Vergrößerung des relativen Fehlers.
Orthogonale Matrizen spielen auch eine wichtige Rolle in der Theorie und der numerischen Behandlung von Eigenwertproblemen. Nach der einfachsten Version des Spektralsatzes lassen sich symmetrische Matrizen orthogonal diagonalisieren. Damit ist gemeint: Zu einer Matrix {\displaystyle A}, für die {\displaystyle A^{T}=A} gilt, existiert eine orthogonale Matrix {\displaystyle Q} und eine Diagonalmatrix {\displaystyle D} mit
{\displaystyle Q^{T}AQ=D}.
Auf der Diagonale von {\displaystyle D} stehen die Eigenwerte von {\displaystyle A} und die Spalten von {\displaystyle Q} bilden eine Orthonormalbasis aus Eigenvektoren. Insbesondere ist nach dem oben erwähnten Satz von Bauer-Fike das Eigenwertproblem für symmetrische Matrizen stets gut konditioniert. Mit der sogenannten schurschen Normalform existiert eine Verallgemeinerung dieser orthogonalen Transformation für nichtsymmetrische Matrizen.
Es gibt zwei spezielle, leicht handhabbare Arten orthogonaler Matrizen, die in zahllosen konkreten Verfahren der numerischen linearen Algebra zum Einsatz kommen: die Householder-Matrizen und die Givens-Rotationen. Householder-Matrizen haben die Gestalt
{\displaystyle H=I-2\mathbf {v} \mathbf {v} ^{T}}
mit einem Vektor {\displaystyle \mathbf {v} \in \mathbb {R} ^{n}} mit {\displaystyle \|\mathbf {v} \|_{2}=1}. Geometrisch beschreiben sie Spiegelungen des {\displaystyle n}-dimensionalen Raums {\displaystyle \mathbb {R} ^{n}} an der {\displaystyle (n-1)}-dimensionalen Hyperebene durch den Nullpunkt, die orthogonal zu {\displaystyle \mathbf {v} } ist. Ihre wesentliche Eigenschaft ist die folgende: Zu einem gegebenen Vektor {\displaystyle \mathbf {a} } lässt sich leicht ein Vektor {\displaystyle \mathbf {v} } bestimmen, sodass die zugehörige Householder-Matrix {\displaystyle H=I-2\mathbf {v} \mathbf {v} ^{T}} den Vektor {\displaystyle \mathbf {a} } auf ein Vielfaches von {\displaystyle \mathbf {e} _{1}} transformiert: {\displaystyle H\mathbf {a} =\sigma \mathbf {e} _{1}} mit {\displaystyle \sigma =\pm \|a\|_{2}}. Dieses {\displaystyle H} transformiert also alle Einträge von {\displaystyle \mathbf {a} } bis auf den ersten zu null. Wendet man auf diese Weise geeignete Householder-Transformationen Spalte für Spalte nacheinander auf eine Matrix {\displaystyle A} an, so können alle Einträge von {\displaystyle A} unterhalb der Hauptdiagonale zu null transformiert werden.
Givens-Rotationen sind spezielle Drehungen des {\displaystyle \mathbb {R} ^{n}}, die eine zweidimensionale Ebene drehen und die anderen {\displaystyle n-2} Dimensionen fest lassen. Die Transformation eines Vektors {\displaystyle \mathbf {a} } mit einer Givens-Rotation verändert daher nur zwei Einträge von {\displaystyle \mathbf {a} }. Durch geeignete Wahl des Drehwinkels kann dabei einer der beiden Einträge auf null gesetzt wird. Während Householder-Transformationen, angewendet auf Matrizen, ganze Teilspalten transformieren, können Givens-Rotationen dazu verwendet werden, gezielt einzelne Matrixeinträge zu ändern.
Householder-Transformationen und Givens-Rotationen können also dazu benutzt werden, eine gegebene Matrix {\displaystyle A} auf eine obere Dreiecksmatrix zu transformieren, oder anders ausgedrückt, eine QR-Zerlegung {\displaystyle A=QR} in eine orthogonale Matrix und eine obere Dreiecksmatrix zu berechnen. Die QR-Zerlegung ist ein wichtiges und vielseitiges Werkzeug, das in zahlreichen Verfahren aus allen Bereichen der numerischen linearen Algebra zum Einsatz kommt.

### Ähnlichkeitstransformationen
In der linearen Algebra wird zur Untersuchung des Eigenwertproblems {\displaystyle A\mathbf {x} =\lambda \mathbf {x} } einer Matrix {\displaystyle A} mit {\displaystyle n} Zeilen und {\displaystyle n} Spalten das charakteristische Polynom {\displaystyle \chi _{A}(\lambda )=\det(\lambda I-A)} verwendet, ein Polynom vom Grad {\displaystyle n}. Die Eigenwerte von {\displaystyle A} sind genau die Nullstellen von {\displaystyle \chi _{A}}. Mit dem Fundamentalsatz der Algebra ergibt sich daraus direkt, dass {\displaystyle A} genau {\displaystyle n} Eigenwerte besitzt, wenn sie mit ihrer Vielfachheit gezählt werden. Allerdings können diese Eigenwerte, auch bei reellen Matrizen, komplexe Zahlen sein. Ist jedoch {\displaystyle A} eine reelle symmetrische Matrix, dann sind ihre Eigenwerte alle reell.
Das charakteristische Polynom hat zwar eine große theoretische Bedeutung für das Eigenwertproblem, zur numerischen Berechnung ist es jedoch nicht geeignet. Das liegt vor allem daran, dass das Problem, aus gegebenen Koeffizienten die Nullstellen des zugehörigen Polynoms zu berechnen, im Allgemeinen sehr schlecht konditioniert ist: Kleine Störungen wie Rundungsfehler an Koeffizienten eines Polynoms können zu einer starken Verschiebung seiner Nullstellen führen. Damit würde ein gegebenenfalls gut konditioniertes Problem – die Berechnung der Eigenwerte – durch ein zwar mathematisch äquivalentes, aber schlecht konditioniertes Problem – die Berechnung der Nullstellen des charakteristischen Polynoms – ersetzt. Viele numerische Verfahren zur Berechnung von Eigenwerten und Eigenvektoren beruhen daher auf einer anderen Grundidee, den Ähnlichkeitstransformationen: Zwei quadratische Matrizen {\displaystyle A} und {\displaystyle B} werden ähnlich genannt, wenn es eine reguläre Matrix {\displaystyle S} mit
{\displaystyle B=S^{-1}AS}
gibt. Es kann gezeigt werden, dass zueinander ähnliche Matrizen die gleichen Eigenwerte haben, bei einer Ähnlichkeitstransformation der Matrix {\displaystyle A} auf die Matrix {\displaystyle B} ändern sich also die gesuchten Eigenwerte nicht. Auch die zugehörigen Eigenvektoren lassen sich leicht ineinander umrechnen: Ist {\displaystyle \mathbf {x} } ein Eigenvektor von {\displaystyle B}, dann ist {\displaystyle S\mathbf {x} } ein Eigenvektor von {\displaystyle A} zum gleichen Eigenwert. Das führt zu Grundideen, die in zahlreichen Algorithmen zum Einsatz kommen. Die Matrix {\displaystyle A} wird durch Ähnlichkeitstransformation in eine Matrix überführt, für die das Eigenwertproblem effizienter zu lösen ist, oder es wird eine Folge von Ähnlichkeitstransformationen konstruiert, bei denen sich die Matrix einer Diagonal- oder Dreiecksmatrix immer weiter annähert. Aus den oben genannten Gründen werden dabei für die Transformationsmatrizen {\displaystyle S} meist orthogonale Matrizen verwendet.

## Verfahren und Verfahrensklassen

### Gaußsches Eliminationsverfahren
Das klassische Eliminationsverfahren von Gauß zur Lösung linearer Gleichungssysteme ist ein Ausgangspunkt und Vergleichsmaßstab für weiterentwickelte Verfahren. Es wird aber auch immer noch als einfaches und zuverlässiges Verfahren – insbesondere in seiner Modifikation als LR-Zerlegung (siehe unten) – für nicht zu große, gut konditionierte Systeme in der Praxis verbreitet eingesetzt. Das Verfahren eliminiert systematisch Variablen aus den gegebenen Gleichungen, indem geeignete Vielfache einer Gleichung von einer anderen Gleichung subtrahiert werden, bis ein System in Stufenform entsteht, das der Reihe nach von unten nach oben aufgelöst werden kann.
Numerische Überlegungen kommen ins Spiel, wenn die Stabilität des Verfahrens betrachtet wird. Soll mit dem {\displaystyle k}-ten Diagonalelement {\displaystyle a_{kk}} der Matrix {\displaystyle A} ein Element {\displaystyle a_{ik}} in derselben Spalte eliminiert werden, dann muss mit dem Quotienten
{\displaystyle l_{ik}:={\frac {a_{ik}}{a_{kk}}}}
das {\displaystyle l_{ik}}-fache der {\displaystyle k}-ten Zeile von der {\displaystyle i}-Zeile subtrahiert werden.
Dazu muss zumindest {\displaystyle a_{kk}\neq 0} gelten, was sich durch geeignete Zeilenvertauschungen für eine reguläre Matrix {\displaystyle A} stets erreichen lässt. Aber mehr noch: Ist {\displaystyle |a_{kk}|} sehr klein im Vergleich zu {\displaystyle |a_{ik}|}, dann ergäbe sich ein sehr großer Betrag von {\displaystyle l_{ik}}. In den nachfolgenden Schritten bestünde dann die Gefahr von Stellenauslöschungen durch Subtraktionen großer Zahlen und das Verfahren wäre instabil. Daher ist es wichtig, durch Zeilenvertauschungen, sogenannte Pivotisierung, dafür zu sorgen, dass die Beträge {\displaystyle |l_{ik}|} möglichst klein bleiben.

### Faktorisierungsverfahren
Die wichtigsten direkten Verfahren zur Lösung linearer Gleichungssysteme lassen sich als Faktorisierungsverfahren darstellen. Deren Grundidee ist es, die Koeffizientenmatrix {\displaystyle A} des Systems {\displaystyle A\mathbf {x} =\mathbf {b} } in ein Produkt aus zwei oder mehr Matrizen zu zerlegen, allgemein etwa {\displaystyle A=BC}. Das lineare Gleichungssystem lautet damit {\displaystyle BC\mathbf {x} =\mathbf {b} } und wird in zwei Schritten gelöst: Zuerst wird die Lösung {\displaystyle \mathbf {y} } des Systems {\displaystyle B\mathbf {y} =\mathbf {b} } berechnet und anschließend die Lösung {\displaystyle \mathbf {x} } des Systems {\displaystyle C\mathbf {x} =\mathbf {y} }. Es gilt dann {\displaystyle A\mathbf {x} =BC\mathbf {x} =B\mathbf {y} =\mathbf {b} }, also ist {\displaystyle \mathbf {x} } die Lösung des ursprünglichen Problems. Auf den ersten Blick scheint dabei nur die Aufgabe, ein lineares Gleichungssystem zu lösen, durch die Aufgabe, zwei lineare Gleichungssysteme zu lösen, ersetzt zu werden. Die Idee dahinter ist es jedoch, die Faktoren {\displaystyle B} und {\displaystyle C} so zu wählen, dass die beiden Teilsysteme wesentlich einfacher zu lösen sind als das Ausgangssystem. Ein offensichtlicher Vorteil der Verfahrensklasse ergibt sich im Fall, dass mehrere lineare Gleichungssysteme mit derselben Koeffizientenmatrix {\displaystyle A}, aber unterschiedlichen rechten Seiten gelöst werden sollen: Die Faktorisierung von {\displaystyle A}, im Allgemeinen der aufwändigste Verfahrensschritt, muss dann nur einmal berechnet werden.

#### LR-Zerlegung
Das gaußsche Eliminationsverfahren kann als Faktorisierungsverfahren aufgefasst werden. Trägt man die Koeffizienten {\displaystyle l_{ik}} für {\displaystyle 1\leq k\leq i\leq n} in eine Matrix ein, ergibt sich ohne Zeilenvertauschungen {\displaystyle A=LR} mit einer unteren Dreiecksmatrix {\displaystyle L} und einer oberen Dreiecksmatrix {\displaystyle R}. Zusätzlich ist {\displaystyle L} unipotent, das heißt alle Einträge auf der Hauptdiagonale von {\displaystyle L} sind gleich 1. Wie gesehen müssen im Allgemeinen bei der Gauß-Elimination Zeilen von {\displaystyle A} vertauscht werden. Das lässt sich formal mit Hilfe einer Permutationsmatrix {\displaystyle P} darstellen, indem anstelle von {\displaystyle A} die zeilenpermutierte Matrix {\displaystyle PA} faktorisiert wird:
{\displaystyle PA=LR}.
Nach dem Grundprinzip der Faktorisierungsverfahren werden zur Lösung von {\displaystyle A\mathbf {x} =\mathbf {b} } also zunächst wie beschrieben die Dreiecksmatrizen {\displaystyle L} und {\displaystyle R} sowie gegebenenfalls die zugehörige Permutation bestimmt. In nächsten Schritt wird {\displaystyle L\mathbf {y} =P\mathbf {b} } mit der zeilenpermutierten rechten Seite durch Vorwärtseinsetzen und schließlich {\displaystyle R\mathbf {x} =\mathbf {y} } durch Rückwärtseinsetzen gelöst.
Die LR-Zerlegung und damit das gaußsche Eliminationsverfahren ist mit geeigneter Pivotisierung „fast immer stabil“, das heißt in den meisten praktischen Anwendungsaufgaben tritt keine große Fehlerverstärkung auf. Es lassen sich jedoch pathologische Beispiele angeben, bei denen die Verfahrensfehler exponentiell mit der Anzahl der Unbekannten anwachsen.

#### Cholesky-Zerlegung
Die Cholesky-Zerlegung ist wie die LR-Zerlegung eine Faktorisierung der Matrix {\displaystyle A} in zwei Dreiecksmatrizen für den in vielen Anwendungen auftretenden Fall, dass {\displaystyle A} symmetrisch und positiv definit ist, also {\displaystyle A^{T}=A} erfüllt und nur positive Eigenwerte besitzt. Unter diesen Voraussetzungen gibt es eine untere Dreiecksmatrix {\displaystyle L} mit
{\displaystyle A=LL^{T}}.
Ein allgemeiner Ansatz für die Matrixeinträge von {\displaystyle L} führt auf ein explizites Verfahren, mit dem diese spaltenweise oder zeilenweise nacheinander berechnet werden können, das Cholesky-Verfahren. Durch diese Ausnutzung der Symmetrie von {\displaystyle A} reduziert sich der Rechenaufwand gegenüber der LR-Zerlegung auf etwa die Hälfte.
Symmetrische und positiv definite Koeffizientenmatrizen treten klassisch bei der Formulierung der sogenannten Normalgleichungen zur Lösung linearer Ausgleichsprobleme auf. Man kann zeigen, dass das Problem, {\displaystyle \|A\mathbf {x} -\mathbf {b} \|_{2}^{2}} zu minimieren, äquivalent damit ist, das lineare Gleichungssystem
{\displaystyle A^{T}A\mathbf {x} =A^{T}\mathbf {b} }
zu lösen. Die Koeffizientenmatrix {\displaystyle A^{T}A} dieser Normalgleichungen ist symmetrisch und, wenn die Spalten von {\displaystyle A} linear unabhängig sind, auch positiv definit. Es kann also mit dem Cholesky-Verfahren gelöst werden. Dieses Vorgehen empfiehlt sich jedoch nur für gut konditionierte Probleme mit wenigen Unbekannten. Im Allgemeinen ist nämlich das System der Normalgleichungen deutlich schlechter konditioniert als das ursprünglich gegebene lineare Ausgleichsproblem. Es ist dann besser, nicht den Umweg über die Normalgleichungen zu gehen, sondern direkt eine QR-Zerlegung von {\displaystyle A} zu verwenden.

#### QR-Zerlegung
Das lineare Gleichungssystem {\displaystyle A\mathbf {x} =\mathbf {b} } kann nach der Berechnung einer QR-Zerlegung
{\displaystyle A=QR}
direkt nach dem allgemeinen Prinzip der Faktorisierungsverfahren gelöst werden; es ist nur noch {\displaystyle R\mathbf {x} =\mathbf {y} } mit {\displaystyle \mathbf {y} =Q^{T}\mathbf {b} } durch Rückwärtseinsetzen zu bestimmen. Aufgrund der guten Kondition orthogonaler Matrizen treten dabei die möglichen Instabilitäten der LR-Zerlegung nicht ein. Allerdings ist der Rechenaufwand im Allgemeinen etwa doppelt so groß, sodass unter Umständen eine Abwägung der Verfahren getroffen werden muss.
Die QR-Zerlegung ist auch das gängige Verfahren zur Lösung nicht zu großer, gut konditionierter linearer Ausgleichsprobleme.
Für das Problem
Minimiere {\displaystyle \|A\mathbf {x} -\mathbf {b} \|_{2}^{2}}
gilt mit {\displaystyle A=QR} und {\displaystyle \mathbf {r} =A\mathbf {x} -\mathbf {b} }
{\displaystyle \|\mathbf {r} \|_{2}^{2}=\|Q^{T}\mathbf {r} \|_{2}^{2}=\|Q^{T}QR\mathbf {x} -Q^{T}\mathbf {b} \|_{2}^{2}=\|R\mathbf {x} -Q^{T}\mathbf {b} \|_{2}^{2}}.
Dabei wurde verwendet, dass {\displaystyle Q^{T}} orthogonal ist, also die euklidische Norm erhält, und dass {\displaystyle Q^{T}Q=I} gilt.
Der letzte Ausdruck lässt sich einfach durch Rückwärtseinsetzen der ersten {\displaystyle n} Zeilen von {\displaystyle R\mathbf {x} =Q^{T}\mathbf {b} } minimieren.

### Fixpunktiteration mit Splitting-Verfahren
Eine völlig andere Idee, um {\displaystyle A\mathbf {x} =\mathbf {b} } zu lösen, besteht darin, einen Startvektor {\displaystyle \mathbf {x} _{0}} zu wählen und daraus schrittweise {\displaystyle \mathbf {x} _{1}=F(\mathbf {x} _{0})}, {\displaystyle \mathbf {x} _{2}=F(\mathbf {x} _{1})} immer neue Näherungen an die gesuchte Lösung zu berechnen. Im Fall der Konvergenz der Folge {\displaystyle (\mathbf {x} _{0},\mathbf {x} _{1},\mathbf {x} _{2},\dotsc )} gegen {\displaystyle \mathbf {x} } wird dann diese Iteration nach einer geeigneten Anzahl {\displaystyle N} von Schritten mit einer ausreichend genauen Näherung {\displaystyle \mathbf {x} _{N}} für {\displaystyle \mathbf {x} } abgebrochen. Die einfachsten und wichtigsten Verfahren dieser Art verwenden eine Iteration der Gestalt
{\displaystyle \mathbf {x} _{k+1}=M\mathbf {x} _{k}+\mathbf {c} }
mit einer geeigneten Matrix {\displaystyle M} und einem geeigneten Vektor {\displaystyle \mathbf {c} }.
Es lässt sich beweisen, dass solche Verfahren genau dann konvergieren, wenn alle Eigenwerte von {\displaystyle M} einen Betrag echt kleiner als 1 haben. In diesem Fall konvergieren die Iterierten {\displaystyle \mathbf {x} _{k}} gegen eine Lösung der Gleichung {\displaystyle \mathbf {x} =M\mathbf {x} +\mathbf {c} }, also gegen einen Fixpunkt der Iterationsfunktion {\displaystyle F(\mathbf {y} )=M\mathbf {y} +\mathbf {c} }.
Ein systematisches Vorgehen bei der Suche nach geeigneten Algorithmen dieser Gestalt ermöglicht die Idee der Splitting-Verfahren. Dabei wird die Matrix {\displaystyle A} in eine Summe
{\displaystyle A=B+C}
zerlegt mit einer leicht zu invertierenden Matrix {\displaystyle B} und dem Rest {\displaystyle C=A-B}. Durch Einsetzen und Umstellen ergibt sich damit aus {\displaystyle A\mathbf {x} =\mathbf {b} } die Fixpunktgleichung
{\displaystyle \mathbf {x} =-B^{-1}C\mathbf {x} +B^{-1}\mathbf {b} }.
Mit {\displaystyle M=-B^{-1}C} und {\displaystyle \mathbf {c} =B^{-1}\mathbf {b} } erhält man so ein Iterationsverfahren der Gestalt {\displaystyle \mathbf {x} _{k+1}=M\mathbf {x} _{k}+\mathbf {c} }, das im Falle der Konvergenz die Lösung von {\displaystyle A\mathbf {x} =\mathbf {b} } liefert. Die Konvergenzgeschwindigkeit ist umso größer, je kleiner der betragsgrößte Eigenwert der Iterationsmatrix {\displaystyle M} ist. Dieser lässt sich auch durch beliebige Matrixnormen von {\displaystyle M} abschätzen.
Als klassische Beispiele für Splitting-Verfahren verwendet das Jacobi-Verfahren für {\displaystyle B} die Diagonalmatrix mit der Hauptdiagonale von {\displaystyle A}, das Gauß-Seidel-Verfahren den unteren Dreiecksanteil von {\displaystyle A}. Zur Konvergenzbeschleunigung der Fixpunktverfahren lässt sich die Idee der Relaxation nutzen. Denkt man sich die Iteration in der Form
{\displaystyle \mathbf {x} _{k+1}=\mathbf {x} _{k}+\Delta \mathbf {x} _{k}}
mit der Korrektur {\displaystyle \Delta \mathbf {x} _{k}} im {\displaystyle k}-ten Schritt dargestellt, geht man mit einem geeignet gewählten Relaxationsparameter {\displaystyle \omega } zu
{\displaystyle \mathbf {x} _{k+1}=\mathbf {x} _{k}+\omega \Delta \mathbf {x} _{k}}
über. Zum Beispiel erhält man auf diese Weise aus dem Gauß-Seidel-Verfahren das SOR-Verfahren.

### Jacobi-Verfahren zur Eigenwertberechnung
Ein einfaches, aber zuverlässiges iteratives Verfahren zur Lösung des Eigenwertproblems für symmetrische Matrizen ist das Jacobi-Verfahren. Es erzeugt durch sukzessive Ähnlichkeitstransformationen mit Givens-Rotationen eine Folge von symmetrischen Matrizen, die alle ähnlich zu der gegebenen symmetrischen Matrix {\displaystyle A} sind und gegen eine Diagonalmatrix {\displaystyle D} konvergieren. Bricht man das Verfahren nach einer geeigneten Anzahl von Schritten ab, erhält man deshalb mit den Diagonaleinträgen von {\displaystyle D} Näherungen für die gesuchten Eigenwerte von {\displaystyle A}.
In jedem Schritt wird die Givens-Rotation, in diesem Zusammenhang auch als Jacobi-Rotation bezeichnet, so gewählt, dass der Eintrag an der Matrixposition {\displaystyle (i,j)} und der symmetrisch dazu liegende bei {\displaystyle (j,i)} zu null transformiert werden. Dabei ist jedoch zu beachten, dass bei dieser Transformation die ganze {\displaystyle i}-te und {\displaystyle j}-te Zeile sowie die ganze {\displaystyle i}-te und {\displaystyle j}-te Spalte der Matrix geändert wird. Deshalb werden die in einem Schritt erzeugten Nullen im Allgemeinen in den folgenden Schritten wieder zunichtegemacht. Dennoch konvergieren bei geeigneter Wahl der Positionen für die Jacobi-Rotationen alle Nichtdiagonalelemente gegen null. Das klassische Jacobi-Verfahren wählt dazu in jedem Iterationsschritt diejenige Position {\displaystyle (i,j)}, an der sich das Nichtdiagonalelement mit dem größten Absolutbetrag befindet. Bei einer Handrechnung war diese Position normalerweise schnell zu erkennen, bei der Umsetzung als Computerprogramm ist der Aufwand für die Suche danach im Vergleich zu den übrigen Rechenoperationen jedoch erheblich. Daher wird heute meist das zyklische Jacobi-Verfahren verwendet. Dabei werden die Positionen in einer vorher fest gewählten Reihenfolge zyklisch durchlaufen, etwa einfach spaltenweise. Es lässt sich beweisen, dass sowohl das klassische als auch das zyklische Jacobi-Verfahren stets konvergieren. Im Vergleich zu moderneren Algorithmen ist die Konvergenz allerdings relativ langsam. Für dünnbesetzte Matrizen ist das Jacobi-Verfahren nicht geeignet, da im Laufe der Iteration die Matrix mit immer mehr Nichtnulleinträgen aufgefüllt wird.

### Vektoriteration
Eine einfache Ausgangsidee zur Berechnung von Eigenvektoren einer Matrix {\displaystyle A} ist die Potenzmethode. Ein Startvektor {\displaystyle \mathbf {x} _{0}\neq \mathbf {0} } wird iterativ immer wieder mit {\displaystyle A} multipliziert
{\displaystyle \mathbf {x} _{k+1}=A\mathbf {x} _{k}}
oder, ausgedrückt mit der {\displaystyle k}-ten Matrixpotenz, es wird {\displaystyle \mathbf {x} _{k}=A^{k}\mathbf {x} _{0}} berechnet. Dahinter steckt die geometrische Anschauung, dass der Vektor durch {\displaystyle A} in jedem Schritt am stärksten in die Richtung des Eigenvektors mit dem größten Eigenwert gestreckt wird. In dieser einfachen Form ist die Vektoriteration jedoch für die Praxis ungeeignet, da im Allgemeinen die Einträge von {\displaystyle \mathbf {x} _{k}} schnell sehr klein oder sehr groß werden. Daher wird der Vektor in jedem Schritt zusätzlich zur Multiplikation mit {\displaystyle A} noch mit einer Vektornorm auf {\displaystyle \|\mathbf {x} _{k}\|=1} normiert. Man kann dann unter gewissen Voraussetzungen an die Lage der Eigenwerte beweisen, dass dieses Verfahren bis auf möglicherweise einen skalaren Vorfaktor tatsächlich gegen einen Eigenvektor zum betragsgrößten Eigenwert konvergiert.
Wendet man diese Idee formal auf die inverse Matrix {\displaystyle A^{-1}} an, so erhält man einen Eigenvektor zum betragskleinsten Eigenwert von {\displaystyle A}. Hierzu wird freilich nicht die Inverse selbst berechnet, sondern es wird in jedem Schritt das lineare Gleichungssystem
{\displaystyle A\mathbf {x} _{k+1}=\mathbf {x} _{k}}
gelöst. Eine weitere Verallgemeinerung der Idee erhält man mithilfe eines sogenannten Shiftparameters {\displaystyle \sigma }. Ein Eigenvektor von {\displaystyle A} zu dem am nächsten bei {\displaystyle \sigma } liegenden Eigenwert ist nämlich auch ein Eigenvektor zum betragskleinsten Eigenwert der „geshifteten“ Matrix {\displaystyle A-\sigma I}. Mit der zugehörigen Iteration
{\displaystyle (A-\sigma I)\mathbf {x} _{k+1}=\mathbf {x} _{k}}
und Normierung von {\displaystyle \mathbf {x} _{k}} in jedem Schritt ergibt sich das Verfahren der inversen Vektoriteration.
Vektoriterationsverfahren berechnen also zunächst einen bestimmten Eigenvektor von {\displaystyle A}, der zugehörige Eigenwert kann mithilfe des Rayleigh-Quotienten erhalten werden. Sie sind offenbar dann gut geeignet, wenn – wie häufig in bestimmten Anwendungsfällen – nur der größte, nur der kleinste oder allgemeiner nur ein einzelner Eigenwert mitsamt seinem Eigenvektor gesucht ist.

### QR-Verfahren
Das QR-Verfahren ist zurzeit der wichtigste Algorithmus zur Berechnung aller Eigenwerte und Eigenvektoren von nicht zu großen vollbesetzten Matrizen {\displaystyle A}. Es ist ein Iterationsverfahren, das in jedem Schritt eine QR-Zerlegung verwendet, um durch wiederholte Ähnlichkeitstransformationen eine Matrixfolge zu erzeugen, die schnell gegen eine obere Dreiecksmatrix konvergiert.
Startend mit der Ausgangsmatrix {\displaystyle A_{0}:=A} wird in seiner Grundidee im {\displaystyle k}-ten Schritt die Matrix QR-zerlegt,
{\displaystyle A_{k}=Q_{k}R_{k}},
und anschließend werden die beiden Faktoren in umgekehrter Reihenfolge wieder zusammenmultipliziert:
{\displaystyle A_{k+1}:=R_{k}Q_{k}},
um die neue Näherungsmatrix zu erhalten. Wegen {\displaystyle Q_{k}^{-1}=Q_{k}^{T}} ergibt sich {\displaystyle R_{k}=Q_{k}^{T}A_{k}} und daraus {\displaystyle A_{k+1}=Q_{k}^{T}A_{k}Q_{k}}; es handelt sich bei dieser Umformung also tatsächlich um eine Ähnlichkeitstransformation mit einer orthogonalen Matrix. Wie eine genauere Analyse zeigt, besteht ein enger Zusammenhang zur Potenzmethode: Die QR-Iteration lässt sich auffassen als eine Potenzmethode, die simultan auf alle Vektoren einer Orthonormalbasis angewendet wird; durch die QR-Zerlegung in jedem Schritt wird dabei sichergestellt, dass diese Vektoren im Laufe der Iteration auch numerisch stabil orthonormiert bleiben (siehe auch Unterraumiteration). Aus dieser Darstellung ergibt sich auch ein Beweis, dass das Verfahren unter geringen Voraussetzungen an {\displaystyle A} gegen eine obere Dreiecksmatrix konvergiert.
In dieser einfachen Form ist das QR-Verfahren aus zwei Gründen noch nicht für die Praxis geeignet. Zum einen ist der Rechenaufwand für die QR-Zerlegung, die in jedem Schritt bestimmt werden muss, sehr groß. Zum anderen findet die Konvergenz im Allgemeinen nur langsam statt, es müssen also viele Schritte durchgeführt werden, um eine gewünschte Genauigkeit zu erhalten. Dem ersten Punkt lässt dich dadurch begegnen, dass in einem Vorbereitungsschritt die Matrix {\displaystyle A} durch Ähnlichkeitstransformationen auf Hessenberg-Gestalt gebracht wird. Das lässt sich durch {\displaystyle n-2} Transformationen mit geeigneten Householder-Matrizen erreichen. Da eine Hessenberg-Matrix nur noch {\displaystyle n-1} Nichtnulleinträge unter der Hauptdiagonale hat, lässt sie sich schnell mit den entsprechenden {\displaystyle n-1} Givens-Rotationen QR-zerlegen. Wie sich leicht zeigen lässt, erhält ein Schritt des QR-Verfahrens Symmetrie und Hessenberg-Gestalt. Da eine symmetrische Hessenberg-Matrix eine Tridiagonalmatrix ist, vereinfacht sich das Verfahren im symmetrischen Fall nochmals erheblich. Die Konvergenzgeschwindigkeit kann ähnlich wie bei der inversen Vektoriteration deutlich erhöht werden, wenn in jedem Schritt anstelle der Matrix {\displaystyle A_{k}} die Matrix {\displaystyle A_{k}-\sigma _{k}I} mit einem geschickt gewählten Shiftparameter {\displaystyle \sigma _{k}} transformiert wird. Für die Wahl von {\displaystyle \sigma _{k}}, der Wert sollte eine Näherung an einen Eigenwert von {\displaystyle A} sein, existieren verschiedene sogenannte Shiftstrategien.
Mit einer Variante des QR-Verfahrens kann auch die sogenannte Singulärwertzerlegung einer Matrix berechnet werden. Diese Verallgemeinerung der Diagonalisierung auf beliebige – sogar nicht quadratische – Matrizen wird in einigen Anwendungen, wie etwa in der Bildkompression, direkt verwendet. Mithilfe der Singulärwertzerlegung können auch große, schlecht konditionierte lineare Ausgleichsprobleme gelöst werden.

### Krylow-Unterraum-Verfahren
Die Krylow-Unterraum-Verfahren mit ihren zahlreichen Varianten und Spezialisierungen sind die wichtigste Verfahrensgruppe zur Lösung sowohl von linearen Gleichungssystemen als auch von Eigenwertproblemen, wenn die gegebene Matrix {\displaystyle A} sehr groß und dünnbesetzt ist. Der historisch erste Algorithmus aus dieser Gruppe ist das Verfahren der konjugierten Gradienten, kurz CG-Verfahren (von englisch conjugate gradients) zur Lösung linearer Gleichungssysteme mit symmetrischen und positiv definiten Koeffizientenmatrizen.

#### CG-Verfahren
Der fruchtbare Zusammenhang des CG-Verfahrens mit Krylow-Unterräumen wurde erst später erkannt, seine Grundidee ist eine andere: Es löst anstelle des Gleichungssystems ein dazu äquivalentes Optimierungsproblem. Ist nämlich {\displaystyle A} symmetrisch und positiv definit, so ist die Lösung von {\displaystyle A\mathbf {x} =\mathbf {b} } die eindeutig bestimmte Minimalstelle der Funktion
{\displaystyle E(\mathbf {x} )={\frac {1}{2}}\mathbf {x} ^{T}A\mathbf {x} -\mathbf {b} ^{T}\mathbf {x} }.
Damit stehen grundsätzlich alle numerischen Verfahren zur Lösung von Optimierungsproblemen auch für das lineare Gleichungssystem zur Verfügung, insbesondere die sogenannten Abstiegsverfahren. Das sind iterative Verfahren, die ausgehend von der aktuellen Näherung {\displaystyle \mathbf {x} _{k}} im {\displaystyle k}-ten Schritt entlang einer geeigneten Suchrichtung {\displaystyle \mathbf {s} _{k}} das eindimensionale Optimierungsproblem
„Suche {\displaystyle \alpha _{k}\in \mathbb {R} }, sodass {\displaystyle E(\mathbf {x} _{k}+\alpha _{k}\mathbf {s} _{k})} minimal wird.“
lösen. Die dabei gefundene Stelle {\displaystyle \mathbf {x} _{k+1}=\mathbf {x} _{k}+\alpha _{k}\mathbf {s} _{k}} wird die neue Näherung für den nächsten Schritt. Eine zunächst naheliegende Wahl für die Suchrichtung {\displaystyle \mathbf {s} _{k}} ist die Richtung des steilsten Abstiegs, was auf das Gradientenverfahren zur Bestimmung der Minimalstelle führt. Allerdings zeigt sich, dass die so berechneten Näherungen {\displaystyle \mathbf {x} _{k}} sich im Allgemeinen nur sehr langsam und in einem „Zickzackkurs“ der wahren Lösung annähern. Wesentlich besser geeignet sind Suchrichtungen, die die spezielle Gestalt der zu minimierenden Funktion {\displaystyle E} berücksichtigen. Die Niveaumengen von {\displaystyle E} sind {\displaystyle (n-1)}-dimensionale Ellipsoide (im anschaulichen, zweidimensionalen Fall Ellipsen), daher ist es günstig, die Suchrichtungen zueinander konjugiert zu wählen (im Anschauungsfall entspricht das den konjugierten Durchmessern). Dabei heißen zwei Richtungen {\displaystyle \mathbf {s} _{k}} und {\displaystyle \mathbf {s} _{l}} konjugiert, wenn {\displaystyle \mathbf {s} _{k}^{T}A\mathbf {s} _{l}=0} gilt. Das CG-Verfahren wählt daher für die erste Suchrichtung die Richtung des steilsten Abstiegs, aber die folgenden so, dass alle Suchrichtungen zueinander konjugiert sind. Es lässt sich zeigen, dass dann nach {\displaystyle n} Abstiegen die wahre Lösung erreicht wird. Meist ist aber eine ausreichend genaue Näherungslösung schon nach deutlich weniger Schritten erreicht und das Verfahren kann vorzeitig abgebrochen werden.

#### Vom CG-Verfahren zu den Krylow-Unterraum-Verfahren
In den Rechenschritten des CG-Verfahrens geht die Matrix {\displaystyle A} nur in der Form von Matrix-Vektor-Produkten ein. Sie selbst wird nicht zerlegt oder umgeformt – ein großer Vorteil, wenn sie dünnbesetzt ist. Nimmt man zur Vereinfachung (aber ohne Beschränkung der Allgemeinheit) an, dass als Startvektor {\displaystyle \mathbf {x} _{0}} der Nullvektor gewählt wird, so zeigt eine genauere Analyse, dass jede Näherung {\displaystyle \mathbf {x} _{k}} eine Linearkombination der Vektoren {\displaystyle \mathbf {b} ,A\mathbf {b} ,A^{2}\mathbf {b} ,\dotsc ,A^{k-1}\mathbf {b} } ist, also aus wiederholten Multiplikationen der rechten Seite {\displaystyle \mathbf {b} } mit {\displaystyle A} aufgebaut wird. Anders ausgedrückt: Jedes {\displaystyle \mathbf {x} _{k}} liegt in einem Krylow-Unterraum
{\displaystyle {\mathcal {K}}_{k}(A,\mathbf {b} )=\operatorname {span} (\mathbf {b} ,A\mathbf {b} ,A^{2}\mathbf {b} ,\dotsc ,A^{k-1}\mathbf {b} )}.
Diese Eigenschaft ist das Kennzeichen der Krylow-Unterraum-Verfahren: Sie erzeugen iterativ für {\displaystyle k=0,1,2,\dotsc } Näherungen {\displaystyle \mathbf {x} _{k}} mit {\displaystyle \mathbf {x} _{k}\in {\mathcal {K}}_{k}(A,\mathbf {b} )}. Dabei wird {\displaystyle \mathbf {x} _{k}} zusätzlich so gewählt, dass das Residuum {\displaystyle \mathbf {r} _{k}=A\mathbf {x} _{k}-\mathbf {b} } in einem noch festzulegenden Sinne möglichst klein ist. Beim CG-Verfahren ist die Bedingung nicht unbedingt naheliegend, aber für die spezielle Struktur des Problems gut geeignet: Mit der durch {\displaystyle A^{-1}} gewichteten Vektornorm {\displaystyle \|\mathbf {v} \|_{A^{-1}}={\sqrt {\mathbf {v} ^{T}A^{-1}\mathbf {v} }}} ist in jedem Schritt {\displaystyle \|\mathbf {r} _{k}\|_{A^{-1}}} minimal. Der Nachteil liegt dabei darin, dass dies nur funktioniert, wenn {\displaystyle A} tatsächlich symmetrisch und positiv definit ist, anderenfalls ist {\displaystyle \|\cdot \|_{A^{-1}}} gar keine Norm. Im Allgemeinen werden die Zusatzbedingungen, die Krylow-Unterraum-Verfahren an die Wahl von {\displaystyle \mathbf {x} _{k}\in {\mathcal {K}}_{k}} stellen, als sogenannte Projektionsbedingung formuliert. Man verlangt dabei, dass das Residuum {\displaystyle \mathbf {r} _{k}} orthogonal zu allen Vektoren aus einem {\displaystyle k}-dimensionalen Unterraum {\displaystyle {\mathcal {L}}_{k}} ist, in Symbolen
{\displaystyle \mathbf {r} _{k}\perp {\mathcal {L}}_{k}}.
Die {\displaystyle {\mathcal {L}}_{k}} sind normalerweise selbst Krylow-Unterräume, im einfachsten Fall, wie auch beim CG-Verfahren, zum Beispiel {\displaystyle {\mathcal {L}}_{k}={\mathcal {K}}_{k}}. Für die konkrete Berechnung der Näherungen werden sukzessive Orthonormalbasen der beteiligten Krylow-Unterräume aufgebaut. Das bekannte Gram-Schmidt-Verfahren zur Orthonormalisierung ist in seiner Standardform leider numerisch instabil. Es lässt sich jedoch mit einer kleinen Modifikation stabilisieren.

#### Weitere Krylow-Unterraum-Verfahren
Aus den genannten Grundideen ergeben sich zahlreiche Variationen, Anpassungen und Verbesserungen innerhalb dieser Verfahrensklasse, von denen nur einige exemplarisch genannt werden sollen. Eine direkte Verallgemeinerung des CG-Verfahrens ist das BiCG-Verfahren. Es hebt die Einschränkung auf symmetrische Matrizen dadurch auf, dass es zusätzlich zu dem mit {\displaystyle A} gebildeten Krylow-Unterräumen, auch die zur transponierten Matrix {\displaystyle A^{T}} gehörigen verwendet. Eine Optimierung, die die zusätzlichen Multiplikationen mit {\displaystyle A^{T}} vermeidet, ist das CGS-Verfahren. Beide Verfahrenstypen sind in vielen praktischen Fällen instabil, bilden aber die Grundlage für verschiedene Stabilisierungsversuche, etwa in der Gruppe der BiCGSTAB-Verfahren.
Wichtige und im Allgemeinen stabile Verfahren sind GMRES und seine Spezialisierung für symmetrische Matrizen, MINRES. Sie setzen direkt bei den Residuen an und bestimmen {\displaystyle \mathbf {x} _{k}} im Krylow-Unterraum so, dass {\displaystyle \|A\mathbf {x} _{k}-\mathbf {b} \|_{2}} minimal ist. Weitere Verbesserungen dieses Grundprinzips sind etwa das QMR- und das TFQMR-Verfahren.
Krylow-Unterraum-Verfahren können nicht nur für sehr große dünnbesetzte lineare Gleichungssysteme verwendet werden, sondern auch zur Lösung ebensolcher Eigenwertprobleme – ein weiterer Grund für ihre große Bedeutung in der modernen numerischen linearen Algebra. Natürlich kann in Eigenwertproblemen nicht mit {\displaystyle \mathbf {x} _{0}=\mathbf {0} } gestartet werden ({\displaystyle \mathbf {0} } ist ja per Definition kein Eigenvektor). Es werden hier die Näherungen {\displaystyle \mathbf {x} _{k}} und zugehörige {\displaystyle \lambda _{k}} so bestimmt, dass
{\displaystyle A\mathbf {x} _{k}-\lambda _{k}\mathbf {x} _{k}\perp {\mathcal {K}}_{k}(A,\mathbf {x} _{0})}
mit {\displaystyle \mathbf {x} _{0}\neq \mathbf {0} } gilt. Dieses Vorgehen führt auf ein nur {\displaystyle k}-dimensionales Eigenwertproblem, das sich für kleine {\displaystyle k} leicht lösen lässt und Näherungen an einige Eigenwerte von {\displaystyle A} liefert. Der zugehörige Grundalgorithmus ist das Arnoldi-Verfahren. Wie stets bei Eigenwertproblemen ergeben sich für symmetrische Matrizen deutliche Vereinfachungen; diese führen auf das Lanczos-Verfahren.

### Lehrbücher
- Steffen Börm, Christian Mehl: Numerical Methods for Eigenvalue Problems. Walter de Gruyter, Berlin/Boston 2012, ISBN 978-3-11-025033-6.
- Folkmar Bornemann: Numerische lineare Algebra – Eine konzise Einführung mit MATLAB und Julia. Springer Spektrum, Wiesbaden 2016, ISBN 978-3-658-12883-8.
- Biswa Nath Datta: Numerical Linear Algebra and Applications. 2. Auflage. SIAM, Philadelphia 2010, ISBN 978-0-89871-685-6.
- James W. Demmel: Applied Numerical Linear Algebra. SIAM, Philadelphia 1997, ISBN 978-0-89871-389-3.
- Gene H. Golub, Charles F. Van Loan: Matrix Computations. 3. Auflage. The Johns Hopkins University Press, Baltimore 1996, ISBN 0-8018-5413-X.
- Nicholas J. Higham: Accuracy and Stability of Numerical Algorithms. 2. Auflage. SIAM, Philadelphia 2002, ISBN 0-89871-521-0.
- Andreas Meister: Numerik linearer Gleichungssysteme. 5. Auflage. Springer Spektrum, Wiesbaden 2015, ISBN 978-3-658-07199-8.
- Granville Sewell: Computational Methods of Linear Algebra. 3. Auflage. World Scientific, Singapur 2014, ISBN 978-981-4603-85-0.
- Lloyd N. Trefethen, David Bau, III: Numerical Linear Algebra. SIAM, Philadelphia 1997, ISBN 978-0-89871-361-9.

### Zur Geschichte
- Jean-Luc Chabert u. a. (Hrsg.): A History of Algorithms. Springer, Berlin/Heidelberg 1999, ISBN 978-3-540-63369-3.
- Yousef Saad, Henk A. van der Vorst: Iterative solution of linear systems in the 20th century. In: Journal of Computational and Applied Mathematics. Band 123, 2000, S. 1–33.
- Gene H. Golub, Henk A. van der Vorst: Eigenvalue computation in the 20th century. In: Journal of Computational and Applied Mathematics. Band 123, 2000, S. 35–65.

title: Numerische lineare Algebra

wikitext:
[[Datei:Z88v13 1.jpg|mini|Die Modellierung durch [[Finite-Elemente-Methode|finite Elemente]], wie hier zur Spannungsanalyse eines Hubkolbens (Dieselmotor), führt auf lineare Gleichungssysteme mit sehr vielen Gleichungen und Unbekannten.]]
Die '''numerische lineare Algebra''' ist ein zentrales Teilgebiet der [[Numerische Mathematik|numerischen Mathematik]]. Sie beschäftigt sich mit der Entwicklung und der Analyse von Rechenverfahren ([[Algorithmus|Algorithmen]]) für Problemstellungen der [[Lineare Algebra|linearen Algebra]], insbesondere der Lösung von [[Lineares Gleichungssystem|linearen Gleichungssystemen]] und [[Eigenwertproblem]]en. Solche Probleme spielen in allen [[Naturwissenschaft|Natur-]] und [[Ingenieurwissenschaften]], aber auch in der [[Ökonometrie]] und in der [[Statistik]] eine große Rolle.

Die Algorithmen der numerischen linearen Algebra lassen sich grob in zwei Gruppen einteilen: in die ''direkten Verfahren'', die theoretisch nach endlich vielen Rechenschritten die exakte Lösung eines Problems liefern, und in die ''[[Iteration|iterativen]] Verfahren'', bei denen die exakte Lösung schrittweise immer genauer angenähert wird. Da aber auch die direkten Verfahren wegen der beim Rechnen mit endlicher Genauigkeit entstehenden Rundungsfehler nur Näherungen für die exakte Lösung liefern, ist diese Unterscheidung nur für die Entwicklung und Untersuchung der Verfahren selbst von Bedeutung; für den praktischen Einsatz spielt sie keine große Rolle. Historisch gehen die ersten systematischen Verfahren aus beiden Gruppen – das direkte [[Gaußsches Eliminationsverfahren|gaußsche Eliminationsverfahren]] und das iterative [[Gauß-Seidel-Verfahren]] – auf [[Carl Friedrich Gauß]] zurück. Beispiele für bedeutende Verfahren des 20. Jahrhunderts, die zahlreiche Verbesserungen und Weiterentwicklungen zur Folge hatten, sind das [[Cholesky-Zerlegung|Zerlegungsverfahren]] von [[André-Louis Cholesky]], das [[QR-Algorithmus|QR-Verfahren]] für Eigenwertprobleme von [[John G. F. Francis]] und [[Wera Nikolajewna Kublanowskaja]] sowie das [[CG-Verfahren]] von [[Eduard Stiefel]] und [[Magnus Hestenes]] als erster Vertreter der wichtigen [[Krylow-Unterraum-Verfahren]].

== Einführung in die Problemstellungen ==
Ein – auch historisch gesehen – zentraler Anfangspunkt der elementaren linearen Algebra sind lineare Gleichungssysteme. Wir betrachten <math>n</math> Gleichungen der Gestalt
: <math>a_{i1} x_1 + \ldots + a_{in} x_n = b_i</math>
für <math>n</math> Unbekannte <math>x_1, \dotsc, x_n</math>. Die [[Koeffizient]]en <math>a_{ij}</math> und <math>b_i</math> sind gegebene Zahlen; die gesuchten Werte für <math>x_1, \dotsc, x_n</math> sollen so bestimmt werden, dass alle Gleichungen erfüllt werden. Die Koeffizienten lassen sich zu einer [[Matrix (Mathematik)|Matrix]] <math>A = (a_{ij})</math> zusammenfassen; die Zahlen <math>b_i</math> und die Unbekannten <math>x_j</math> bilden [[Spaltenvektor]]en <math>\mathbf b = (b_i)</math> und <math>\mathbf x = (x_j)</math>. Auf diese Weise ergibt sich die Matrix-Vektor-Darstellung
: <math>A \cdot \mathbf x = \mathbf b</math>
eines linearen Gleichungssystems: Gesucht ist ein Vektor <math>\mathbf x</math>, der bei der [[Matrix-Vektor-Multiplikation]] mit der gegebenen Matrix <math>A</math> den gegebenen Vektor <math>\mathbf b</math> ergibt.
Als Teilgebiet der Numerik betrachtet auch die numerische lineare Algebra nur sogenannte [[Korrekt gestelltes Problem|korrekt gestellte]] Probleme, also insbesondere nur solche Probleme, die eine Lösung besitzen und bei denen die Lösung eindeutig bestimmt ist. Insbesondere wird im Folgenden stets angenommen, dass die Matrix <math>A</math> [[Reguläre Matrix|regulär]] ist, also eine [[Inverse Matrix|Inverse]] <math>A^{-1}</math> besitzt. Dann gibt es für jede rechte Seite <math>\mathbf b</math> eine eindeutig bestimmte Lösung <math>\mathbf x</math> des linearen Gleichungssystems, die formal als <math>\mathbf x = A^{-1} \mathbf b</math> angegeben werden kann.

Viele wichtige Anwendungen führen allerdings auf lineare Gleichungssysteme mit mehr Gleichungen als Unbekannten. In der Matrix-Vektor-Darstellung <math>A \cdot \mathbf x = \mathbf b</math> hat in diesem Fall die Matrix <math>A</math> mehr Zeilen als Spalten. Solche ''überbestimmten'' Systeme haben im Allgemeinen keine Lösung. Man behilft sich deshalb damit, den Vektor <math>\mathbf x </math> so zu wählen, dass die Differenz <math>\mathbf r = A \cdot \mathbf x - \mathbf b</math>, das [[Residuum (Numerische Mathematik)|Residuum]], in einem noch festzulegenden Sinn „möglichst klein“ wird. Beim mit Abstand wichtigsten Fall, dem sogenannten linearen [[Ausgleichsrechnung|Ausgleichsproblem]], wird dazu die [[Methode der kleinsten Quadrate]] verwendet: Hierbei wird <math>\mathbf x</math> so gewählt, dass die Quadratsumme <math>r_1^2 + \ldots + r_m^2</math> minimal wird, wobei <math>r_1,\dotsc,r_m</math> die Komponenten des Differenzvektors <math>\mathbf r</math> bezeichnen. Mithilfe der [[Euklidische Norm|euklidischen Norm]] lässt sich das auch so schreiben: Man wähle <math>\mathbf x</math> so, dass <math>\|A \cdot \mathbf x - \mathbf b\|_2^2</math> minimal wird.

Neben den linearen Gleichungen sind die Eigenwertprobleme ein weiteres zentrales Thema der linearen Algebra. Gegeben ist hierbei eine Matrix <math>A</math> mit <math>n</math> Zeilen und <math>n</math> Spalten; gesucht sind Zahlen <math>\lambda</math> und Vektoren <math>\mathbf x \neq \mathbf 0</math>, sodass die Gleichung
: <math>A \cdot \mathbf x = \lambda \mathbf x</math>
erfüllt ist. Man nennt dann <math>\mathbf x</math> einen Eigenvektor von <math>A</math> zum Eigenwert <math>\lambda</math>. Das Problem, alle Eigenwerte und Eigenvektoren einer Matrix zu bestimmen, ist gleichbedeutend damit, sie zu [[Diagonalmatrix|diagonalisieren]]. Das bedeutet: Man finde eine reguläre Matrix <math>S</math> und eine [[Diagonalmatrix]] <math>D</math> mit <math>S^{-1} \cdot A \cdot S = D</math>. Die Diagonaleinträge von <math>D</math> sind dann die Eigenwerte von <math>A</math> und die Spalten von <math>S</math> die zugehörigen Eigenvektoren.

Diese Probleme treten in allen Natur- und Ingenieurwissenschaften auf. Sie spielen aber auch in den [[Wirtschaftswissenschaft]]en sowie in der Statistik – und damit in allen Gebieten, die sich statistischer Methoden bedienen – eine große Rolle. Lineare Gleichungssysteme beschreiben beispielsweise Modelle in der [[Statik (Physik)|Statik]], [[Netzwerk (Elektrotechnik)|elektrische Netzwerke]] oder [[Input-Output-Analyse|volkswirtschaftliche Verflechtungen]]. So scheinbar unterschiedliche Aufgabenstellungen wie die Stabilitätsuntersuchung [[Dynamisches System|dynamischer Systeme]], [[Resonanz]]phänomene bei [[Schwingung]]en, die Bestimmung eines [[PageRank]]s oder die [[Hauptkomponentenanalyse]] in der Statistik führen alle auf Eigenwertprobleme. Lineare Gleichungen entstehen auch durch [[Linearisierung]] und [[Diskretisierung]] innerhalb anderer numerischer Verfahren. So lassen sich beispielsweise zahlreiche Modelle in Naturwissenschaft und Technik durch [[Partielle Differentialgleichung|partielle Differentialgleichungen]] beschreiben. Ihre numerische Lösung durch [[Differenzenverfahren|Differenzen-]] oder [[Finite-Elemente-Methode|Finite-Elemente-Verfahren]] führt auf Systeme mit sehr vielen Unbekannten.

In diesem Übersichtsartikel wird der Einfachheit halber angenommen, dass alle gegebenen Matrizen und Vektoren reell sind, das heißt, dass alle ihre Einträge [[Reelle Zahl|reelle Zahlen]] sind. Meist lassen sich die angesprochenen Verfahren direkt auf [[Komplexe Zahl|komplexe Zahlen]] verallgemeinern; an die Stelle der orthogonalen Matrizen tritt dann beispielsweise ihr komplexes Pendant, die [[Unitäre Matrix|unitären Matrizen]]. Mitunter ist es auch vorteilhaft, ein gegebenes komplexes Problem – etwa durch Betrachtung von [[Realteil|Real- und Imaginärteil]] – auf ein reelles zurückzuführen. Zusatzüberlegungen treten allerdings bei Eigenwertproblemen mit nichtsymmetrischen reellen Matrizen auf, denn diese können auch nichtreelle Eigenwerte und Eigenvektoren haben.

== Geschichte ==
=== Die Anfänge: Gauß und Jacobi ===
[[Datei:Bendixen - Carl Friedrich Gauß, 1828.jpg|mini|hochkant|Lithographie von Gauß in den ''Astronomischen Nachrichten'', 1828 von [[Siegfried Detlev Bendixen|Bendixen]]]]
Bereits seit der [[Antike]] sind Lösungen konkreter Problemstellungen überliefert, die aus heutiger Sicht als lineare Gleichungssysteme angesehen werden können. Die ''[[Jiu Zhang Suanshu|Neun Kapitel der Rechenkunst]]'', in denen der Stand der [[Chinesische Mathematik|chinesischen Mathematik]] des 1. Jahrhunderts n. Chr. zusammengefasst ist, enthielten dabei bereits tabellarische Rechenvorschriften, die Eliminationsverfahren in Matrixdarstellung entsprachen.<ref>{{Literatur |Autor=Franka Miriam Brückler |Titel=Geschichte der Mathematik kompakt – Das Wichtigste aus Arithmetik, Geometrie, Algebra, Zahlentheorie und Logik |Verlag=Springer |Datum=2017 |ISBN=978-3-540-76687-2 |Seiten=103 f}}</ref> Die systematische Untersuchung linearer Gleichungssysteme setzte gegen Ende des 17. Jahrhunderts mit ihrer Formulierung mithilfe allgemeiner Koeffizienten ein. Nach Vorarbeiten von [[Gottfried Wilhelm Leibniz]] und [[Colin Maclaurin]] veröffentlichte [[Gabriel Cramer]] 1750 eine explizite Lösungsformel für beliebig viele Unbekannte mithilfe von [[Determinante]]n. Mit dieser [[Cramersche Regel|cramerschen Regel]] war das Problem theoretisch vollständig gelöst, auch in Hinblick auf Existenz und Eindeutigkeit von Lösungen. Für deren praktische Berechnung erwies sich die Formel jedoch als völlig ungeeignet, weil der Rechenaufwand dabei mit der Anzahl der Unbekannten astronomisch schnell anwächst (siehe auch [[Cramersche Regel#Rechenaufwand]]).<ref>Chabert: ''A History of Algorithms.'' 1999, S. 283 f.</ref>

Die erste Verwendung und Beschreibung systematischer Rechenverfahren für lineare Gleichungen geht auf [[Carl Friedrich Gauß]] (1777–1855) zurück. Zu Beginn des 19. Jahrhunderts waren die [[Bahnbestimmung|Bestimmung der Bahndaten]] astronomischer Objekte und die [[Landesvermessung]] durch [[Triangulation (Geodäsie)|Triangulation]] die wichtigsten Anwendungsaufgaben der mathematischen Praxis. 1801 erregte Gauß großes Aufsehen, als es ihm gelang, die Bahn des neu entdeckten Kleinplaneten [[(1) Ceres|Ceres]] aus wenigen Beobachtungen so genau zu bestimmen, dass Ceres Ende des Jahres wiedergefunden werden konnte. Für das zugehörige überbestimmte Gleichungssystem verwendete er die von ihm entdeckte [[Methode der kleinsten Quadrate]]. Das von ihm zur Berechnung der Lösung eingesetzte [[Gaußsches Eliminationsverfahren|Eliminationsverfahren]] beschrieb Gauß systematisch ab 1809 im Rahmen der Bahnbestimmung des Asteroiden [[(2) Pallas|Pallas]], allerdings noch direkt angewendet auf Quadratsummen.<ref>Chabert: ''A History of Algorithms.'' 1999, S. 291 f.</ref>

[[Datei:Carl Jacobi.jpg|mini|hochkant|Carl Jacobi]]
Auch das erste Iterationsverfahren zur Lösung linearer Gleichungssysteme – das [[Gauß-Seidel-Verfahren]] – stammt von Gauß. In einem Brief an [[Christian Ludwig Gerling (Mathematiker)|Christian Ludwig Gerling]] berichtete er 1823 von einem neuen einfachen Verfahren, mit dem die Lösung Schritt für Schritt immer besser angenähert werden könne. Gauß, der inzwischen mit der [[Gaußsche Landesaufnahme|Triangulation des Königreichs Hannover]] beschäftigt war, schreibt darin, er rechne fast jeden Abend noch einen Iterationsschritt; das sei eine angenehme Abwechslung zur einförmigen Aufnahme der Messdaten. Das Verfahren sei so wenig anfällig für Fehler, dass es sich sogar „halb im Schlaf“ ausführen lasse.<ref>Chabert: ''A History of Algorithms.'' 1999, S. 296 f.</ref> 1845 veröffentlichte [[Carl Gustav Jacob Jacobi]] ein anderes, ähnliches Iterationsverfahren, das [[Jacobi-Verfahren]]. Als [[Philipp Ludwig von Seidel]], ein Schüler Jacobis, 1874 ein System mit 72 Unbekannten lösen musste, entwickelte er eine modifizierte, verbesserte Version dieser Methode. Wie sich im Nachhinein herausstellte, ist dieses Verfahren äquivalent zum Iterationsverfahren von Gauß, von dem Seidel jedoch vermutlich nichts wusste.<ref>Chabert: ''A History of Algorithms.'' 1999, S. 300–302.</ref> Jacobi veröffentlichte 1846 auch ein iteratives Verfahren zur Transformation von Matrizen, das sich zur Lösung des Eigenwertproblems für [[Symmetrische Matrix|symmetrische]] Matrizen eignet und heute ebenfalls als [[Jacobi-Verfahren (Eigenwerte)|Jacobi-Verfahren]] bezeichnet wird. Er selbst verwendete es jedoch nur als Vorbereitungsschritt, um die Diagonaleinträge der Matrix stärker dominant zu machen.<ref>Golub, Vorst: ''Eigenvalue computation in the 20th century.'' 2000, S. 42.</ref>

=== 20. Jahrhundert ===
Im Jahr 1923 wurde ein von [[André-Louis Cholesky]] entwickeltes Verfahren veröffentlicht, das bestimmte lineare Gleichungssysteme löst, indem die Koeffizientenmatrix in ein Produkt zweier einfacherer Matrizen zerlegt wird, die [[Cholesky-Zerlegung]]. Auch das gaußsche Eliminationsverfahren stellte sich im Nachhinein als ein Spezialfall solcher Matrixzerlegungsverfahren heraus. Algorithmen aus dieser Verfahrensgruppe sind auch heute noch die Standardverfahren zur Lösung mäßig großer Systeme.<ref>Chabert: ''A History of Algorithms.'' 1999, S. 310 f.</ref>

Ab Ende der 1920er Jahre kamen auch neue Ideen zur iterativen Lösung von Eigenwertproblemen auf, beginnend 1929 mit der Vorstellung der [[Potenzmethode]] durch [[Richard von Mises]]. Wie auch bei der Weiterentwicklung zur [[Inverse Iteration|inversen Iteration]] durch [[Helmut Wielandt]] 1944, können mit diesen einfachen Vektoriterationsverfahren immer nur Eigenvektoren zu einem einzelnen Eigenwert berechnet werden.<ref>Golub, Vorst: ''Eigenvalue computation in the 20th century.'' 2000, S. 43.</ref> Eine vollständige Lösung des Eigenwertproblems für beliebige Matrizen blieb aufwändig. Der Durchbruch kam hier 1961–1962 mit der Entwicklung des [[QR-Algorithmus|QR-Verfahrens]] durch den britischen Informatiker [[John G. F. Francis]] und unabhängig davon durch die russische Mathematikerin [[Wera Nikolajewna Kublanowskaja]]. Während Kublanowskaja in ihrer Arbeit von Anfang an ein tiefes Verständnis der Konvergenzeigenschaften der Methode aufzeigte, arbeitete Francis vor allem an Implementierungsdetails, die das Verfahren schnell und stabil machten. Das QR-Verfahren ist bis heute das Standardverfahren zur Berechnung aller Eigenwerte und Eigenvektoren nicht allzu großer Matrizen.<ref>Golub, Vorst: ''Eigenvalue computation in the 20th century.'' 2000, S. 47.</ref>

[[Datei:Eduard Stiefel ETH-Bib Portr 00817.jpg|mini|hochkant|Eduard Stiefel, 1955]]
Die Lösung linearer Gleichungssysteme mit sehr großen Matrizen, wie sie bei der Diskretisierung von partiellen Differentialgleichungen auftreten, blieb weiterhin schwierig. Diese Matrizen haben nur relativ wenige Einträge, die ungleich null sind, und es ist von entscheidender Bedeutung, dass ein numerisches Verfahren diese Eigenschaft ausnutzt. Ein neuer Ansatz dazu, der sich als Startpunkt zahlreicher Weiterentwicklungen herausstellen sollte, war das 1952 von [[Eduard Stiefel]] und [[Magnus Hestenes]] entwickelte [[CG-Verfahren]]. Dabei wird das lineare Gleichungssystem in dem Spezialfall, dass die Matrix symmetrisch und zusätzlich [[positiv definit]] ist, durch ein äquivalentes [[Optimierungsproblem]] ersetzt. Als noch fruchtbarer erwies sich ein anderer Zugang zum CG-Verfahren, der gleichzeitig von [[Cornelius Lanczos]] entdeckt wurde: Die durch das CG-Verfahren berechneten Näherungen befinden sich in einer aufsteigenden Kette von [[Untervektorraum|Unterräumen]], den [[Krylowraum|Krylow-Räumen]].<ref>Saad, Vorst: ''Iterative solution of linear systems in the 20th century.'' 2000, S. 12 f.</ref>

Trotz der Entdeckung dieser Zusammenhänge dauerte es relativ lange, bis konkrete Verallgemeinerungen des CG-Verfahrens entwickelt wurden. Das 1974 von [[Roger Fletcher (Mathematiker)|Roger Fletcher]] veröffentlichte [[BiCG-Verfahren]] ist zwar theoretisch für beliebige Matrizen anwendbar, erwies sich jedoch in der Praxis in vielen Fällen als instabil. Das 1975 erschienene [[MINRES-Verfahren]] ist ein [[Krylow-Unterraum-Verfahren]], für das die Matrix zwar symmetrisch sein muss, aber nicht unbedingt positiv definit wie beim CG-Verfahren.<ref>Saad, Vorst: ''Iterative solution of linear systems in the 20th century.'' 2000, S. 14 f.</ref> In der Folgezeit wurden zahlreiche Weiterentwicklungen untersucht, insbesondere Stabilisierungsversuche für das BiCG-Verfahren. Ein Beispiel für ein weit verbreitetes Krylow-Unterraum-Verfahren für beliebige lineare Gleichungssysteme ist eine Verallgemeinerung des MINRES-Verfahrens, das 1986 von [[Yousef Saad]] und Martin H. Schultz vorgestellte [[GMRES-Verfahren]]. Weitere Verfahren verwenden Synthesen aus Ideen der BiCG-Gruppe und GMRES, so das [[QMR-Verfahren]] ([[Roland W. Freund]] und [[Noel M. Nachtigal]], 1991) sowie das [[TFQMR-Verfahren]] (Freund, 1993).<ref>Saad, Vorst: ''Iterative solution of linear systems in the 20th century.'' 2000, S. 15–17.</ref> Von Anfang an wurden Krylow-Unterraum-Verfahren auch zur Berechnung von Eigenwerten verwendet, Ausgangspunkte waren hier ein [[Lanczos-Verfahren|Verfahren von Lanczos]] 1950 und das [[Arnoldi-Verfahren]] von [[Walter Edwin Arnoldi]] 1951.<ref>Golub, Vorst: ''Eigenvalue computation in the 20th century.'' 2000, S. 45.</ref>

== Grundprinzipien ==
{{Zitat
 |Text=The field of numerical linear algebra is more beautiful, and more fundamental, than its rather dull name may suggest. More beautiful, because it is full of powerful ideas that are quite unlike those normally emphasized in a linear algebra course in a mathematics department. […] More fundamental, because, thanks to a trick of history, ‘numerical’ linear algebra is really ''applied'' linear algebra.
 |Sprache=en
 |Autor=[[Lloyd N. Trefethen]], [[David Bau]]
 |Quelle=1997
 |Übersetzung=Das Fachgebiet der numerischen linearen Algebra ist schöner und grundlegender, als es sein ziemlich langweiliger Name vermuten lässt. Schöner, weil es voll mächtiger Ideen ist, die ganz anders sind als diejenigen, die normalerweise in einer Vorlesung über lineare Algebra an einem mathematischen Institut als bedeutend herausgestellt werden. […] Grundlegender, weil ‚numerische‘ lineare Algebra dank eines Tricks der Geschichte in Wirklichkeit ''angewandte'' lineare Algebra ist.
 |ref=<ref>Trefethen, Bau: ''Numerical Linear Algebra.'' 1997, S. ix.</ref>}}

=== Ausnutzung von Strukturen ===
[[Datei:Finite element sparse matrix.png|mini|Besetzungsstruktur einer dünnbesetzten Matrix, wie sie bei der Finite-Elemente-Methode auftritt; die kleinen schwarzen Quadrate stehen für die Matrixeinträge ungleich null.]]
Modelle und Fragestellungen in Wissenschaft und Technik können auf Probleme der linearen Algebra mit Millionen von Gleichungen führen. Die Einträge einer Matrix mit einer Million Zeilen und Spalten benötigen im [[Doppelte Genauigkeit|''double-precision'']]-Format 8 [[Terabyte]] Speicherplatz. Das zeigt, dass bereits die Bereitstellung der Daten eines Problems, geschweige denn seine Lösung, eine Herausforderung darstellen, wenn nicht auch seine spezielle Struktur berücksichtigt wird. Glücklicherweise führen viele wichtige Anwendungen – wie beispielsweise die Diskretisierung partieller Differentialgleichungen mit der [[Finite-Elemente-Methode]] – zwar auf sehr viele Gleichungen, in jeder einzelnen Gleichung kommen jedoch nur relativ wenige Unbekannte vor. Für die zugehörige Matrix bedeutet das, dass es in jeder Zeile nur wenige Einträge ungleich null gibt, die Matrix ist, wie man sagt, [[Dünnbesetzte Matrix|dünnbesetzt]]. Es gibt zahlreiche Methoden, um solche Matrizen effizient abzuspeichern und ihre Struktur auszunutzen. Verfahren, in denen Matrizen nur in Matrix-Vektor-Produkten vorkommen, sind für dünnbesetzte Probleme besonders gut geeignet, da dabei alle Multiplikationen und Additionen mit null nicht explizit ausgeführt werden müssen. Algorithmen, bei denen die Matrix selbst umgeformt wird, sind hingegen meist nur schwierig zu implementieren, da dann die Dünnbesetztheit im Allgemeinen verloren geht.<ref>Demmel: ''Applied Numerical Linear Algebra.'' 1997, S. 83–90.</ref>

Allgemein hat die Besetzungsstruktur, also die Anzahl und die Position der Matrixeinträge ungleich null, einen sehr großen Einfluss auf die theoretischen und numerischen Eigenschaften eines Problems. Das wird am Extremfall von [[Diagonalmatrix|Diagonalmatrizen]], also Matrizen, die nur auf der Hauptdiagonale Einträge ungleich null haben, besonders deutlich. Ein lineares Gleichungssystem mit einer Diagonalmatrix kann einfach gelöst werden, indem die Einträge auf der rechten Seite durch die Diagonalelemente dividiert werden, also mittels <math>n</math> Divisionen. Auch lineare Ausgleichsprobleme und Eigenwertprobleme sind für Diagonalmatrizen trivial. Die Eigenwerte einer Diagonalmatrix sind ihre Diagonalelemente und die zugehörigen Eigenvektoren die Standardbasisvektoren <math>\mathbf e_1, \dotsc, \mathbf e_n</math>.

Ein weiterer wichtiger Spezialfall sind die [[Dreiecksmatrix|Dreiecksmatrizen]], bei denen alle Einträge oberhalb oder unterhalb der Hauptdiagonale null sind. Gleichungssysteme mit solchen Matrizen können durch [[Gaußsches Eliminationsverfahren#Vorwärtseinsetzen|Vorwärts-]] bzw. [[Gaußsches Eliminationsverfahren#Vorwärtseinsetzen|Rückwärtseinsetzen]] einfach von oben nach unten bzw. von unten nach oben der Reihe nach aufgelöst werden. Die Eigenwerte von Dreiecksmatrizen sind wiederum trivialerweise die Einträge auf der Hauptdiagonale; zugehörige Eigenvektoren können ebenfalls durch Vorwärts- oder Rückwärtseinsetzen bestimmt werden. Ein weiterer häufiger Spezialfall dünnbesetzter Matrizen sind die [[Bandmatrix|Bandmatrizen]]: Hier sind nur die Hauptdiagonale und einige benachbarte Nebendiagonalen mit Einträgen ungleich null besetzt. Eine Abschwächung der oberen Dreiecksmatrizen sind die oberen [[Hessenbergmatrix|Hessenbergmatrizen]], bei den auch die Nebendiagonale unter der Hauptdiagonale besetzt ist. Eigenwertprobleme lassen sich mit relativ geringem Aufwand in äquivalente Probleme für Hessenberg- oder [[Tridiagonalmatrix|Tridiagonalmatrizen]] transformieren.

Aber nicht nur die Besetzungsstruktur, sondern auch andere Matrixeigenschaften spielen für die Entwicklung und Analyse numerischer Verfahren eine wichtige Rolle. Viele Anwendungen führen auf Probleme mit [[Symmetrische Matrix|symmetrischen]] Matrizen. Insbesondere die Eigenwertprobleme sind deutlich einfacher zu handhaben, wenn die gegebene Matrix symmetrisch ist,<ref>Golub, Van Loan: ''Matrix Computations.'' 1996, S. 391 ff.</ref> aber auch bei linearen Gleichungssystemen reduziert sich in diesem Fall der Lösungsaufwand im Allgemeinen um etwa die Hälfte. Weitere Beispiele für Typen von Matrizen, für die spezialisierte Algorithmen existieren, sind die [[Vandermonde-Matrix|Vandermonde-Matrizen]], die [[Toeplitz-Matrix|Toeplitz-Matrizen]] und die [[Zirkulante Matrix|zirkulanten Matrizen]].<ref>Golub, Van Loan: ''Matrix Computations.'' 1996, S. 183, S. 193, S. 201.</ref>

=== Fehleranalyse: Vektor- und Matrixnormen ===
Als Maße für die „Größe“ eines Vektors <math>\mathbf x = (x_i) \in \R^n</math> werden in der Mathematik unterschiedliche [[Vektornorm]]en verwendet. Am bekanntesten und verbreitetsten ist die [[euklidische Norm]]
: <math>\|\mathbf x\|_2 = \sqrt{\sum_{i=1}^n x_i^2} </math>,
also die Wurzel aus der Summe der Quadrate aller Vektorkomponenten. Bei der bekannten geometrischen Veranschaulichung von Vektoren als Pfeile im zwei- oder dreidimensionalen Raum entspricht dies gerade der Pfeillänge. Je nach untersuchter Fragestellung können jedoch auch andere Vektornormen wie etwa die [[Maximumsnorm]] <math>\|\mathbf x\|_{\infty}</math> oder die [[Summennorm|1-Norm]] <math>\|\mathbf x\|_1</math> geeigneter sein.

Sind <math>\mathbf x, \tilde\mathbf x \in \R^n</math> Vektoren, wobei <math>\tilde\mathbf x</math> als eine Näherung für <math>\mathbf x</math> aufgefasst werden soll, so lässt sich mithilfe einer Vektornorm <math>\| \cdot \|</math> die Genauigkeit dieser Näherung quantifizieren. Die Norm des Differenzvektors
: <math>\| \tilde\mathbf x - \mathbf x\|</math>
wird als ''(normweiser) absoluter Fehler'' bezeichnet. Betrachtet man den absoluten Fehler im Verhältnis zur Norm des „exakten“ Vektors <math>\mathbf x \neq \mathbf 0</math> erhält man den ''(normweisen) relativen Fehler''
: <math>\frac{\|\tilde\mathbf x - \mathbf x\|}{\|\mathbf x\|}</math>.
Da der relative Fehler nicht durch die [[Skalarmultiplikation|Skalierung]] von <math>\mathbf x</math> und <math>\tilde\mathbf x</math> beeinflusst wird, ist dieser das Standardmaß für den Unterschied der beiden Vektoren und wird oft auch vereinfacht nur als „Fehler“ bezeichnet.<ref>{{Literatur |Autor=Wolfgang Dahmen, Arnold Reusken |Titel=Numerik für Ingenieure und Naturwissenschaftler |Auflage=2. |Verlag=Springer |Ort=Berlin/Heidelberg |Datum=2008 |ISBN=978-3-540-76492-2 |Seiten=18 f}}</ref>

Auch die „Größe“ von Matrizen wird mit [[Norm (Mathematik)|Normen]] gemessen, den [[Matrixnorm]]en. Für die Wahl einer Matrixnorm <math>\|A\|</math> ist es wesentlich, dass sie zur verwendeten Vektornorm „passt“, insbesondere soll die Ungleichung <math>\|A \mathbf x \| \leq \|A\| \|\mathbf x\|</math> für alle <math>\mathbf x</math> erfüllt sein. Definiert man <math>\|A\|</math> für eine gegebene Vektornorm als die kleinste Zahl <math>L</math>, sodass <math>\|A \mathbf x \| \leq L \|\mathbf x\|</math> für alle <math>\mathbf x</math> gilt, dann erhält man die sogenannte [[natürliche Matrixnorm]]. Für jede Vektornorm gibt es also eine davon induzierte natürliche Matrixnorm: Für die euklidische Norm ist das die [[Spektralnorm]] <math>\|A\|_2</math>, für die Maximumsnorm ist es die [[Zeilensummennorm]] <math>\|A\|_{\infty}</math> und für die 1-Norm die [[Spaltensummennorm]] <math>\|A\|_1</math>. Analog zu Vektoren kann mithilfe einer Matrixnorm der relative Fehler
: <math>\frac{\|\tilde A - A\|}{\|A\|}</math>
bei einer Näherung einer Matrix <math>A</math> durch eine Matrix <math>\tilde A</math> quantifiziert werden.<ref>{{Literatur |Autor=Wolfgang Dahmen, Arnold Reusken |Titel=Numerik für Ingenieure und Naturwissenschaftler |Auflage=2. |Verlag=Springer |Ort=Berlin/Heidelberg |Datum=2008 |ISBN=978-3-540-76492-2 |Kapitel=2.5.1 ''Operatornormen, Konditionszahlen linearer Abbildungen.'' |Seiten=26–34}}</ref>

=== Kondition und Stabilität ===
[[Datei:Symmetric transformation qtl1.svg|mini|Zweidimensionale Veranschaulichung: Die Multiplikation mit einer Matrix ''A'' verzerrt den Einheitskreis (blau) zu einer Ellipse (grün). Die Konditionszahl von ''A'' ist das Verhältnis von großer Halbachse λ<sub>1</sub> zu kleiner Halbachse λ<sub>2</sub>, sie misst also die Stärke der Verzerrung.]]
Bei Problemen aus der Praxis sind gegebene Größen meist mit Fehlern behaftet, den ''Datenfehlern''. Zum Beispiel kann bei einem linearen Gleichungssystem <math>A \mathbf x = \mathbf b</math> die gegebene rechte Seite <math>\mathbf b</math> aus einer [[Messung]] stammen und daher eine [[Messabweichung]] aufweisen. Aber auch bei theoretisch beliebig genau bekannten Größen lassen sich [[Rundungsfehler]] bei ihrer Darstellung im Computer als [[Gleitkommazahl]]en nicht vermeiden. Es muss also davon ausgegangen werden, dass anstelle des exakten Systems <math>A \mathbf x = \mathbf b</math> in Wirklichkeit ein System <math>A \tilde\mathbf x = \tilde\mathbf b</math> mit einer gestörten rechten Seite <math>\tilde\mathbf b</math> und dementsprechend einer „falschen“ Lösung <math>\tilde\mathbf x</math> vorliegt. Die grundlegende Frage ist nun, wie stark sich Störungen der gegebenen Größen auf Störungen der gesuchten Größen auswirken. Wenn der relative Fehler der Lösung nicht wesentlich größer ist als die relativen Fehler der Eingangsgrößen, spricht man von einem ''[[Kondition (Mathematik)|gut konditionierten]]'', anderenfalls von einem ''schlecht konditionierten'' Problem. Für das Beispiel linearer Gleichungssysteme lässt sich hierzu die Abschätzung

: <math>\frac{\|\tilde\mathbf x - \mathbf x\|}{\|\mathbf x\|} \leq \|A\| \|A^{-1}\| \cdot \frac{\|\tilde\mathbf b - \mathbf b\|}{\|\mathbf b\|}</math>

beweisen. Das Problem ist also gut konditioniert, wenn <math>\|A\| \|A^{-1}\|</math>, das Produkt der Norm der Koeffizientenmatrix und der Norm ihrer [[Inverse Matrix|Inversen]], klein ist. Diese wichtige Kenngröße heißt [[Kondition (Mathematik)#Kondition von linearen Abbildungen und linearen Gleichungssystemen|Konditionszahl]] der Matrix <math>A</math> und wird mit <math>\kappa(A)</math> bezeichnet. In realen Problemen wird meist nicht nur, wie hier dargestellt, die rechte Seite <math>\mathbf b</math> fehlerbehaftet sein, sondern auch die Matrix <math>A</math>. Dann gilt eine ähnliche, kompliziertere Abschätzung, in der aber ebenfalls <math>\kappa(A)</math> die wesentliche Kennzahl zur Bestimmung der Kondition des Problems bei kleinen Datenfehlern ist.<ref>{{Literatur |Autor=Hans Rudolf Schwarz, Norbert Köckler |Titel=Numerische Mathematik |Auflage=8. |Verlag=Vieweg+Teubner |Ort=Wiesbaden |Datum=2011 |ISBN=978-3-8348-1551-4 |Seiten=53 f}}</ref> Die Definition der Konditionszahl lässt sich auf nicht quadratische Matrizen verallgemeinern und spielt dann auch eine wesentliche Rolle bei der Analyse linearer Ausgleichsprobleme. Wie gut ein solches Problem konditioniert ist, hängt allerdings nicht nur wie bei linearen Gleichungssystemen von der Konditionszahl der Koeffizientenmatrix <math>A</math> ab, sondern auch von der rechten Seite <math>\mathbf b</math>, genauer vom [[Skalarprodukt#Betrag von Vektoren und eingeschlossener Winkel|Winkel]] zwischen den Vektoren <math>A \mathbf x</math> und <math>\mathbf b</math>.<ref>Trefethen, Bau: ''Numerical Linear Algebra.'' 1997, S. 131.</ref> Nach dem [[Satz von Bauer-Fike]] lässt sich auch die Kondition des Eigenwertproblems mit Konditionszahlen beschreiben. Hier ist es jedoch nicht die Zahl <math>\kappa(A)</math>, mit der sich Störungen der Eigenwerte abschätzen lassen, sondern <math>\kappa(S)</math>, die Konditionszahl der Matrix <math>S</math>, die <math>A</math> via <math>S^{-1}AS=D</math> diagonalisiert.<ref>{{Literatur |Autor=Martin Hanke-Bourgeois |Titel=Grundlagen der Numerischen Mathematik und des Wissenschaftlichen Rechnens |Auflage=3. |Verlag=Vieweg+Teubner |Ort=Wiesbaden |Datum=2009 |ISBN=978-3-8348-0708-3 |Seiten=214}}</ref>

Während die Kondition eine Eigenschaft des zu lösenden Problems ist, ist [[Stabilität (Numerik)|Stabilität]] eine Eigenschaft des dafür verwendeten Verfahrens. Ein numerischer Algorithmus liefert – auch bei exakt gedachten Eingangsdaten – im Allgemeinen nicht die exakte Lösung des Problems. Zum Beispiel muss ein iteratives Verfahren, das eine wahre Lösung schrittweise immer genauer annähert, nach endlich vielen Schritten mit der bis dahin erreichten Näherungslösung abbrechen. Aber auch bei direkten Verfahren, die theoretisch in endlich vielen Rechenschritten die exakte Lösung ergeben, kommt es bei der Umsetzung auf dem Computer bei jeder Rechenoperation zu Rundungsfehlern. In der numerischen Mathematik werden zwei unterschiedliche Stabilitätsbegriffe verwendet, die Vorwärtsstabilität und Rückwärtsstabilität. Sei dazu allgemein <math>u</math> eine Eingabegröße eines Problems und <math>v = f(u)</math> seine exakte Lösung, aufgefasst als Wert einer Funktion <math>f</math> angewendet auf <math>u</math>. Auch wenn man die Eingabegröße als exakt vorgegeben betrachtet, wird die Berechnung mit einem Algorithmus ein anderes, „falsches“ Ergebnis <math>\tilde v = \operatorname{alg}(u)</math> liefern, aufgefasst als Wert einer anderen, „falschen“ Funktion <math>\operatorname{alg}</math> ebenfalls angewendet auf <math>u</math>. Ein Algorithmus heißt ''vorwärtsstabil'', wenn sich <math>\tilde v</math> nicht wesentlich stärker von <math>v</math> unterscheidet, als es aufgrund der Fehler in der Eingangsgröße <math>u</math> und der Kondition des Problems sowieso zu erwarten wäre.<ref>{{Literatur |Autor=Peter Deuflhard, Andreas Hohmann |Titel=Numerische Mathematik 1 |Auflage=4. |Verlag=Walter de Gruyter |Ort=Berlin |Datum=2008 |ISBN=978-3-11-020354-7 |Seiten=44}}</ref>
Mit einer formalen Definition dieses Begriffs erhält man zwar ein naheliegendes und relativ anschauliches Maß für die Stabilität, aber bei komplizierten Algorithmen ist es oft schwierig, ihre Vorwärtsstabilität zu untersuchen. Daher wird im Allgemeinen nach einer Idee von [[James H. Wilkinson]] zunächst eine sogenannte Rückwärtsanalyse betrachtet: Dazu wird ein <math>\tilde u</math> bestimmt mit <math>\operatorname{alg}(u) = f(\tilde u)</math>, das heißt: Der durch das Verfahren berechnete „falsche“ Wert wird aufgefasst als „richtiger“ Wert, der aber mit einem anderen Wert der Eingabegröße berechnet wurde.<ref>{{Literatur |Autor=Wolfgang Dahmen, Arnold Reusken |Titel=Numerik für Ingenieure und Naturwissenschaftler |Auflage=2. |Verlag=Springer |Ort=Berlin/Heidelberg |Datum=2008 |ISBN=978-3-540-76492-2 |Seiten=44}}</ref> Ein Algorithmus heißt ''rückwärtsstabil'', wenn sich <math>\tilde u</math> nicht wesentlich stärker von <math>u</math> unterscheidet, als es aufgrund der Fehler in dieser Eingangsgröße sowieso zu erwarten wäre.
Es lässt sich beweisen, dass ein rückwärtsstabiler Algorithmus auch vorwärtsstabil ist.<ref>{{Literatur |Autor=Peter Deuflhard, Andreas Hohmann |Titel=Numerische Mathematik 1 |Auflage=4. |Verlag=Walter de Gruyter |Ort=Berlin |Datum=2008 |ISBN=978-3-11-020354-7 |Seiten=49 f}}</ref>

=== Orthogonalität und orthogonale Matrizen ===
Wie die lineare Algebra zeigt, besteht ein enger Zusammenhang zwischen Matrizen und [[Basis (Vektorraum)|Basen]] des Vektorraums <math>\R^n</math>. Sind <math>n</math> [[Lineare Unabhängigkeit|linear unabhängige]] Vektoren <math>\mathbf b_1, \dotsc, \mathbf b_n</math> im <math>\R^n</math> gegeben, so sind diese eine Basis des Raums und jeder andere Vektor kann eindeutig als [[Linearkombination]] der Basisvektoren dargestellt werden. Ein [[Basiswechsel (Vektorraum)|Basiswechsel]] entspricht dabei der Multiplikation gegebener Vektoren und Matrizen mit einer Transformationsmatrix. Einen wichtigen Spezialfall bilden die [[Orthonormalbasis|Orthonormalbasen]]. Hierbei sind die Basisvektoren paarweise [[Orthogonalität|orthogonal]] zueinander („stehen senkrecht aufeinander“) und sind zudem alle auf [[Euklidische Norm|euklidische]] Länge 1 normiert, so wie die [[Standardbasis]] <math>(\mathbf e_1, \mathbf e_2, \mathbf e_3)</math> im dreidimensionalen Raum. Fasst man die Basisvektoren spaltenweise zu einer Matrix

: <math>(\mathbf b_1 | \cdots | \mathbf b_n)</math>

zusammen, so erhält man im Fall einer Orthonormalbasis eine sogenannte [[orthogonale Matrix]].

Orthonormalbasen und orthogonale Matrizen besitzen zahlreiche bemerkenswerte Eigenschaften, auf denen die wichtigsten Verfahren der modernen numerischen linearen Algebra basieren.<ref>Trefethen, Bau: ''Numerical Linear Algebra.'' 1997, S. 11.</ref> Die Tatsache, dass bei einer orthogonalen Matrix <math>Q</math> die Spalten eine Orthonormalbasis bilden, lässt sich in Matrixschreibweise durch die Gleichung <math>Q^T Q = I</math> ausdrücken, wobei <math>Q^T</math> die [[transponierte Matrix]] und <math>I</math> die [[Einheitsmatrix]] bezeichnen. Das zeigt wiederum, dass eine orthogonale Matrix regulär ist und ihre [[Inverse Matrix|Inverse]] gleich ihrer Transponierten ist: <math>Q^{-1} = Q^T</math>. Die Lösung eines linearen Gleichungssystems <math>Q \mathbf x = \mathbf b</math> lässt sich daher sehr einfach bestimmen, es gilt <math>\mathbf x = Q^T \mathbf b</math>. Eine andere grundlegende Eigenschaft ist es, dass eine Multiplikation eines Vektors mit einer orthogonalen Matrix seine euklidische Norm unverändert lässt
:<math>\|Q \mathbf x\|_2 = \|\mathbf x\|_2</math>.
Damit folgt für die Spektralnorm <math>\|Q\|_2 = 1</math> und für die Konditionszahl ebenfalls
: <math>\kappa(Q) = \|Q\|_2 \|Q^{-1}\|_2 = 1</math>,
denn <math>Q^{-1} = Q^T</math> ist ebenfalls eine orthogonale Matrix. Multiplikationen mit orthogonalen Matrizen bewirken also keine Vergrößerung des relativen Fehlers.<ref>{{Literatur |Autor=Wolfgang Dahmen, Arnold Reusken |Titel=Numerik für Ingenieure und Naturwissenschaftler |Auflage=2. |Verlag=Springer |Ort=Berlin/Heidelberg |Datum=2008 |ISBN=978-3-540-76492-2 |Seiten=94}}</ref>

Orthogonale Matrizen spielen auch eine wichtige Rolle in der Theorie und der numerischen Behandlung von Eigenwertproblemen. Nach der einfachsten Version des [[Spektralsatz]]es lassen sich symmetrische Matrizen orthogonal diagonalisieren. Damit ist gemeint: Zu einer Matrix <math>A</math>, für die <math>A^T = A</math> gilt, existiert eine orthogonale Matrix <math>Q</math> und eine [[Diagonalmatrix]] <math>D</math> mit
: <math>Q^T A Q = D</math>.
Auf der Diagonale von <math>D</math> stehen die Eigenwerte von <math>A</math> und die Spalten von <math>Q</math> bilden eine Orthonormalbasis aus Eigenvektoren. Insbesondere ist nach dem oben erwähnten Satz von Bauer-Fike das Eigenwertproblem für symmetrische Matrizen stets gut konditioniert.<ref>Demmel: ''Applied Numerical Linear Algebra.'' 1997, S. 150.</ref> Mit der sogenannten [[Schur-Zerlegung|schurschen Normalform]] existiert eine Verallgemeinerung dieser orthogonalen Transformation für nichtsymmetrische Matrizen.<ref>Demmel: ''Applied Numerical Linear Algebra.'' 1997, S. 146–148.</ref>

[[Datei:Householdertransformation.svg|mini|Eine Multiplikation mit einer Householder-Matrix spiegelt einen gegebenen Vektor bei geeigneter Wahl der Spiegelebene auf die x-Achse.]]
Es gibt zwei spezielle, leicht handhabbare Arten orthogonaler Matrizen, die in zahllosen konkreten Verfahren der numerischen linearen Algebra zum Einsatz kommen: die [[Householdertransformation|Householder-Matrizen]] und die [[Givens-Rotation]]en. Householder-Matrizen haben die Gestalt
: <math>H = I - 2 \mathbf v \mathbf v^T</math>
mit einem Vektor <math>\mathbf v \in \R^n</math> mit <math>\| \mathbf v\|_2 = 1</math>. Geometrisch beschreiben sie [[Spiegelung (Geometrie)|Spiegelungen]] des <math>n</math>-dimensionalen Raums <math>\R^n</math> an der <math>(n-1)</math>-dimensionalen [[Hyperebene]] durch den Nullpunkt, die orthogonal zu <math>\mathbf v</math> ist. Ihre wesentliche Eigenschaft ist die folgende: Zu einem gegebenen Vektor <math>\mathbf a</math> lässt sich leicht ein Vektor <math>\mathbf v</math> bestimmen, sodass die zugehörige Householder-Matrix <math>H = I - 2 \mathbf v \mathbf v^T</math> den Vektor <math>\mathbf a</math> auf ein Vielfaches von <math>\mathbf e_1</math> transformiert: <math>H \mathbf a = \sigma \mathbf e_1</math> mit <math>\sigma = \pm\|a\|_2</math>. Dieses <math>H</math> transformiert also alle Einträge von <math>\mathbf a</math> bis auf den ersten zu null. Wendet man auf diese Weise geeignete Householder-Transformationen Spalte für Spalte nacheinander auf eine Matrix <math>A</math> an, so können alle Einträge von <math>A</math> unterhalb der Hauptdiagonale zu null transformiert werden.

Givens-Rotationen sind spezielle [[Drehung]]en des <math>\R^n</math>, die eine zweidimensionale Ebene drehen und die anderen <math>n-2</math> Dimensionen fest lassen. Die Transformation eines Vektors <math>\mathbf a</math> mit einer Givens-Rotation verändert daher nur zwei Einträge von <math>\mathbf a</math>. Durch geeignete Wahl des Drehwinkels kann dabei einer der beiden Einträge auf null gesetzt wird. Während Householder-Transformationen, angewendet auf Matrizen, ganze Teilspalten transformieren, können Givens-Rotationen dazu verwendet werden, gezielt einzelne Matrixeinträge zu ändern.

Householder-Transformationen und Givens-Rotationen können also dazu benutzt werden, eine gegebene Matrix <math>A</math> auf eine obere Dreiecksmatrix zu transformieren, oder anders ausgedrückt, eine [[QR-Zerlegung]] <math>A = QR</math> in eine orthogonale Matrix und eine obere Dreiecksmatrix zu berechnen. Die QR-Zerlegung ist ein wichtiges und vielseitiges Werkzeug, das in zahlreichen Verfahren aus allen Bereichen der numerischen linearen Algebra zum Einsatz kommt.<ref>Higham: ''Accuracy and Stability of Numerical Algorithms.'' 2002, S. 354 ff.</ref>

=== Ähnlichkeitstransformationen ===
In der linearen Algebra wird zur Untersuchung des Eigenwertproblems <math>A \mathbf x = \lambda \mathbf x</math> einer Matrix <math>A</math> mit <math>n</math> Zeilen und <math>n</math> Spalten das [[Charakteristisches Polynom|charakteristische Polynom]] <math>\chi_A(\lambda) = \det(\lambda I - A)</math> verwendet, ein [[Polynom]] vom Grad <math>n</math>. Die Eigenwerte von <math>A</math> sind genau die [[Nullstelle]]n von <math>\chi_A</math>. Mit dem [[Fundamentalsatz der Algebra]] ergibt sich daraus direkt, dass <math>A</math> genau <math>n</math> Eigenwerte besitzt, wenn sie mit ihrer [[Algebraische Vielfachheit|Vielfachheit]] gezählt werden. Allerdings können diese Eigenwerte, auch bei reellen Matrizen, komplexe Zahlen sein. Ist jedoch <math>A</math> eine reelle symmetrische Matrix, dann sind ihre Eigenwerte alle reell.

Das charakteristische Polynom hat zwar eine große theoretische Bedeutung für das Eigenwertproblem, zur numerischen Berechnung ist es jedoch nicht geeignet. Das liegt vor allem daran, dass das Problem, aus gegebenen Koeffizienten die Nullstellen des zugehörigen Polynoms zu berechnen, im Allgemeinen sehr schlecht konditioniert ist: Kleine Störungen wie Rundungsfehler an Koeffizienten eines Polynoms können zu einer starken Verschiebung seiner Nullstellen führen. Damit würde ein gegebenenfalls gut konditioniertes Problem – die Berechnung der Eigenwerte – durch ein zwar mathematisch äquivalentes, aber schlecht konditioniertes Problem – die Berechnung der Nullstellen des charakteristischen Polynoms – ersetzt.<ref>{{Literatur |Autor=Peter Deuflhard, Andreas Hohmann |Titel=Numerische Mathematik 1 |Auflage=4. |Verlag=Walter de Gruyter |Ort=Berlin |Datum=2008 |ISBN=978-3-11-020354-7 |Seiten=135}}</ref> Viele numerische Verfahren zur Berechnung von Eigenwerten und Eigenvektoren beruhen daher auf einer anderen Grundidee, den Ähnlichkeitstransformationen: Zwei quadratische Matrizen <math>A</math> und <math>B</math> werden [[Ähnlichkeit (Matrix)|ähnlich]] genannt, wenn es eine reguläre Matrix <math>S</math> mit
: <math>B = S^{-1} A S</math>
gibt. Es kann gezeigt werden, dass zueinander ähnliche Matrizen die gleichen Eigenwerte haben, bei einer Ähnlichkeitstransformation der Matrix <math>A</math> auf die Matrix <math>B</math> ändern sich also die gesuchten Eigenwerte nicht. Auch die zugehörigen Eigenvektoren lassen sich leicht ineinander umrechnen: Ist <math>\mathbf x</math> ein Eigenvektor von <math>B</math>, dann ist <math>S \mathbf x</math> ein Eigenvektor von <math>A</math> zum gleichen Eigenwert. Das führt zu Grundideen, die in zahlreichen Algorithmen zum Einsatz kommen. Die Matrix <math>A</math> wird durch Ähnlichkeitstransformation in eine Matrix überführt, für die das Eigenwertproblem effizienter zu lösen ist, oder es wird eine Folge von Ähnlichkeitstransformationen konstruiert, bei denen sich die Matrix einer Diagonal- oder Dreiecksmatrix immer weiter annähert. Aus den oben genannten Gründen werden dabei für die Transformationsmatrizen <math>S</math> meist orthogonale Matrizen verwendet.<ref>Börm, Mehl: ''Numerical Methods for Eigenvalue Problems.'' 2012, S. 15–19.</ref>

== Verfahren und Verfahrensklassen ==
=== Gaußsches Eliminationsverfahren ===
{{Hauptartikel|Gaußsches Eliminationsverfahren}}
Das klassische Eliminationsverfahren von Gauß zur Lösung linearer Gleichungssysteme ist ein Ausgangspunkt und Vergleichsmaßstab für weiterentwickelte Verfahren. Es wird aber auch immer noch als einfaches und zuverlässiges Verfahren – insbesondere in seiner Modifikation als [[Gaußsches Eliminationsverfahren#LR-Zerlegung|LR-Zerlegung]] (siehe unten) – für nicht zu große, gut konditionierte Systeme in der Praxis verbreitet eingesetzt. Das Verfahren eliminiert systematisch Variablen aus den gegebenen Gleichungen, indem geeignete Vielfache einer Gleichung von einer anderen Gleichung subtrahiert werden, bis ein System in Stufenform entsteht, das der Reihe nach von unten nach oben aufgelöst werden kann.

Numerische Überlegungen kommen ins Spiel, wenn die Stabilität des Verfahrens betrachtet wird. Soll mit dem <math>k</math>-ten Diagonalelement <math>a_{kk}</math> der Matrix <math>A</math> ein Element <math>a_{ik}</math> in derselben Spalte eliminiert werden, dann muss mit dem Quotienten
: <math>l_{ik} := \frac{a_{ik}}{a_{kk}}</math>
das <math>l_{ik}</math>-fache der <math>k</math>-ten Zeile von der <math>i</math>-Zeile subtrahiert werden.
Dazu muss zumindest <math>a_{kk} \neq 0</math> gelten, was sich durch geeignete Zeilenvertauschungen für eine reguläre Matrix <math>A</math> stets erreichen lässt. Aber mehr noch: Ist <math>|a_{kk}|</math> sehr klein im Vergleich zu <math>|a_{ik}|</math>, dann ergäbe sich ein sehr großer Betrag von <math>l_{ik}</math>. In den nachfolgenden Schritten bestünde dann die Gefahr von [[Stellenauslöschung]]en durch Subtraktionen großer Zahlen und das Verfahren wäre instabil. Daher ist es wichtig, durch Zeilenvertauschungen, sogenannte [[Pivotisierung]], dafür zu sorgen, dass die Beträge <math>|l_{ik}|</math> möglichst klein bleiben.<ref>{{Literatur |Autor=Martin Hanke-Bourgeois |Titel=Grundlagen der Numerischen Mathematik und des Wissenschaftlichen Rechnens |Auflage=3. |Verlag=Vieweg+Teubner |Ort=Wiesbaden |Datum=2009 |ISBN=978-3-8348-0708-3 |Seiten=46–57}}</ref>

=== Faktorisierungsverfahren ===
Die wichtigsten direkten Verfahren zur Lösung linearer Gleichungssysteme lassen sich als Faktorisierungsverfahren darstellen. Deren Grundidee ist es, die Koeffizientenmatrix <math>A</math> des Systems <math>A \mathbf x = \mathbf b</math> in ein Produkt aus zwei oder mehr Matrizen zu zerlegen, allgemein etwa <math>A = B C</math>. Das lineare Gleichungssystem lautet damit <math>BC \mathbf x = \mathbf b</math> und wird in zwei Schritten gelöst: Zuerst wird die Lösung <math>\mathbf y</math> des Systems <math>B \mathbf y = \mathbf b</math> berechnet und anschließend die Lösung <math>\mathbf x</math> des Systems <math>C \mathbf x = \mathbf y</math>. Es gilt dann <math>A \mathbf x = BC \mathbf x = B \mathbf y = \mathbf b</math>, also ist <math>\mathbf x</math> die Lösung des ursprünglichen Problems. Auf den ersten Blick scheint dabei nur die Aufgabe, ''ein'' lineares Gleichungssystem zu lösen, durch die Aufgabe, ''zwei'' lineare Gleichungssysteme zu lösen, ersetzt zu werden. Die Idee dahinter ist es jedoch, die Faktoren <math>B</math> und <math>C</math> so zu wählen, dass die beiden Teilsysteme wesentlich einfacher zu lösen sind als das Ausgangssystem. Ein offensichtlicher Vorteil der Verfahrensklasse ergibt sich im Fall, dass mehrere lineare Gleichungssysteme mit derselben Koeffizientenmatrix <math>A</math>, aber unterschiedlichen rechten Seiten gelöst werden sollen: Die Faktorisierung von <math>A</math>, im Allgemeinen der aufwändigste Verfahrensschritt, muss dann nur einmal berechnet werden.

==== LR-Zerlegung ====
{{Hauptartikel|LR-Zerlegung}}
Das gaußsche Eliminationsverfahren kann als Faktorisierungsverfahren aufgefasst werden. Trägt man die Koeffizienten <math>l_{ik}</math> für <math>1 \leq k \leq i \leq n</math> in eine Matrix ein, ergibt sich ohne Zeilenvertauschungen <math>A = LR</math> mit einer unteren Dreiecksmatrix <math>L</math> und einer oberen Dreiecksmatrix <math>R</math>. Zusätzlich ist <math>L</math> [[Unipotente Matrix|unipotent]], das heißt alle Einträge auf der Hauptdiagonale von <math>L</math> sind gleich 1. Wie gesehen müssen im Allgemeinen bei der Gauß-Elimination Zeilen von <math>A</math> vertauscht werden. Das lässt sich formal mit Hilfe einer [[Permutationsmatrix]] <math>P</math> darstellen, indem anstelle von <math>A</math> die zeilenpermutierte Matrix <math>PA</math> faktorisiert wird:
: <math>PA = LR</math>.
Nach dem Grundprinzip der Faktorisierungsverfahren werden zur Lösung von <math>A \mathbf x = \mathbf b</math> also zunächst wie beschrieben die Dreiecksmatrizen <math>L</math> und <math>R</math> sowie gegebenenfalls die zugehörige Permutation bestimmt. In nächsten Schritt wird <math>L \mathbf y = P \mathbf b</math> mit der zeilenpermutierten rechten Seite durch Vorwärtseinsetzen und schließlich <math>R \mathbf x = \mathbf y</math> durch Rückwärtseinsetzen gelöst.

Die LR-Zerlegung und damit das gaußsche Eliminationsverfahren ist mit geeigneter Pivotisierung „fast immer stabil“, das heißt in den meisten praktischen Anwendungsaufgaben tritt keine große Fehlerverstärkung auf. Es lassen sich jedoch [[Pathologisches Beispiel|pathologische Beispiele]] angeben, bei denen die Verfahrensfehler [[Exponentielles Wachstum|exponentiell]] mit der Anzahl der Unbekannten anwachsen.<ref>Demmel: ''Applied Numerical Linear Algebra.'' 1997, S. 49.</ref>

==== Cholesky-Zerlegung ====
{{Hauptartikel|Cholesky-Zerlegung}}
Die Cholesky-Zerlegung ist wie die LR-Zerlegung eine Faktorisierung der Matrix <math>A</math> in zwei Dreiecksmatrizen für den in vielen Anwendungen auftretenden Fall, dass <math>A</math> symmetrisch und [[Definitheit|positiv definit]] ist, also <math>A^T = A</math> erfüllt und nur positive Eigenwerte besitzt. Unter diesen Voraussetzungen gibt es eine untere Dreiecksmatrix <math>L</math> mit
: <math>A = LL^T</math>.
Ein allgemeiner Ansatz für die Matrixeinträge von <math>L</math> führt auf ein explizites Verfahren, mit dem diese spaltenweise oder zeilenweise nacheinander berechnet werden können, das Cholesky-Verfahren. Durch diese Ausnutzung der Symmetrie von <math>A</math> reduziert sich der Rechenaufwand gegenüber der LR-Zerlegung auf etwa die Hälfte.<ref>{{Literatur |Autor=Wolfgang Dahmen, Arnold Reusken |Titel=Numerik für Ingenieure und Naturwissenschaftler |Auflage=2. |Verlag=Springer |Ort=Berlin/Heidelberg |Datum=2008 |ISBN=978-3-540-76492-2 |Seiten=88}}</ref>

Symmetrische und positiv definite Koeffizientenmatrizen treten klassisch bei der Formulierung der sogenannten [[Normalgleichungen]] zur Lösung linearer Ausgleichsprobleme auf. Man kann zeigen, dass das Problem, <math>\|A \mathbf x - \mathbf b\|_2^2</math> zu minimieren, äquivalent damit ist, das lineare Gleichungssystem
: <math>A^T A \mathbf x = A^T \mathbf b</math>
zu lösen. Die Koeffizientenmatrix <math>A^T A</math> dieser Normalgleichungen ist symmetrisch und, wenn die Spalten von <math>A</math> linear unabhängig sind, auch positiv definit. Es kann also mit dem Cholesky-Verfahren gelöst werden.<ref>{{Literatur |Autor=Wolfgang Dahmen, Arnold Reusken |Titel=Numerik für Ingenieure und Naturwissenschaftler |Auflage=2. |Verlag=Springer |Ort=Berlin/Heidelberg |Datum=2008 |ISBN=978-3-540-76492-2 |Seiten=127 f}}</ref> Dieses Vorgehen empfiehlt sich jedoch nur für gut konditionierte Probleme mit wenigen Unbekannten. Im Allgemeinen ist nämlich das System der Normalgleichungen deutlich schlechter konditioniert als das ursprünglich gegebene lineare Ausgleichsproblem. Es ist dann besser, nicht den Umweg über die Normalgleichungen zu gehen, sondern direkt eine QR-Zerlegung von <math>A</math> zu verwenden.

==== QR-Zerlegung ====
{{Hauptartikel|QR-Zerlegung}}
Das lineare Gleichungssystem <math>A \mathbf x = \mathbf b</math> kann nach der Berechnung einer QR-Zerlegung
: <math>A = QR</math>
direkt nach dem allgemeinen Prinzip der Faktorisierungsverfahren gelöst werden; es ist nur noch <math>R \mathbf x = \mathbf y</math> mit <math>\mathbf y = Q^T \mathbf b</math> durch Rückwärtseinsetzen zu bestimmen. Aufgrund der guten Kondition orthogonaler Matrizen treten dabei die möglichen Instabilitäten der LR-Zerlegung nicht ein.<ref>Demmel: ''Applied Numerical Linear Algebra.'' 1997, S. 123 f.</ref> Allerdings ist der Rechenaufwand im Allgemeinen etwa doppelt so groß, sodass unter Umständen eine Abwägung der Verfahren getroffen werden muss.<ref>Meister: ''Numerik linearer Gleichungssysteme.'' 2015, S. 64.</ref>

Die QR-Zerlegung ist auch das gängige Verfahren zur Lösung nicht zu großer, gut konditionierter linearer Ausgleichsprobleme.
Für das Problem
: Minimiere <math>\|A \mathbf x - \mathbf b\|_2^2</math>
gilt mit <math>A = QR</math> und <math>\mathbf r = A \mathbf x - \mathbf b</math>
: <math>\|\mathbf r\|_2^2 = \| Q^T \mathbf r\|_2^2 = \|Q^TQR \mathbf x - Q^T \mathbf b\|_2^2 = \|R \mathbf x - Q^T \mathbf b\|_2^2</math>.
Dabei wurde verwendet, dass <math>Q^T</math> orthogonal ist, also die euklidische Norm erhält, und dass <math>Q^T Q = I</math> gilt.
Der letzte Ausdruck lässt sich einfach durch Rückwärtseinsetzen der ersten <math>n</math> Zeilen von <math>R \mathbf x = Q^T \mathbf b</math> minimieren.<ref>{{Literatur |Autor=Peter Deuflhard, Andreas Hohmann |Titel=Numerische Mathematik 1 |Auflage=4. |Verlag=Walter de Gruyter |Ort=Berlin |Datum=2008 |ISBN=978-3-11-020354-7 |Seiten=76 f}}</ref>

=== Fixpunktiteration mit Splitting-Verfahren ===
{{Hauptartikel|Splitting-Verfahren}}
Eine völlig andere Idee, um <math>A \mathbf x = \mathbf b</math> zu lösen, besteht darin, einen Startvektor <math>\mathbf x_0</math> zu wählen und daraus schrittweise <math>\mathbf x_1 = F(\mathbf x_0)</math>, <math>\mathbf x_2 = F(\mathbf x_1)</math> immer neue Näherungen an die gesuchte Lösung zu berechnen. Im Fall der [[Konvergente Folge|Konvergenz]] der Folge <math>(\mathbf x_0, \mathbf x_1, \mathbf x_2, \dotsc) </math> gegen <math>\mathbf x</math> wird dann diese [[Iteration]] nach einer geeigneten Anzahl <math>N</math> von Schritten mit einer ausreichend genauen Näherung <math>\mathbf x_N</math> für <math>\mathbf x</math> abgebrochen. Die einfachsten und wichtigsten Verfahren dieser Art verwenden eine Iteration der Gestalt
: <math>\mathbf x_{k+1} = M \mathbf x_k + \mathbf c</math>
mit einer geeigneten Matrix <math>M</math> und einem geeigneten Vektor <math>\mathbf c</math>.
Es lässt sich beweisen, dass solche Verfahren genau dann konvergieren, wenn alle Eigenwerte von <math>M</math> einen Betrag echt kleiner als 1 haben. In diesem Fall konvergieren die Iterierten <math>\mathbf x_k</math> gegen eine Lösung der Gleichung <math>\mathbf x = M \mathbf x + \mathbf c</math>, also gegen einen [[Fixpunkt (Mathematik)|Fixpunkt]] der Iterationsfunktion <math>F(\mathbf y) = M \mathbf y + \mathbf c</math>.

Ein systematisches Vorgehen bei der Suche nach geeigneten Algorithmen dieser Gestalt ermöglicht die Idee der Splitting-Verfahren. Dabei wird die Matrix <math>A</math> in eine Summe
: <math>A = B + C</math>
zerlegt mit einer leicht zu invertierenden Matrix <math>B</math> und dem Rest <math>C = A - B</math>. Durch Einsetzen und Umstellen ergibt sich damit aus <math>A \mathbf x = \mathbf b</math> die Fixpunktgleichung
: <math>\mathbf x = -B^{-1}C \mathbf x + B^{-1} \mathbf b</math>.
Mit <math>M = -B^{-1}C</math> und <math>\mathbf c = B^{-1} \mathbf b</math> erhält man so ein Iterationsverfahren der Gestalt <math>\mathbf x_{k+1} = M \mathbf x_k + \mathbf c</math>, das im Falle der Konvergenz die Lösung von <math>A \mathbf x = \mathbf b</math> liefert. Die Konvergenzgeschwindigkeit ist umso größer, je kleiner der betragsgrößte Eigenwert der Iterationsmatrix <math>M</math> ist. Dieser lässt sich auch durch beliebige Matrixnormen von <math>M</math> abschätzen.<ref>Meister: ''Numerik linearer Gleichungssysteme.'' 2015, S. 72–75.</ref>

Als klassische Beispiele für Splitting-Verfahren verwendet das [[Jacobi-Verfahren]] für <math>B</math> die Diagonalmatrix mit der Hauptdiagonale von <math>A</math>, das [[Gauß-Seidel-Verfahren]] den unteren Dreiecksanteil von <math>A</math>. Zur Konvergenzbeschleunigung der Fixpunktverfahren lässt sich die Idee der [[Relaxation (Numerische Mathematik)|Relaxation]] nutzen. Denkt man sich die Iteration in der Form
: <math>\mathbf x_{k+1} = \mathbf x_k + \Delta \mathbf x_k </math>
mit der Korrektur <math>\Delta \mathbf x_k</math> im <math>k</math>-ten Schritt dargestellt, geht man mit einem geeignet gewählten Relaxationsparameter <math>\omega</math> zu
: <math>\mathbf x_{k+1} = \mathbf x_k + \omega \Delta \mathbf x_k </math>
über.<ref>Meister: ''Numerik linearer Gleichungssysteme.'' 2015, S. 85.</ref> Zum Beispiel erhält man auf diese Weise aus dem Gauß-Seidel-Verfahren das [[SOR-Verfahren]].<ref>Meister: ''Numerik linearer Gleichungssysteme.'' 2015, S. 96.</ref>

=== Jacobi-Verfahren zur Eigenwertberechnung ===
{{Hauptartikel|Jacobi-Verfahren (Eigenwerte)}}
Ein einfaches, aber zuverlässiges iteratives Verfahren zur Lösung des Eigenwertproblems für symmetrische Matrizen ist das Jacobi-Verfahren.<ref>Börm, Mehl: ''Numerical Methods for Eigenvalue Problems.'' 2012, S. 39.</ref> Es erzeugt durch sukzessive Ähnlichkeitstransformationen mit [[Givens-Rotation]]en eine Folge von symmetrischen Matrizen, die alle ähnlich zu der gegebenen symmetrischen Matrix <math>A</math> sind und gegen eine Diagonalmatrix <math>D</math> konvergieren. Bricht man das Verfahren nach einer geeigneten Anzahl von Schritten ab, erhält man deshalb mit den Diagonaleinträgen von <math>D</math> Näherungen für die gesuchten Eigenwerte von <math>A</math>.

In jedem Schritt wird die Givens-Rotation, in diesem Zusammenhang auch als ''Jacobi-Rotation'' bezeichnet, so gewählt, dass der Eintrag an der Matrixposition <math>(i,j)</math> und der symmetrisch dazu liegende bei <math>(j,i)</math> zu null transformiert werden. Dabei ist jedoch zu beachten, dass bei dieser Transformation die ganze <math>i</math>-te und <math>j</math>-te Zeile sowie die ganze <math>i</math>-te und <math>j</math>-te Spalte der Matrix geändert wird. Deshalb werden die in einem Schritt erzeugten Nullen im Allgemeinen in den folgenden Schritten wieder zunichtegemacht. Dennoch konvergieren bei geeigneter Wahl der Positionen für die Jacobi-Rotationen alle Nichtdiagonalelemente gegen null. Das ''klassische'' Jacobi-Verfahren wählt dazu in jedem Iterationsschritt diejenige Position <math>(i,j)</math>, an der sich das Nichtdiagonalelement mit dem größten Absolutbetrag befindet. Bei einer Handrechnung war diese Position normalerweise schnell zu erkennen, bei der Umsetzung als Computerprogramm ist der Aufwand für die Suche danach im Vergleich zu den übrigen Rechenoperationen jedoch erheblich. Daher wird heute meist das ''zyklische'' Jacobi-Verfahren verwendet. Dabei werden die Positionen in einer vorher fest gewählten Reihenfolge zyklisch durchlaufen, etwa einfach spaltenweise.<ref>Börm, Mehl: ''Numerical Methods for Eigenvalue Problems.'' 2012, S. 46.</ref> Es lässt sich beweisen, dass sowohl das klassische als auch das zyklische Jacobi-Verfahren stets konvergieren. Im Vergleich zu moderneren Algorithmen ist die Konvergenz allerdings relativ langsam. Für dünnbesetzte Matrizen ist das Jacobi-Verfahren nicht geeignet, da im Laufe der Iteration die Matrix mit immer mehr Nichtnulleinträgen aufgefüllt wird.<ref>Demmel: ''Applied Numerical Linear Algebra.'' 1997, S. 232–235.</ref>

=== Vektoriteration ===
Eine einfache Ausgangsidee zur Berechnung von Eigenvektoren einer Matrix <math>A</math> ist die [[Potenzmethode]]. Ein Startvektor <math>\mathbf x_0 \neq \mathbf 0</math> wird iterativ immer wieder mit <math>A</math> multipliziert
: <math>\mathbf x_{k+1} = A \mathbf x_{k}</math>
oder, ausgedrückt mit der <math>k</math>-ten Matrixpotenz, es wird <math>\mathbf x_k = A^k \mathbf x_0</math> berechnet. Dahinter steckt die geometrische Anschauung, dass der Vektor durch <math>A</math> in jedem Schritt am stärksten in die Richtung des Eigenvektors mit dem größten Eigenwert gestreckt wird. In dieser einfachen Form ist die Vektoriteration jedoch für die Praxis ungeeignet, da im Allgemeinen die Einträge von <math>\mathbf x_k</math> schnell sehr klein oder sehr groß werden. Daher wird der Vektor in jedem Schritt zusätzlich zur Multiplikation mit <math>A</math> noch mit einer Vektornorm auf <math>\|\mathbf x_k\| = 1</math> normiert. Man kann dann unter gewissen Voraussetzungen an die Lage der Eigenwerte beweisen, dass dieses Verfahren bis auf möglicherweise einen skalaren Vorfaktor tatsächlich gegen einen Eigenvektor zum betragsgrößten Eigenwert konvergiert.

Wendet man diese Idee formal auf die inverse Matrix <math>A^{-1}</math> an, so erhält man einen Eigenvektor zum betrags''kleinsten'' Eigenwert von <math>A</math>. Hierzu wird freilich nicht die Inverse selbst berechnet, sondern es wird in jedem Schritt das lineare Gleichungssystem
: <math>A \mathbf x_{k+1} = \mathbf x_k</math>
gelöst. Eine weitere Verallgemeinerung der Idee erhält man mithilfe eines sogenannten Shiftparameters <math>\sigma</math>. Ein Eigenvektor von <math>A</math> zu dem am nächsten bei <math>\sigma</math> liegenden Eigenwert ist nämlich auch ein Eigenvektor zum betragskleinsten Eigenwert der „geshifteten“ Matrix <math>A - \sigma I</math>. Mit der zugehörigen Iteration
: <math>(A -\sigma I)\mathbf x_{k+1} = \mathbf x_k</math>
und Normierung von <math>\mathbf x_k</math> in jedem Schritt ergibt sich das Verfahren der [[Inverse Iteration|inversen Vektoriteration]].

Vektoriterationsverfahren berechnen also zunächst einen bestimmten Eigenvektor von <math>A</math>, der zugehörige Eigenwert kann mithilfe des [[Rayleigh-Quotient]]en erhalten werden. Sie sind offenbar dann gut geeignet, wenn – wie häufig in bestimmten Anwendungsfällen – nur der größte, nur der kleinste oder allgemeiner nur ein einzelner Eigenwert mitsamt seinem Eigenvektor gesucht ist.<ref>{{Literatur |Autor=Peter Deuflhard, Andreas Hohmann |Titel=Numerische Mathematik 1 |Auflage=4. |Verlag=Walter de Gruyter |Ort=Berlin |Datum=2008 |ISBN=978-3-11-020354-7 |Seiten=136 f}}</ref>

=== QR-Verfahren ===
{{Hauptartikel|QR-Verfahren}}
Das QR-Verfahren ist zurzeit der wichtigste Algorithmus zur Berechnung aller Eigenwerte und Eigenvektoren von nicht zu großen vollbesetzten Matrizen <math>A</math>.<ref>Börm, Mehl: ''Numerical Methods for Eigenvalue Problems.'' 2012, S. 100.</ref> Es ist ein Iterationsverfahren, das in jedem Schritt eine [[QR-Zerlegung]] verwendet, um durch wiederholte Ähnlichkeitstransformationen eine Matrixfolge zu erzeugen, die schnell gegen eine obere Dreiecksmatrix konvergiert.
Startend mit der Ausgangsmatrix <math>A_0 := A</math> wird in seiner Grundidee im <math>k</math>-ten Schritt die Matrix QR-zerlegt,

: <math>A_ k = Q_k R_k</math>,

und anschließend werden die beiden Faktoren in umgekehrter Reihenfolge wieder zusammenmultipliziert:

: <math>A_{k+1} := R_k Q_k</math>,

um die neue Näherungsmatrix zu erhalten. Wegen <math>Q_k^{-1} = Q_k^T</math> ergibt sich <math>R_k = Q_k^T A_k</math> und daraus <math>A_{k+1} = Q_k^T A_k Q_k</math>; es handelt sich bei dieser Umformung also tatsächlich um eine Ähnlichkeitstransformation mit einer orthogonalen Matrix. Wie eine genauere Analyse zeigt, besteht ein enger Zusammenhang zur Potenzmethode: Die QR-Iteration lässt sich auffassen als eine Potenzmethode, die simultan auf alle Vektoren einer Orthonormalbasis angewendet wird; durch die QR-Zerlegung in jedem Schritt wird dabei sichergestellt, dass diese Vektoren im Laufe der Iteration auch numerisch stabil orthonormiert bleiben (siehe auch [[Unterraumiteration]]). Aus dieser Darstellung ergibt sich auch ein Beweis, dass das Verfahren unter geringen Voraussetzungen an <math>A</math> gegen eine obere Dreiecksmatrix konvergiert.<ref>Trefethen, Bau: ''Numerical Linear Algebra.'' 1997, S. 213–217.</ref>

In dieser einfachen Form ist das QR-Verfahren aus zwei Gründen noch nicht für die Praxis geeignet. Zum einen ist der Rechenaufwand für die QR-Zerlegung, die in jedem Schritt bestimmt werden muss, sehr groß. Zum anderen findet die Konvergenz im Allgemeinen nur langsam statt, es müssen also viele Schritte durchgeführt werden, um eine gewünschte Genauigkeit zu erhalten. Dem ersten Punkt lässt dich dadurch begegnen, dass in einem Vorbereitungsschritt die Matrix <math>A</math> durch Ähnlichkeitstransformationen auf [[Hessenbergmatrix|Hessenberg-Gestalt]] gebracht wird. Das lässt sich durch <math>n-2</math> Transformationen mit geeigneten Householder-Matrizen erreichen. Da eine Hessenberg-Matrix nur noch <math>n-1</math> Nichtnulleinträge unter der Hauptdiagonale hat, lässt sie sich schnell mit den entsprechenden <math>n-1</math> Givens-Rotationen QR-zerlegen. Wie sich leicht zeigen lässt, erhält ein Schritt des QR-Verfahrens Symmetrie und Hessenberg-Gestalt. Da eine symmetrische Hessenberg-Matrix eine Tridiagonalmatrix ist, vereinfacht sich das Verfahren im symmetrischen Fall nochmals erheblich. Die Konvergenzgeschwindigkeit kann ähnlich wie bei der inversen Vektoriteration deutlich erhöht werden, wenn in jedem Schritt anstelle der Matrix <math>A_k</math> die Matrix <math>A_k - \sigma_k I</math> mit einem geschickt gewählten Shiftparameter <math>\sigma_k</math> transformiert wird. Für die Wahl von <math>\sigma_k</math>, der Wert sollte eine Näherung an einen Eigenwert von <math>A</math> sein, existieren verschiedene sogenannte Shiftstrategien.<ref>Trefethen, Bau: ''Numerical Linear Algebra.'' 1997, S. 219–224.</ref>

Mit einer Variante des QR-Verfahrens kann auch die sogenannte [[Singulärwertzerlegung]] einer Matrix berechnet werden.<ref>Demmel: ''Applied Numerical Linear Algebra.'' 1997, S. 242–246.</ref> Diese Verallgemeinerung der Diagonalisierung auf beliebige – sogar nicht quadratische – Matrizen wird in einigen Anwendungen, wie etwa in der [[Bildkompression]], direkt verwendet. Mithilfe der Singulärwertzerlegung können auch große, schlecht konditionierte lineare Ausgleichsprobleme gelöst werden.<ref>Demmel: ''Applied Numerical Linear Algebra.'' 1997, S. 109–117.</ref>

=== Krylow-Unterraum-Verfahren ===
{{Hauptartikel|Krylow-Unterraum-Verfahren}}
Die Krylow-Unterraum-Verfahren mit ihren zahlreichen Varianten und Spezialisierungen sind die wichtigste Verfahrensgruppe zur Lösung sowohl von linearen Gleichungssystemen als auch von Eigenwertproblemen, wenn die gegebene Matrix <math>A</math> sehr groß und dünnbesetzt ist. Der historisch erste Algorithmus aus dieser Gruppe ist das [[CG-Verfahren|Verfahren der konjugierten Gradienten]], kurz CG-Verfahren (von {{enS|'''''c'''onjugate '''g'''radients''}}) zur Lösung linearer Gleichungssysteme mit symmetrischen und positiv definiten Koeffizientenmatrizen.

==== CG-Verfahren ====
{{Hauptartikel|CG-Verfahren}}
Der fruchtbare Zusammenhang des CG-Verfahrens mit [[Krylowraum|Krylow-Unterräumen]] wurde erst später erkannt, seine Grundidee ist eine andere: Es löst anstelle des Gleichungssystems ein dazu äquivalentes [[Optimierung (Mathematik)|Optimierungsproblem]]. Ist nämlich <math>A</math> symmetrisch und positiv definit, so ist die Lösung von <math>A \mathbf x = \mathbf b</math> die eindeutig bestimmte Minimalstelle der Funktion
[[Datei:Conjugate gradient illustration.svg|mini|hochkant=0.8|Im zweidimensionalen Fall sind die Höhenlinien der zu minimierenden Funktion Ellipsen. Wählt man immer die Richtung des steilsten Abstieg, führt das zu einem Zickzackkurs (grün). Das CG-Verfahren verwendet konjugierte Richtungen und landet mit zwei Schritten genau im Minimum (rot).]]
: <math>E(\mathbf x) = \frac{1}{2} \mathbf x^T A \mathbf x - \mathbf b^T \mathbf x </math>.
Damit stehen grundsätzlich alle numerischen Verfahren zur Lösung von Optimierungsproblemen auch für das lineare Gleichungssystem zur Verfügung, insbesondere die sogenannten [[Abstiegsverfahren]]. Das sind iterative Verfahren, die ausgehend von der aktuellen Näherung <math>\mathbf x_k</math> im <math>k</math>-ten Schritt entlang einer geeigneten Suchrichtung <math>\mathbf s_k</math> das eindimensionale Optimierungsproblem
: „Suche <math>\alpha_k \in \R</math>, sodass <math>E(\mathbf x_k + \alpha_k \mathbf s_k)</math> minimal wird.“
lösen. Die dabei gefundene Stelle <math>\mathbf x_{k+1} = \mathbf x_k + \alpha_k \mathbf s_k</math> wird die neue Näherung für den nächsten Schritt. Eine zunächst naheliegende Wahl für die Suchrichtung <math>\mathbf s_k</math> ist die Richtung des steilsten Abstiegs, was auf das [[Gradientenverfahren]] zur Bestimmung der Minimalstelle führt. Allerdings zeigt sich, dass die so berechneten Näherungen <math>\mathbf x_k</math> sich im Allgemeinen nur sehr langsam und in einem „Zickzackkurs“ der wahren Lösung annähern.<ref>Meister: ''Numerik linearer Gleichungssysteme.'' 2015, S. 152.</ref> Wesentlich besser geeignet sind Suchrichtungen, die die spezielle Gestalt der zu minimierenden Funktion <math>E</math> berücksichtigen. Die [[Niveaumenge]]n von <math>E</math> sind <math>(n-1)</math>-dimensionale [[Ellipsoid]]e (im anschaulichen, zweidimensionalen Fall [[Ellipse]]n), daher ist es günstig, die Suchrichtungen zueinander ''konjugiert'' zu wählen (im Anschauungsfall entspricht das den [[Konjugierte Durchmesser|konjugierten Durchmessern]]). Dabei heißen zwei Richtungen <math>\mathbf s_k</math> und <math>\mathbf s_l</math> konjugiert, wenn <math>\mathbf s_k^T A \mathbf s_l = 0</math> gilt. Das CG-Verfahren wählt daher für die erste Suchrichtung die Richtung des steilsten Abstiegs, aber die folgenden so, dass alle Suchrichtungen zueinander konjugiert sind. Es lässt sich zeigen, dass dann nach <math>n</math> Abstiegen die wahre Lösung erreicht wird. Meist ist aber eine ausreichend genaue Näherungslösung schon nach deutlich weniger Schritten erreicht und das Verfahren kann vorzeitig abgebrochen werden.<ref>{{Literatur |Autor=Wolfgang Dahmen, Arnold Reusken |Titel=Numerik für Ingenieure und Naturwissenschaftler |Auflage=2. |Verlag=Springer |Ort=Berlin/Heidelberg |Datum=2008 |ISBN=978-3-540-76492-2 |Seiten=566-575}}</ref>

==== Vom CG-Verfahren zu den Krylow-Unterraum-Verfahren ====
In den Rechenschritten des CG-Verfahrens geht die Matrix <math>A</math> nur in der Form von Matrix-Vektor-Produkten ein. Sie selbst wird nicht zerlegt oder umgeformt – ein großer Vorteil, wenn sie dünnbesetzt ist. Nimmt man zur Vereinfachung (aber [[ohne Beschränkung der Allgemeinheit]]) an, dass als Startvektor <math>\mathbf x_0</math> der Nullvektor gewählt wird, so zeigt eine genauere Analyse, dass jede Näherung <math>\mathbf x_k</math> eine Linearkombination der Vektoren <math>\mathbf b, A \mathbf b, A^2 \mathbf b, \dotsc, A^{k-1} \mathbf b</math> ist, also aus wiederholten Multiplikationen der rechten Seite <math>\mathbf b</math> mit <math>A</math> aufgebaut wird. Anders ausgedrückt: Jedes <math>\mathbf x_k</math> liegt in einem [[Krylow-Unterraum]]
: <math>\mathcal K_k(A, \mathbf b) = \operatorname{span}(\mathbf b, A \mathbf b, A^2 \mathbf b, \dotsc, A^{k-1} \mathbf b)</math>.
Diese Eigenschaft ist das Kennzeichen der Krylow-Unterraum-Verfahren: Sie erzeugen iterativ für <math>k = 0,1,2,\dotsc</math> Näherungen <math>\mathbf x_k</math> mit <math>\mathbf x_k \in \mathcal K_k(A, \mathbf b)</math>. Dabei wird <math>\mathbf x_k</math> zusätzlich so gewählt, dass das Residuum <math>\mathbf r_k = A \mathbf x_k - \mathbf b</math> in einem noch festzulegenden Sinne möglichst klein ist. Beim CG-Verfahren ist die Bedingung nicht unbedingt naheliegend, aber für die spezielle Struktur des Problems gut geeignet: Mit der durch <math>A^{-1}</math> gewichteten Vektornorm <math>\| \mathbf v \|_{A^{-1}} = \sqrt{\mathbf v^T A^{-1} \mathbf v}</math> ist in jedem Schritt <math>\|\mathbf r_k\|_{A^{-1}}</math> minimal.<ref>Demmel: ''Applied Numerical Linear Algebra.'' 1997, S. 306 f.</ref> Der Nachteil liegt dabei darin, dass dies nur funktioniert, wenn <math>A</math> tatsächlich symmetrisch und positiv definit ist, anderenfalls ist <math>\| \cdot \|_{A^{-1}}</math> gar keine Norm. Im Allgemeinen werden die Zusatzbedingungen, die Krylow-Unterraum-Verfahren an die Wahl von <math>\mathbf x_k \in \mathcal K_k</math> stellen, als sogenannte Projektionsbedingung formuliert. Man verlangt dabei, dass das Residuum <math>\mathbf r_k</math> orthogonal zu allen Vektoren aus einem <math>k</math>-dimensionalen Unterraum <math>\mathcal L_k</math> ist, in Symbolen
: <math>\mathbf r_k \perp \mathcal L_k</math>.
Die <math>\mathcal L_k</math> sind normalerweise selbst Krylow-Unterräume, im einfachsten Fall, wie auch beim CG-Verfahren, zum Beispiel <math>\mathcal L_k = \mathcal K_k</math>.<ref>Trefethen, Bau: ''Numerical Linear Algebra.'' 1997, S. 293–301.</ref> Für die konkrete Berechnung der Näherungen werden sukzessive Orthonormalbasen der beteiligten Krylow-Unterräume aufgebaut. Das bekannte [[Gram-Schmidtsches Orthogonalisierungsverfahren|Gram-Schmidt-Verfahren]] zur Orthonormalisierung ist in seiner Standardform leider numerisch instabil. Es lässt sich jedoch mit einer kleinen Modifikation stabilisieren.<ref>Trefethen, Bau: ''Numerical Linear Algebra.'' 1997, S. 250–255.</ref>

==== Weitere Krylow-Unterraum-Verfahren ====
[[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). Das auf positiv definite Matrizen spezialisierte CG-Verfahren konvergiert schneller als das allgemeinere MINRES-Verfahren.]]
Aus den genannten Grundideen ergeben sich zahlreiche Variationen, Anpassungen und Verbesserungen innerhalb dieser Verfahrensklasse, von denen nur einige exemplarisch genannt werden sollen. Eine direkte Verallgemeinerung des CG-Verfahrens ist das [[BiCG-Verfahren]]. Es hebt die Einschränkung auf symmetrische Matrizen dadurch auf, dass es zusätzlich zu dem mit <math>A</math> gebildeten Krylow-Unterräumen, auch die zur transponierten Matrix <math>A^T</math> gehörigen verwendet. Eine Optimierung, die die zusätzlichen Multiplikationen mit <math>A^T</math> vermeidet, ist das [[CGS-Verfahren]]. Beide Verfahrenstypen sind in vielen praktischen Fällen instabil, bilden aber die Grundlage für verschiedene Stabilisierungsversuche, etwa in der Gruppe der [[BiCGSTAB-Verfahren]].
Wichtige und im Allgemeinen stabile Verfahren sind [[GMRES]] und seine Spezialisierung für symmetrische Matrizen, [[MINRES]]. Sie setzen direkt bei den Residuen an und bestimmen <math>\mathbf x_k</math> im Krylow-Unterraum so, dass <math>\|A \mathbf x_k - \mathbf b\|_2</math> minimal ist. Weitere Verbesserungen dieses Grundprinzips sind etwa das [[QMR-Verfahren|QMR-]] und das [[TFQMR-Verfahren]].<ref>Meister: ''Numerik linearer Gleichungssysteme.'' 2015, S. 146, S. 165–224.</ref>

Krylow-Unterraum-Verfahren können nicht nur für sehr große dünnbesetzte lineare Gleichungssysteme verwendet werden, sondern auch zur Lösung ebensolcher Eigenwertprobleme – ein weiterer Grund für ihre große Bedeutung in der modernen numerischen linearen Algebra. Natürlich kann in Eigenwertproblemen nicht mit <math>\mathbf x_0 = \mathbf 0</math> gestartet werden (<math>\mathbf 0</math> ist ja per Definition kein Eigenvektor). Es werden hier die Näherungen <math>\mathbf x_k</math> und zugehörige <math>\lambda_k</math> so bestimmt, dass
: <math>A \mathbf x_k - \lambda_k \mathbf x_k \perp \mathcal K_k(A, \mathbf x_0)</math>
mit <math>\mathbf x_0 \neq \mathbf 0</math> gilt. Dieses Vorgehen führt auf ein nur <math>k</math>-dimensionales Eigenwertproblem, das sich für kleine <math>k</math> leicht lösen lässt und Näherungen an einige Eigenwerte von <math>A</math> liefert.<ref>Börm, Mehl: ''Numerical Methods for Eigenvalue Problems.'' 2012, S. 145–151.</ref> Der zugehörige Grundalgorithmus ist das [[Arnoldi-Verfahren]]. Wie stets bei Eigenwertproblemen ergeben sich für symmetrische Matrizen deutliche Vereinfachungen; diese führen auf das [[Lanczos-Verfahren]].<ref>Börm, Mehl: ''Numerical Methods for Eigenvalue Problems.'' 2012, S. 159–165.</ref>

== Literatur ==
=== Lehrbücher ===
* {{Literatur
   |Autor=Steffen Börm, Christian Mehl
   |Titel=Numerical Methods for Eigenvalue Problems
   |Verlag=Walter de Gruyter
   |Ort=Berlin/Boston
   |Datum=2012
   |ISBN=978-3-11-025033-6}}
* {{Literatur
   |Autor=[[Folkmar Bornemann]]
   |Titel=Numerische lineare Algebra – Eine konzise Einführung mit MATLAB und Julia
   |Verlag=Springer Spektrum
   |Ort=Wiesbaden
   |Datum=2016
   |ISBN=978-3-658-12883-8}}
* {{Literatur
   |Autor=Biswa Nath Datta
   |Titel=Numerical Linear Algebra and Applications
   |Auflage=2.
   |Verlag=SIAM
   |Ort=Philadelphia
   |Datum=2010
   |ISBN=978-0-89871-685-6}}
* {{Literatur
   |Autor=[[James W. Demmel]]
   |Titel=Applied Numerical Linear Algebra
   |Verlag=SIAM
   |Ort=Philadelphia
   |Datum=1997
   |ISBN=978-0-89871-389-3}}
* {{Literatur
   |Autor=[[Gene H. Golub]], [[Charles F. Van Loan]]
   |Titel=Matrix Computations
   |Auflage=3.
   |Verlag=The Johns Hopkins University Press
   |Ort=Baltimore
   |Datum=1996
   |ISBN=0-8018-5413-X}}
* {{Literatur
   |Autor=[[Nicholas J. Higham]]
   |Titel=Accuracy and Stability of Numerical Algorithms
   |Auflage=2.
   |Verlag=SIAM
   |Ort=Philadelphia
   |Datum=2002
   |ISBN=0-89871-521-0}}
* {{Literatur
   |Autor=Andreas Meister
   |Titel=Numerik linearer Gleichungssysteme
   |Auflage=5.
   |Verlag=Springer Spektrum
   |Ort=Wiesbaden
   |Datum=2015
   |ISBN=978-3-658-07199-8}}
* {{Literatur
   |Autor=Granville Sewell
   |Titel=Computational Methods of Linear Algebra
   |Auflage=3.
   |Verlag=World Scientific
   |Ort=Singapur
   |Datum=2014
   |ISBN=978-981-4603-85-0}}
* {{Literatur
   |Autor=[[Lloyd N. Trefethen]], David Bau, III
   |Titel=Numerical Linear Algebra
   |Verlag=SIAM
   |Ort=Philadelphia
   |Datum=1997
   |ISBN=978-0-89871-361-9}}

=== Zur Geschichte ===
* {{Literatur
   |Hrsg=Jean-Luc Chabert u. a.
   |Titel=A History of Algorithms
   |Verlag=Springer
   |Ort=Berlin/Heidelberg
   |Datum=1999
   |ISBN=978-3-540-63369-3}}
* {{Literatur
   |Autor=Yousef Saad, Henk A. van der Vorst
   |Titel=Iterative solution of linear systems in the 20th century
   |Sammelwerk=Journal of Computational and Applied Mathematics
   |Band=123
   |Nummer=
   |Datum=2000
   |Seiten=1–33}}
* {{Literatur
   |Autor=Gene H. Golub, Henk A. van der Vorst
   |Titel=Eigenvalue computation in the 20th century
   |Sammelwerk=Journal of Computational and Applied Mathematics
   |Band=123
   |Nummer=
   |Datum=2000
   |Seiten=35–65}}

== Weblinks ==
* {{Internetquelle
   |url=http://www.tu-braunschweig.de/icm/numerik/forschung/nla
   |titel=Numerische Lineare Algebra
   |hrsg=Institut Computational Mathematics der [[TU Braunschweig]]
   |kommentar=Überblick über das Fachgebiet
   |abruf=2018-08-20}}
* {{Internetquelle
   |autor=Peter Spellucci
   |url=https://www2.mathematik.tu-darmstadt.de/fbereiche/numerik/staff/spellucci/docs/numlinalg09.pdf
   |titel=Numerische Lineare Algebra
   |datum=2009-07-16
   |format=PDF
   |kommentar=Vorlesungsskript der [[TU Darmstadt]]
   |abruf=2018-08-20}}
* {{Internetquelle
   |autor=Frank Wübbeling
   |url=http://wwwmath.uni-muenster.de/num/Vorlesungen/NumerischeLA_WS12/skript.pdf
   |titel=Numerische Lineare Algebra im WS 2012/13
   |datum=2013-03-29
   |format=PDF
   |kommentar=Vorlesungsskript der [[Universität Münster]]
   |abruf=2018-08-20}}
* {{Internetquelle
   |url=http://www.netlib.org/
   |titel=Netlib
   |kommentar=Sammlung freier Software zur numerischen linearen Algebra
   |abruf=2018-08-20}}

== Einzelnachweise ==
<references responsive />

{{Exzellent|23. Mai 2016|154502072}}

[[Kategorie:Numerische lineare Algebra| ]]
[[Kategorie:Teilgebiet der Mathematik]]