Tridiagonal Matrix Algorithm2
Tridiagonal Matrix Algorithm2
Page 1 of 3
Home News Forums Wiki Links Jobs Books Events About Search Home > Wiki > Tridiagonal matrix algorithm - TDMA (Thomas algorithm)
Contents
1 Introduction 2 Algorithm 3 Assessments 4 Variants 5 References
Introduction
The tridiagonal matrix algorithm (TDMA), also known as the Thomas algorithm, is a simplified form of Gaussian elimination that can be used to solve tridiagonal systems of equations. A tridiagonal system may be written as
where
and
For such systems, the solution can be obtained in operations instead of required by Gaussian Elimination. A first sweep eliminates the 's, and then an (abbreviated) backward substitution produces the solution. Example of such matrices commonly arise from the discretization of 1D problems (e.g.
http://www.cfd-online.com/Wiki/Tridiagonal_matrix_algorithm_-_TDMA_(Thomas_a... 10/7/2007
Tridiagonal matrix algorithm - TDMA (Thomas algorithm) -- CFD-Wiki, the free CF...
Page 2 of 3
Algorithm
The following algorithm performs the TDMA, overwriting the original arrays. In some situations this is not desirable, so some prefer to copy the original arrays beforehand. Forward elimination phase for k = 2 step until n do
Assessments
This algorithm is only applicable to matrices that are diagonally dominant, which is to say
Variants
In some situations, particularly those involving periodic boundary conditions, a slightly perturbed form of the tridiagonal system may need to be solved:
http://www.cfd-online.com/Wiki/Tridiagonal_matrix_algorithm_-_TDMA_(Thomas_a... 10/7/2007
Tridiagonal matrix algorithm - TDMA (Thomas algorithm) -- CFD-Wiki, the free CF...
Page 3 of 3
In this case, we can make use of the Sherman-Morrison formula to avoid the additional operations of Gaussian elimination and still use the Thomas algorithm. We will now solve
where
is a slightly different tridiagonal system than above, and the solution to the perturbed system is obtained by solving
and compute
as
In other situation, the system of equation may be block tridiagonal, with smaller submatrices arranged as the individual elements in the above matrix system. Simplified forms of Gaussian elimination have been developed for these situations.
References
1. Conte, S.D., and deBoor, C. (1972), Elementary Numerical Analysis, McGraw-Hill, New York.. Still TODO: Add more references, more on the variants, make things nicer looking, and maybe more performance type info --Jasond 22:59, 7 April 2006 (MDT) Retrieved from "http://www.cfd-online.com/Wiki/Tridiagonal_matrix_algorithm_-_TDMA_% 28Thomas_algorithm%29"
This page was last modified 02:59, 5 October 2006. Content is available under GNU Free Documentation License 1.2.
http://www.cfd-online.com/Wiki/Tridiagonal_matrix_algorithm_-_TDMA_(Thomas_a... 10/7/2007