Jump to content

Tridiagonal matrix algorithm

From Wikipedia, the free encyclopedia
This is an old revision of this page, as edited by Alex Bakharev (talk | contribs) at 12:18, 14 February 2006 (Created based on CFD-Wiki). The present address (URL) is a permanent link to this revision, which may differ significantly from the current revision.
(diff) ← Previous revision | Latest revision (diff) | Newer revision → (diff)

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 . In matrix form, this system is written as

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. the 1D Possion problem).

Algorithm

Forward elimination phase

for k = 2 step until n do



end loop (k)

Backward substitution phase


for k = n-1 stepdown until 1 do

end loop (k)

Variants

In some situations, particularly those involving periodic boundary conditions, a slightly perturbed form of the tridiagonal system may need to be solved:




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.

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