Tridiagonal matrix algorithm
From Wikipedia, the free encyclopedia
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 O(n) operations instead of O(n3) required by Gaussian elimination. A first sweep eliminates the ai'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 Poisson problem).
[edit] Algorithm
Forward elimination phase
- for k = 2 step 1 until n do
- end loop (k)
Backward substitution phase
- for k = n−1 step −1 until 1 do
- end loop (k)
[edit] 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 situations, the system of equations may be block tridiagonal (see block matrix), with smaller submatrices arranged as the individual elements in the above matrix system(e.g. the 2D Poisson problem). Simplified forms of Gaussian elimination have been developed for these situations.
[edit] References
- Conte, S.D., and deBoor, C. (1972). Elementary Numerical Analysis. McGraw-Hill, New York..
- This article incorporates text from the article matrix algorithm - TDMA (Thomas algorithm) Tridiagonal matrix algorithm - TDMA (Thomas algorithm) on CFD-Wiki that is under the GFDL license.