A matematika lineáris algebra nevű ágában tridiagonális mátrix (esetleg kontinuánsmátrix) a neve az olyan négyzetes mátrixnak, amelyben csak a főátlón és a mellette található két átló mentén vannak nullától különböző elemek.
Például, a következő mátrix tridiagonális:
Tridiagonális mátrixok a numerikus analízis ágában. Matematikai nyelven úgy mondjuk, hogy aij = 0 minden olyan (ij) esetén, melyekre teljesül a |i − j| > 1 feltétel. Szemléletesen, adott az alábbi egyenlet. Ilyen mátrixok lépnek fel például a parciális differenciálegyenletek végeselem diszkretizációjánál:
Az ilyen típusú egyenletrendszereket legkönnyebb a Thomas-algoritmussal megoldani, ami tulajdonképpen a Gauss kiküszöbölés tridiagonális mátrixra egyszerűsített változata. Először sorrendben eltüntetjük az átló alatti elemeket, és az átlón levő elemeket egységnyire normalizáljuk. Első lépésben: . Ezután, a többi elemre végrehajtjuk a transzformációkat. Ezek eredményeképpen a rendszert kapjuk, melyet hátulról előre haladva könnyen megoldhatunk: .
Ha figyelembe vesszük, hogy a mátrixban elfoglalt helyek alapján és , akkor a fenti módszert a következő algoritmussal valósíthatjuk meg:
1: function Thomas( in: (aij ),(bi) out: (xi) i, j = 1, n )
2: a12 ← a12/a11
3: b1 ← b1/a11
4: for i ← 2 to n − 1 do
5: aii+1 ← aii+1 / (aii − aii−1 ai-1i)
6: bi ← (bi − aii−1 bi−1)/(aii − aii−1 ai−1i)
7: aii−1 ← 0
8: end for
9: bn ← (bn − ann−1 bn−1)/(ann − ann−1 an−1n)
10: xn ← bn
11: for i ← n − 1 to 1 do
12: xi = bi − xi+1 aii+1
13: end for
14: return (xi)
15: end function
Memóriakihasználás szempontjából természetesen célszerűbb, ha nem az egész mátrixot, hanem csak a nemnulla c, d és e elemeket tároljuk. Ebben az esetben az algoritmus a következőképpen alakul:
1: function THOMAS2( in: (ci),(di),(ei),(bi) out: (xi) i, j = 1, n )
2: c1 ← c1/d1
3: b1 ← b1/d1
4: for i ← 2 to n do
5: ci ← ci/(di − ei ci−1)
6: bi ← (bi − ei bi−1)/(di − ei ci−1)
7: end for
8: xn ← bn
9: for i ← n − 1 to 1 do
10: xi = bi − xi+1 ci
11: end for
12: return (xi)
13: end function
Megjegyezzük, hogy a Thomas-algoritmus könnyen általánosítható szélesebb sávos mátrixokra is.
Példaképpen tekintsük a tridiagonális rendszert. A Thomas-algoritmus alkalmazásával átalakíthatjuk ezt egy egyszerűen megoldható rendszerré. A visszahelyettesítések alapján megoldásnak az értékeket kapjuk.