- Tridiagonalmatrix-Algorithmus
-
Der Thomas-Algorithmus oder auch Tridiagonalmatrix-Algorithmus (TDMA) ist eine vereinfachte Form des Gaußschen Eliminationsverfahren, der zum schnellen Lösen von linearen Gleichungssystemen mit einer Tridiagonalmatrix benutzt wird.
Ein tridiagonales System mit n Unbekannten kann geschrieben werden als
wobei gelten soll: und .
In Matrizenform wird das System geschrieben als:
Für solche Systeme kann die Lösung nach O(n) Operationen gefunden wird, statt nach O(n3) mit dem Gaußschen Eliminationsverfahren. Ein erster Durchlauf eliminiert die ai's, anschließend erhält man die Lösung mit Hilfe eines Rückwärts-Einsetzverfahrens. Beispiele für diese Matrizen entstehen üblicherweise aus der Diskretisierung der eindimensionalen Poisson-Gleichung (z.B. eindimensionale Diffusionsprobleme) und aus der natürlichen kubischen Spline-Interpolation.
Inhaltsverzeichnis
Das Verfahren
Der erste Schritt ist es, die Koeffizienten folgendermaßen zu modifizieren. Die "neuen" modifizierten Koeffizienten sind mit einem Strich gekennzeichnet.
Dies ist der vorwärts gerichtete Durchlauf. Die Lösung ergibt sich dann durch ein Rückwärts-Einsetzverfahren:
Herleitung
Die Unbekannten seien . Die zu lösenden Gleichungen seien:
Die zweite Gleichung (i = 2) wird nun wie folgt mit der ersten Gleichung modifiziert:
Dies ergibt:
Dadurch wurde x1 aus der zweiten Gleichung eliminiert. Mit einer analogen Vorgehensweise ergibt sich aus der modifizierten zweiten und der dritten Gleichung:
Jetzt wurde x2 eliminiert. Wird diese Vorgehensweise bis zur n-ten Zeile wiederholt, enthält die modifizierte n-te Gleichung nur eine Unbekannte enthalten. Diese Gleichung wird nun gelöst und das Ergebnis genutzt, um die (n − 1)-te Gleichung zu lösen. Dies wird so lange fortgeführt bis alle Unbekannten bekannt sind.
Verständlicherweise werden die Koeffizienten mit jedem Schritt komplizierter, wenn sie explizit dargestellt werden. Die Koeffizienten können jedoch auch rekursiv dargestellt werden:
Um den Lösungsprozess weiter zu beschleunigen, wird heraus dividiert (wenn ) ≠ 0). Die neuen Koeffizienten lauten:
Dies ergibt:
Die letzte Gleichung enthält nur eine Unbekannte. Bestimmt man sie, reduziert man die Anzahl der Unbekannten in der vorletzten Gleichung auf eins, so dass dieses Rückwärts-Einsetzverfahren genutzt werden kann, um alle Unbekannten zu bestimmen.
Varianten
In manchen Situationen, insbesondere in solchen mit periodischen Grenzbedingungen, kann es sein, dass eine leicht veränderte Form des tridiagonalen Systems zu lösen ist:
In diesem Fall kann die Sherman-Morrison-Formel benutzt werden, um die zusätzlichen Operationen des Gaußschen Eliminationsverfahren zu vermeiden und dennoch den Thomas-Algorithmus nutzen zu können.
In anderen Fällen kann das Gleichungssystem block-tridiagonal sein, d.h. dass die Elemente des obigen Gleichungssystems kleinere Untermatrizen sind (z.B. bei der zweidimensionalen Poisson-Gleichung). Für diese Fälle wurden ebenfalls vereinfachte Varianten der Gauß-Elimination entwickelt.
Eine Variante des Thomas-Algorithmus ist der Hu-Gallash-Algorithmus, der, statt des Rückwärts-Einsetzverfahren, ein Vorwärts-Einsetzverfahren nutzt.
Einzelnachweise
- Conte, S.D., and deBoor, C.: Elementary Numerical Analysis. McGraw-Hill, New York. 1972
Weblinks
Wikimedia Foundation.