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:
![{\displaystyle {\begin{pmatrix}1&4&0&0\\3&4&1&0\\0&2&3&4\\0&0&1&3\\\end{pmatrix}}.}](https://wikimedia.org/api/rest_v1/media/math/render/svg/353a4862130008599653ed68ed0e2ae49cc2c455)
Matematikai nyelven úgy mondjuk, hogy aij = 0 minden olyan (i, j) esetén, melyekre teljesül az |i − j| > 1 feltétel.
A tridiagonális mátrix voltaképpen egy felső és alsó Hessenberg-mátrix.[1]
Ilyen mátrixok lépnek fel például a parciális differenciálegyenletek végeselem diszkretizációjánál.
Tulajdonságok
Determináns
Egy n-dimenziós tridiagonális T mátrix determinánsát
![{\displaystyle f_{n}={\begin{vmatrix}a_{1}&b_{1}\\c_{1}&a_{2}&b_{2}\\&c_{2}&\ddots &\ddots \\&&\ddots &\ddots &b_{n-1}\\&&&c_{n-1}&a_{n}\end{vmatrix}}}](https://wikimedia.org/api/rest_v1/media/math/render/svg/b723df177f7b2e93719f44fbb19a1bd5ef40770a)
a következő rekurzív képlet segítségével lehet kiszámítani:
![{\displaystyle f_{n}=a_{n}f_{n-1}-c_{n-1}b_{n-1}f_{n-2}}](https://wikimedia.org/api/rest_v1/media/math/render/svg/d173ac4664b9990b20db77dc0fa5b88f7353906f)
ahol f0 = 1 és f-1 = 0.
Inverz
Egy adott T nem szinguláris tridiagonális mátrix
![{\displaystyle T={\begin{pmatrix}a_{1}&b_{1}\\c_{1}&a_{2}&b_{2}\\&c_{2}&\ddots &\ddots \\&&\ddots &\ddots &b_{n-1}\\&&&c_{n-1}&a_{n}\end{pmatrix}}}](https://wikimedia.org/api/rest_v1/media/math/render/svg/47bb996cd5cd95b3d1c9bf5c63a22cf592448fbe)
inverzét a következőképpen lehet kiszámolni:
![{\displaystyle (T^{-1})_{ij}={\begin{cases}(-1)^{i+j}b_{i}\cdots b_{j-1}\theta _{i-1}\phi _{j+1}/\theta _{n}&{\text{ ha }}i\leq j\\(-1)^{i+j}c_{j}\cdots c_{i-1}\theta _{j-1}\phi _{i+1}/\theta _{n}&{\text{ ha }}i>j\\\end{cases}}}](https://wikimedia.org/api/rest_v1/media/math/render/svg/b17d229ae6288572904aa1832ffc772f7e861ac9)
ahol θi teljesíti az alábbi rekurzív feltételt:
![{\displaystyle \theta _{i}=a_{i}\theta _{i-1}-b_{i-1}c_{i-1}\theta _{i-2}\quad {\text{ , }}i=2,3,\ldots ,n}](https://wikimedia.org/api/rest_v1/media/math/render/svg/bb721dd466ee8c7f2eaffd440ecbaf7be412fe4c)
θ0 = 1, θ1 = a1 kezdőállapottal. ϕi pedig teljesíti a
![{\displaystyle \phi _{i}=a_{i}\phi _{i+1}-b_{i}c_{i}\phi _{i+2}\quad {\text{ , }}i=n-1,\ldots ,1}](https://wikimedia.org/api/rest_v1/media/math/render/svg/55502bacdd0874be51ba53275e8d658682d38af5)
feltételt ϕn+1 = 1 és ϕn = an kezdőállapottal.[2][3]
Numerikus megoldás
Szemléletesen, legyen adott az alábbi egyenlet.
![{\displaystyle {\begin{pmatrix}d_{1}&c_{1}&0&0&...&0&0&0\\e_{1}&d_{2}&c_{2}&0&...&0&0&0\\0&e_{2}&d_{3}&c_{3}&...&0&0&0\\...&...&...&...&...&...&...&...\\...&...&...&...&...&...&...&...\\0&0&0&0&...&e_{n-2}&d_{n-1}&c_{n-1}\\0&0&0&0&...&0&e_{n-1}&d_{n}\\\end{pmatrix}}{\begin{pmatrix}x_{1}\\x_{2}\\x_{3}\\...\\x_{n-1}\\x_{n}\end{pmatrix}}={\begin{pmatrix}b_{1}\\b_{2}\\b_{3}\\...\\b_{n-1}\\b_{n}\end{pmatrix}}}](https://wikimedia.org/api/rest_v1/media/math/render/svg/b446051e115ed233b9a7ac35c2cdce063da8e479)
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
![{\displaystyle {\begin{pmatrix}1&c_{1}^{\prime }&0&0&...&0&0&\\0&1&c_{2}^{\prime }&0&...&0&0&\\0&0&1&c_{3}^{\prime }&...&0&0&\\...&...&...&...&...&...&...\\...&...&...&...&...&...&...\\0&0&0&0&...&1&c_{n-1}^{\prime }\\0&0&0&0&...&0&1\\\end{pmatrix}}{\begin{pmatrix}x_{1}\\x_{2}\\x_{3}\\...\\x_{n-1}\\x_{n}\end{pmatrix}}={\begin{pmatrix}b_{1}^{\prime }\\b_{2}^{\prime }\\b_{3}^{\prime }\\...\\b_{n-1}^{\prime }\\b_{n}^{\prime }\end{pmatrix}}}](https://wikimedia.org/api/rest_v1/media/math/render/svg/446c112c448f243b8ad28b8985a80eff4e4c7913)
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élda
Példaképpen tekintsük a
![{\displaystyle {\begin{pmatrix}12&3&0&0&0\\3&6&4&0&0\\0&4&5&2&0\\0&0&1&2&8\\0&0&0&4&5\\\end{pmatrix}}{\begin{pmatrix}x_{1}\\x_{2}\\x_{3}\\x_{4}\\x_{5}\\\end{pmatrix}}={\begin{pmatrix}1\\1\\2\\3\\2\\\end{pmatrix}}}](https://wikimedia.org/api/rest_v1/media/math/render/svg/d36dcb8c92d39d15665ea6619b0dd7c39592fab3)
tridiagonális rendszert. A Thomas-algoritmus alkalmazásával átalakíthatjuk ezt egy
![{\displaystyle {\begin{pmatrix}1&0.25&0&0&0\\0&1&0.7619&0&0\\0&0&1&1.0244&0\\0&0&0&1&8.2\\0&0&0&0&1\\\end{pmatrix}}{\begin{pmatrix}x_{1}\\x_{2}\\x_{3}\\x_{4}\\x_{5}\\\end{pmatrix}}={\begin{pmatrix}0.0833\\0.1429\\0.7317\\2.325\\0.2625\\\end{pmatrix}}}](https://wikimedia.org/api/rest_v1/media/math/render/svg/bf7641085affa6244b9efe5ade19e9ace0671ebd)
egyszerűen megoldható rendszerré. A visszahelyettesítések alapján megoldásnak az
![{\displaystyle x={\begin{pmatrix}0.1535\\-0.2806\\0.5558\\0.1718\\0.2626\\\end{pmatrix}}}](https://wikimedia.org/api/rest_v1/media/math/render/svg/6bd7cfb1ce93440261c55f115b03ca8dd6f828ab)
értékeket kapjuk.
Jegyzetek
Források