Ugrás a tartalomhoz

Tridiagonális mátrix

A Wikipédiából, a szabad enciklopédiából
A lap korábbi változatát látod, amilyen FoBe (vitalap | szerkesztései) 2021. március 21., 14:34-kor történt szerkesztése után volt. Ez a változat jelentősen eltérhet az aktuális változattól. (Lineáris algebra kategória eltávolítva; Mátrixok kategória hozzáadva (a HotCattel))

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 diferenciá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.

Tulajdonságok

A tridiagonális mátrix voltaképpen egy felső és alsó Hessenberg mátrix.[1]

Determináns

Egy n dimenziós tridiagonális T mátrix determinánsát

a következő rekurzív képlet segítségével lehet kiszámítani:

ahol f0 = 1 és f-1 = 0.

Inverz

Egy adott T, nem szinguláris tridiagonális mátrix

inverzét a következőképpen lehet kiszámolni:

ahol θi teljesíti az alábbi rekurzív feltételt:

θ0 = 1, θ1 = a1 kezdőállapottal. ϕi pedig teljesíti a

feltételt ϕn+1 = 1 és ϕn = an kezdőállapottal.[2][3]

Példák

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.

Források

  1. Matrix Analysis. Cambridge University Press, 28. o. (1985). ISBN 0521386322 
  2. doi:10.1016/j.cam.2005.08.047
  3. doi:10.1016/0024-3795(94)90414-6