Lineare Gleichungssysteme
entstehen in allen Bereichen der Wissenschaft, entweder direkt zur Formulierung eines praktischen Problems oder als Teilschritt innerhalb komplexerer Lösungsstrategien. Dabei sind die Zahlen und gegeben und die Zahlen gesucht.
Zur Vereinfachung der Darstellung setzt man üblicherweise die Systemmatrix
und den Vektor der rechten Seiten
Das Gleichungssystem bekommt damit die Form
mit dem Lösungsvektor
Es existieren vielfältige numerische Lösungsverfahren mit unterschiedlichen Eigenschaften bzgl. Stabilität, Rechenaufwand, Speicherbedarf und Anwendungsbreite. Schauen uns hier zwei relativ breit anwendbare Verfahren näher an und geben einen kurzen Überblick über weitere Verfahrensideen.
Beschränken uns auf invertierbare quadratische Systemmatrizen, also auf den Fall . Insbesondere folgt aus der Forderung der Invertierbarkeit, dass das Gleichungssystem genau eine Lösung besitzen soll. Diese kann dann als
geschrieben werden.
3.8.1Kondition¶
Zur Beurteilung der Kondition beim Lösen eines linearen Gleichungssystems muss zunächst geklärt werden, welche Größen als (potentiell fehlerbehaftete) Eingabe zu betrachten sind. Hier gibt es zwei Ansätze:
Nur wird als Eingabe betrachtet und es ist die Kondition der Abbildung gesucht. Dieser Ansatz ist leichter zu handhaben und wird immer verwendet, wenn sehr genau oder sogar exakt bekannt ist.
und werden beide als Eingaben betrachtet und es ist die Kondition der Abbildung gesucht.
Weiterhin bestehen gewisse Freiheiten bei der Beantwortung der Frage, wie wir Abweichungen zwischen exakten und fehlerbehafteten Ein- bzw. Ausgaben ausdrücken. Bisher haben wir Konditionsbetrachtungen nur für Abbildungen angestellt. Auf der Eingabeseite hatten wir uns für die Summe der komponentenweisen relativen Fehler entschieden. Auf der Ausgabeseite bestand gar keine Wahl. Im Kontext linearer Gleichungssysteme muss nun auch auf der Ausgabeseite entschieden werden, wie die relativen Fehler in den einzelnen Komponenten zu einem Gesamtausgabefehler zusammengeführt werden.
3.8.1.1Vektornormen¶
Für einen Vektor , z.B. den Vektor der komponentenweisen relativen Ein- oder Ausgabefehler, können wir verschiedene Normen einführen, also Zahlen , die die Größe der einzelnen Einträge des Vektors sinnvoll zusammenfassen. Unter “sinnvoll” verstehen wir, dass folgende Eigenschaften gelten sollen:
für alle ,
,
für alle und alle ,
für alle .
Beispiele:
1-Norm:
-Norm:
euklidische Norm:
Alle Normen in sind äquivalent, d.h. für zwei Normen und gibt es stets Konstanten , sodass
gilt. Mit Blick auf Fehlerabschätzungen beeinflussen die eingesetzten Normen also höchstens die auftretenden konstanten Faktoren, die ohnehin kaum relevant für die Kernaussagen sind.
3.8.1.2Matrixnormen¶
Bei Konditionsuntersuchungen werden wir stets auf Vektoren der Form und stoßen, die wir in Beziehung zu bzw. setzen möchten. Zu diesem Zweck haben sich von einer Vektornorm induzierte Matrixnormen etabliert.
Am häufigsten anzutreffen ist die Spektralnorm, die entsteht, wenn für beide Vektornormen die euklidische Norm genutzt wird:
Die Spektralnorm ist von der gelegentlich auch verwendeten Frobenius-Norm
zu unterscheiden, welche nicht durch Vektornormen induziert wird, aber dennoch die vier Normbedingungen erfüllt.
Die von der 1-Norm oder der -Norm induzierten Matrixnormen spielen nur selten eine Rolle, sind aber deutlich einfacher zu berechnen als die Spektralnorm. Für die 1-Norm kann man
zeigen. Für die -Norm erhält man
Analog zu den Vektornormen sind auch alle Matrixnormen zu einander äquivalent.
3.8.1.3Fehlerhafte rechte Seite (Konditionszahl)¶
Betrachten wir nur als Eingabe, so erhalten wir für den relativen Ausgabefehler bei fehlerhafteteter Eingabe die Abschätzung
wobei die verwendeten Matrix- und Vektornormen kompatibel zu einander sein sollen, ansonsten aber beliebig gewählt werden können (IDV 380).
Beachte, dass beim bisherigen Konditionsbegriff für Abbildungen nach (statt ) der Eingabefehler gerade die 1-Norm des Vektors der komponentenweisen relativen Fehler war. Im Kontext linearer Gleichungssysteme ist jedoch die Norm des Vektors der absoluten Fehler geteilt durch die Norm des exakten Eingabevektors als Ausdruck des relativen Eingabefehlers besser handhabbar. Auf der Ausgabeseite wird die gleiche Variante zur Beschreibung des relativen Ausgabefehlers verwendet.
Je nach Wahl der Matrixnorm entstehen unterschiedliche Zahlen , , . Wenn im Folgenden kein Index angegeben ist, gelten die Resulte für alle Matrixnormen.
Man kann zeigen, dass stets
gilt.
Für die euklidische Matrixnorm kann man noch
zeigen, wobei und der größte und der kleinste Eigenwert von sind.
3.8.1.4Fehlerhafte Matrix und rechte Seite¶
Untersuchen noch die Kondition der Abbildung bei fehlerbehafteter Matrix und fehlerbehafteter rechter Seite . Hier muss zunächst geklärt werden, unter welchen Bedingungen überhaupt noch invertierbar ist.
Für den Fehlerzusammenhang zwischen Eingabe und Ausgabe kann man dann
zeigen, wobei Matrix- und Vektornormen wieder kompatibel zu einander sein sollen. Bei kleinem Fehler in und nicht zu großer Kondition beschreibt also auch hier die Fehlerverstärkung.
3.8.1.5Beispiele¶
3.8.1.5.1Einheitsmatrix¶
Für
gilt und , also .
3.8.1.5.2Hilbert-Matrix¶
Für
wächst exponentiell mit , siehe The Condition of the Finite Segments of the Hilbert Matrix.
3.8.2Wie es nicht geht¶
Für kann die Lösung des Gleichungssystems mit der Cramer’schen Regel ermittelt werden: Zur Berechnung von sei wie , aber mit Spalte ersetzt durch die rechte Seite . Dann gilt
wobei
die Determinate von ist (analog für ). Die Summe läuft hier über alle Permutationen , also alle möglichen Anordnungen der Zahlen . Der Wert ist das Vorzeichen der Permutation und ist entweder 1 oder -1.
Der Aufwand für das Berechnen von Determinanten ist enorm! Er liegt bei Additionen und Multiplikationen pro Determinante. Für das Lösen eines Gleichungssystems werden Determinanten benötigt. Für würde ein 1-Peta-FLOPS-Rechner mehr als 11 Tage für das Lösen mittels Cramer’scher Regel benötigen.
Zusätzlich sind auf der Cramer’schen Regel beruhende Algorithmen durch die vielen Differenzen als instabil anzusehen.
Auch das explizite Berechnen der Inverse , um dann zu bekommen, ist im Allgemeinen aufwendiger als das Lösen des Gleichungssystems ohne Verwendung der Inverse. Der Rechenaufwand für den unten behandelten Gauß-Algorithmus entspricht zwar dem des Invertierens (etwa Grundoperationen), der Gauß-Algorithmus ist aber stabiler. Praktisch auftretende Gleichungssysteme haben meist beim Lösen vorteilhaft nutzbare Zusatzeigenschaften (symmetrisch, dünn besetzt, Bandstruktur,...), die den Einsatz schnellerer und speichersparenderer Algorithmen zulassen. So ist beispielsweise die im Allgemeinen vollbesetzte Inverse von großen Tridiagonalmatrizen, wie sie häufig in der Praxis auftreten, viel zu groß um sie überhaupt im Arbeitsspeicher ablegen zu können.
Grundsätzlich gilt: Inverse verweiden. Ausnahmen sind sehr kleine, gut konditionierte Gleichungssysteme, die für viele verschiedene rechte Seiten zu lösen sind (z.B. Koordinatentransformationen in der Computergrafik).
3.8.3Gauß-Algorithmus¶
3.8.3.1Idee¶
Folgende Beobachtung lässt sich zum Lösen linearer Gleichungssysteme einsetzen:
Die LR-Zerlegung von kann leicht algorithmisch bestimmt werden (verzichten hier auf die Details). Liegt diese vor, so erfolgt das Lösen des Gleichungssystems durch Vorwärtssubstitution und anschließende Rückwärtssubstitution:
3.8.3.2Stabilität¶
Sei die mittels Gauß-Algorithmus aus exakten Eingaben und numerisch ermittelte und somit (rundungs-)fehlerbehaftete Lösung. Liegt der relative Fehler zwischen und im Bereich des erwarteten Eingabefehlers, so ist der Algorithmus stabil. Die Differenz heißt auch Residuum.
Wie groß das Residuum ist, ist allgemein kaum zu bestimmen. Bei schlecht konditioniertem wird es jedenfalls groß sein, da die Rundungsfehler aus den ersten Rechenschritten analog zu Eingabefehlern verstärkt werden. Der Gauss-Algorithmus ist somit nicht als stabil anzusehen.
Folgende Punkte fassen die Sachlage bzgl. Stabilität zusammen:
Theoretisch ist der Gauss-Algorithmus instabil.
Für gewisse Problemklassen (z.B. Tridiagonalmatrizen) ist er garantiert stabil.
Praktisch tritt Instabilität nur sehr selten auf, sofern der einfache Gauß-Algorithmus durch eine sogenannte Pivotsuche verbessert wird.
Für nicht zu große Gleichungssysteme ohne spezielle Struktur ist der Gauß-Algorithmus heute das Standardlösungsverfahren.
3.8.3.3Zeit- und Speicherbedarf¶
Rechenaufwand für die LR-Zerlegung: ca. Grundoperationen.
Rechenaufwand für Vorwärts- und Rückwärtssubstitution: ca. Grundoperationen.
Der Rechenaufwand ist für große Gleichungssysteme also relativ hoch. Ist ein System für mehrere rechte Seiten zu lösen, so muss die LR-Zerlegung allerdings nur einmal berechnet werden. Das Lösen der weiteren Systeme benötigt dann nur noch Operationen.
Bei geschickter Implementierung benötigt der Algorithmus im Wesentlichen nur den Speicher für das Ablegen der Matrix , also Größenordnung .
3.8.4Cholesky-Verfahren¶
Für positiv definite symmetrische Matrizen kann die LR-Zerlegung einfacher ausgedrückt und effizienter berechnet werden.
3.8.4.1Positiv definite Matrizen¶
Eine symmetrische Matrix heißt positiv definit, wenn gilt:
Positiv definite symmetrische Matrizen haben viele vorteilhafte Eigenschaften (siehe Grundlagenliteratur zur linearen Algebra):
ist stets invertierbar und ist wieder symmetrisch und positiv definit.
Alle Eigenwerte von sind reell und positiv.
.
Alle Diagonaleinträge sind positiv.
Der betragsgrößte Eintrag von liegt auf der Diagonale.
Positiv definite symmetrische Matrizen treten in zahlreichen Anwendungen auf. Beispielsweise kann man leicht zeigen, dass Matrizen der Form für invertierbares stets symmetrisch und positiv definit sind. Solche Matrizen treten unter anderem beim Berechnen von Skalarprodukten in transformierten Koordinaten auf. ist dabei die Koordinatentransformation.
3.8.4.2Cholesky-Zerlegung¶
Man folgende spezielle Form der LR-Zerlegung herleiten:
Diese sogenannte Cholesky-Zerlegung erhält man direkt aus der LR-Zerlegung, wenn man die Symmetrie ausnutzt. Insbesondere gilt .
Allerdings geht es auf direktem Wege etwas schneller (verzichten hier auf die Details).
3.8.4.3Zeit- und Speicherbedarf¶
Der Rechenaufwand liegt wie bei der LR-Zerlegung in der Größenordnung , ist aber trotzdem nur etwa eine Viertel so groß.
Der Speicherbedarf ist etwa doppelt so hoch wie beim Gauß-Algorithmus, da gewissen Zwischenergebnisse zusätzlich zur Matrix im Speicher abgelegt werden müssen.
3.8.4.4Gesamtalgorithmus¶
Ist die Cholesky-Zerlegung bekannt, kann das Gleichungssystem analog zur LR-Zerlegung mittels Vorwärts- und anschließender Rückwärtssubstitution gelöst werden:
3.8.4.5Stabilität¶
Man kann zeigen, dass das Cholesky-Verfahren rückwärtsstabil ist (also auch vorwärtsstabil). Insbesondere gilt das Cholesky-Verfahren als stabiler als der Gauss-Algorithmus.
3.8.5Weitere Verfahren¶
Wir erwähnen kurz weitere Verfahrensideen um bei Bedarf mit den Begrifflichkeiten vertraut zu sein.
3.8.5.1QR-Zerlegung¶
Die LR-Zerlegung steht nur für quadratische Matrizen zur Verfügung. Für allgemeine rechteckige Matrizen , (überbestimmtes Gleichungssystem) kann man jedoch stets die sogenannte QR-Zerlegung finden. Dabei ist wieder eine obere Dreiecksmatrix, wobei die unteren Zeilen mit Nullen aufgefüllt werden, und eine orthogonale Matrix. Die Spalten von sind also orthogonal zu einander und haben Norm 1. Für orthogonale Matrizen gilt stets , sodass sich das Lösen des Gleichungssystems auf Rückwärtseinsetzen und Multiplikation mit reduziert.
Für quadratische Matrizen () kann man die QR-Zerlegung mit etwa Grundoperationen berechnen.
3.8.5.2Iterative Verfahren¶
Iterative Verfahren liefern im Gegensatz zum Gauß-Algorithmus und zum Cholesky-Verfahren nicht die (bis auf Rundungsfehler) exakte Lösung des Gleichungssystems , sondern nur Näherungslösungen. Die Verfahren berechnen zunächst eine sehr grobe Näherung, die dann Schritt für Schritt verfeinert wird. Dieser Ansatz erlaubt deutlich geringere Rechenzeiten bei sehr großen Gleichungssystemen.
3.8.5.2.1Richardson-Iteration¶
Für die Lösung des Gleichungssystems und eine beliebige reelle Zahle gilt
Dies ist eine sogenannte Fixpunktgleichung, da das Auswerten der rechten Seite wieder auf führt. Daraus kann man die Iterationsvorschrift
ableiten. Man kann zeigen, dass für hinreichend kleines die Folge gegen die Lösung des Gleichungssystems konvergiert. Je nach gewünschter Genauigkeit kann die Iteration früher oder später abgebrochen werden.
Die Iterationsvorschrift kann zu
verallgemeinert werden, wobei und von und abhängen. So erhält man eine Vielzahl verschiedener Lösungsverfahren, die je nach Eigenschaften von vorteilhafte Eigenschaften wie beispielsweise besonders schnelle Konvergenz haben können. Die Konvergenz der Iterierten zur exakten Lösung ist dabei keinesfalls garantiert, sondern kann nur unter recht engen Voraussetzungen an und abgesichert werden.
3.8.5.2.2CG-Verfahren¶
Für das Verfahren der konjugierten Gradienten (kurz: CG-Verfahren, CG = conjugate gradients) wird das Gleichungssystem durch das Minimierungsproblem
ersetzt. Man kann zeigen, dass die Lösung des Minimierungsproblems mit der Lösung des Gleichungssystems übereinstimmt.
Zur Lösung des Minimierungsproblems stehen eine Vielzahl numerischer Optimierungsverfahren zur Verfügung. Das einfachste ist das so genannte Gradienten-Verfahren, welches, beginnend an einem Punkt , den Gradient der Zielfunktion berechnet und dann die aktuelle Position in Richtung des negativen Gradienten (Richtung des steilsten Abstiegs!) verändert:
Dabei ist die Schrittweite, welche auf verschiedene Arten gewählt werden kann, z.B. konstant. Für den Gradient erhält man
Wählt man stets so, dass für minimal wird, so erhält man das CG-Verfahren, welches besonders schnell konvergiert. Für konstantes erhält man hingegen das Verfahren des steilsten Abstiegs, welches verhältnismäßig langsam konvergiert.
3.8.5.2.3Verfahren für dünn besetzte Matrizen¶
In zahlreichen Anwendungen treten dünn besetzte (englisch: sparse) sehr große Matrizen auf, also Matrizen, die nur wenige von Null verschiedene Einträge haben. Die Anzahl der Nicht-Null-Einträge ist üblicherweise ein kleines Vielfaches von . Diese Matrizen speichert man nicht als Block aus Zahlen, sondern als Liste der Nicht-Null-Einträge und der zugehörigen Zeilen- und Spalten-Indizes.
Beispielsweise sind Adjazenzmatrizen von Graphen oft dünnbesetzt (und groß). Auch beim numerischen Lösen vieler naturwissenschaftlicher Probleme treten große dünnbesetzte Matrizen auf.
Der Zugriff auf einen durch Zeilen- und Spaltenindex gegebenen Matrixeintrag ist bei dünn besetzten Matrizen mit hohem Aufwand verbunden (Liste durchsuchen!). Matrix-Vektor-Produkte können jedoch schnell berechnet werden (IDV 385). Somit sind iterative Lösungsverfahren gegenüber Gauß-Algorithmus und Cholesky-Verfahren hier klar im Vorteil, da iterative Verfahren meist nur Matrix-Vektor-Produkte auswerten und keine anderweitigen Zugriffe auf die Matrixeinträge tätigen.
Heute übliche Verfahren für große dünn besetzte Gleichungssysteme sind Krylow-Unterraum-Verfahren (Verallgemeinerung des CG-Verfahrens) und Mehrgitterverfahren.
3.8.5.3Vorkonditionierung¶
Die Konvergenz iterativer Lösungsverfahren kann deutlich beschleunigt werden, wenn das Gleichungssystem im Vorfeld geeignet äquivalent umgeformt wird. Auch für nicht iterative Verfahren kann eine geeignete Umformung zur Verbesserung der Matrixkondition führen. Eine übliche Umformung ist die Multiplikation mit einer geeignet gewählten Matrix :
Diese Matrix soll leicht zu beschaffen sein und dabei die Inverse möglichst gut annähern. Wie konkret zu wählen ist, hängt auch vom eingesetzten Lösungsverfahren ab.
Eine einfache Technik zur Vorkonditionierung ist die Äquilibrierung: Jede Zeile des Gleichungssystems wird durch die Norm der entsprechenden Zeile der Systemmatrix als Vektor geteilt. Bei Verwendung der euklidischen Norm also