Tridiagonális mátrix

Innen: Hungaropédia
Ugrás a navigációhozUgrás a kereséshez

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:

(1400341002340013).

Matematikai nyelven úgy mondjuk, hogy aij = 0 minden olyan (i, j) esetén, melyekre teljesül az |ij| > 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

fn=|a1b1c1a2b2c2bn1cn1an|

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

fn=anfn1cn1bn1fn2

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

Inverz

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

T=(a1b1c1a2b2c2bn1cn1an)

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

(T1)ij={(1)i+jbibj1θi1ϕj+1/θn ha ij(1)i+jcjci1θj1ϕi+1/θn ha i>j

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

θi=aiθi1bi1ci1θi2 , i=2,3,,n

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

ϕi=aiϕi+1biciϕi+2 , i=n1,,1

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

Numerikus megoldás

Szemléletesen, legyen adott az alábbi egyenlet.

(d1c100...000e1d2c20...0000e2d3c3...000................................................0000...en2dn1cn10000...0en1dn)(x1x2x3...xn1xn)=(b1b2b3...bn1bn)

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: c1=c1c1d1;b1=b1d1. Ezután, a többi i=2,n elemre végrehajtjuk aci=cidieici1;bi=bieibi1dieici1 transzformációkat. Ezek eredményeképpen a

(1c100...0001c20...00001c3...00..........................................0000...1cn10000...01)(x1x2x3...xn1xn)=(b1b2b3...bn1bn)

rendszert kapjuk, melyet hátulról előre haladva könnyen megoldhatunk: xn=bn;xi=bixi+1ci(i=n1,1) . Ha figyelembe vesszük, hogy a mátrixban elfoglalt helyek alapján di=aii;ei=aii1 és ci=aii+1, 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

(12300036400045200012800045)(x1x2x3x4x5)=(11232)

tridiagonális rendszert. A Thomas-algoritmus alkalmazásával átalakíthatjuk ezt egy

(10.25000010.7619000011.0244000018.200001)(x1x2x3x4x5)=(0.08330.14290.73172.3250.2625)

egyszerűen megoldható rendszerré. A visszahelyettesítések alapján megoldásnak az

x=(0.15350.28060.55580.17180.2626)

értékeket kapjuk.

Jegyzetek

  1. Matrix Analysis. Cambridge University Press, 28. o. (1985). ISBN 0521386322 
  2. da Fonseca, C.M. (2007. március 1.). „On the eigenvalues of some tridiagonal matrices” (English nyelven). Journal of Computational and Applied Mathematics 200 (1), 283–286. o. DOI:10.1016/j.cam.2005.08.047. 
  3. Usmani, Riaz A. (1994. november 1.). „Inversion of a tridiagonal jacobi matrix” (English nyelven). Linear Algebra and its Applications 212-213, 413–414. o. DOI:10.1016/0024-3795(94)90414-6. 

Források