Eötvös Loránd Tudományegyetem Természettudományi Kar Radnai Georgina Mátrixfelbontások BSc szakdolgozat Témavezető: Ágoston István Algebra és Számelmélet tanszék Budapest, 6
Tartalomjegyzék Bevezetés 4. LU-felbontás 5.. Mátrixok LU-felbontása....................... 5.. LU-felbontás alkalmazása...................... 7.3. Kiszámolási módszerek........................ 8.4. Egy másik módszer: Gauss-elimináció............... 9.5. Példa.................................. QR-felbontás.. Mátrixok QR-felbontása......................... QR-felbontás Gram Schmidt-ortogonalizációval.......... 3.3. QR-felbontás Householder transzformációval............ 6.4. Householder-mátrixok kiszámolása:................. 8.5. Példa................................. 9.6. QR- felbontás Givens forgatással.................. 3. Szinguláris értékek szerinti felbontás 3.. Önadjungált szemidefinit mátrixok................. 3.. Mátrix szinguláris értékei, szinguláris értékek szerinti felbontás. 4 3.3. Eckart Young - tétel......................... 6 3.4. Az Eckart - Young -tétel alkalmazása képtömörítésre....... 6
Köszönetnyílvánítás Mindenek előtt szeretném megköszönni témavezetőmnek, Ágoston Istvánnak, aki folyamatosan támogatott, valamint meglátásaival és ötleteivel nagyban hozzájárult a szakdolgozatom elkészüléséhez. Szeretném megköszönni a családomnak, akik még a legnehezebb időszakokban is mellettem álltak és lelkesítettek nem csak a szakdolgozat elkészülésében, hanem végig az egyetemi éveim alatt. Külön köszönöm Márton Ákosnak, aki segített a Latex illetve a Matlab programok megértésében. Szeretném még megköszönni barátaim türelmét és támogatását, főképpen Bukovinszi Zsófiának, Fekete Katának, Horváth Dórának, Sári Kingának és Virág Dalmának. 3
Bevezetés Mátrixfelbontással akkor találkoztam először, amikor a lineáris algebrát tanultam és azt mondtuk egy mátrixra, hogy diagonizálható. Hiszen azok a mátrixok, amik diagonizálhatók, azokat fel tudjuk írni úgy, hogy egy invertálható mátrix szorozva egy diagonális mátrixszal szorozva egy invertálható mátrixszal. Az előnye például, hogy sokkal könnyebb egy diagonális mátrixot hatványozni. Ennél trükkösebb alkalmazások is vannak, és ehhez hasonlóakat numerikus analízisből tanultam. Tipikusan a numerikus eljárások ismertetésénél találkozik az ember különböző felbontásokkal. A szakdolgozatomban három ilyen felbontást fogok ismertetni és megmutatok néhány eljárást, hogy hogyan is lehet ezeket a felbontásokat megkapni, illetve mire lehet őket használni. Ezek a lineáris algebra numerikus alkalmazásainál jönnek elő, főleg számolások, számítások gyorsítására, egyszerűbbé tételére. A felbontások tárgyalásánál támaszkodtam a Faragó István, Horváth Róbert: Numerikus módszerek című könyvére, illetve a szinguláris értékek szerinti felbontásnál pedig Ivanyos Gábor jegyzeteire. A képtömörítésnél használtam a Matlab programot, hogy illusztráljam a szinguláris értékek szerinti felbontás alkalmazhatóságát. 4
. fejezet LU-felbontás.. Mátrixok LU-felbontása... Definíció. Egy A R n n mátrix LU-felbontásán egy olyan A = L U szorzatelőállítást értünk, ahol L R n n alsó háromszögmátrix (L mint lower) és U R n n felső háromszögmátrix (U mint upper), továbbá L-ről feltesszük, hogy normált, azaz a főátlóban csak egyesek szerepelnek. Az A R 3 3 mátrix esetén L és U a következőképpen néz ki: u u u 3 L = l U = u u 3, l ij, uij R l l 3 u 33... Tétel. Az A R m m reguláris mátrixnak akkor és csak akkor létezik LU-felbontása, ha az összes főminor mátrixa is reguláris, azaz a a... a n a a... a n A (n) =........ jelöléssel (ahol n m) deta (n) a n a n... a nn Ekkor az LU-felbontása egyértelmű. Bizonyítás: Teljes indukcióval bizonyítjuk. k = -re nézzük meg A felbontását: A = (a ) = (u ), tehát ebből következik, hogy a = u. Tegyük fel, hogy A k -ről tudjuk, hogy létezik az LU-felbontása vagyis A k = L k U k. Ezt felhasználva nézzük meg A k felbontását: 5
A k = ( A k c T k d k a kk ) ( ) ( L k = lk T... U k o T u k u kk ) A mátrix szorzást írjuk fel blokkonként, így azt kapjuk, hogy: L k u k = d k l T k U k = c T k U T k l k = c k l T k u k + u kk = a kk Mivel feltettük, hogy egyértelműen létezik L k U k így az L k u k = d k -ből u k egyértelműen kifejezhető hiszen det(l k ) =. Az lk T U k = c T k lt k tudjuk kifejezni, hiszen det(a k ) = det(l k ) det(u k ) = (U k ). l T k u k + u kk = a kk -ból pedig tudjuk, hogy u kk = a kk l T k u k. Ha tudjuk, hogy det(a k ) = det(l k ) det(u k ) és det(u k ) = det(u k ) u kk -ből pedig következik, hogy a kk. Nézzük meg az LU-felbontást visszafelé. Ha van egy LU-felbontásom és az összes főminor mátrixa reguláris, akkor A is reguláris lesz. Megmutatom, hogy A-nak a főminorjai ugyanazok, mint LU -nak a főminorjai. Tegyük fel, hogy létezik egy A = LU ( felbontásom. ) Vegyük fel A-nak a A A blokkmátrixok szerinti felbontását: A = A 3 A 4 Bontsuk fel L-et és U-t is hasonlóképpen : ( ) ( L L U U 3 ekkor L = és U = L 3 L 4 U U 4 Ezek a blokkmátrixok ugyanakkora méretűek és szeretném megmutatni, hogy ezek regulárisak. Az L és az U mátrixunkat szorozzuk össze és nézzük meg, hogy A blokkmátrixra így mit kapunk. A = L U + L U 3 Mivel L alsó háromszög mátrix, U pedig felső háromszög mátrix, így az L = és U 3 =, amiből adódik, hogy A = L U Nézzük meg mi lesz A -es blokkmátrix esetén. A = L U 3 + L U 4 Ebben az egyenletben L = ezért A = L U 3 Az A 3 -as blokkot is könnyű kiszámolni, hiszen A 3 = L 3 U + L 4 U, ahol U 3 =, így A 3 = L 3 U szintén leegyszerűsödik. A 4 pedig a következőképpen fog kinézni : A 4 = L 3 U 3 + L 4 U 4 Látjuk, hogy A-nak a főminorjai L-nek és U-nak a főminorjaival egyeznek meg. Tegyük fel, hogy A reguláris. L biztos, hogy reguláris, hiszen a főátlójában ) 6
egyesek szerepelnek. U-ról feltettük, hogy felső háromszögmátrix és U-nak regulárisnak kell lennie, hiszen, ha nem lenne reguláris, akkor A sem lenne, így pedig U főátlójában nem nulla elemek állnak. Ennek a főminorjai is regulárisak, így két reguláris mátrixot szorzunk, tehát A reguláris mátrix lesz és minden főminorja reguláris... LU-felbontás alkalmazása Egy mátrix LU-felbontásának ismeretében a alábbi feladatok könnyebben oldhatók meg: (i) determináns leolvasásánál: A mátrix determinánsát megkaphatjuk, ha az U mátrix főátlóbeli elemeit összeszorozzuk. (ii) lineáris egyenletrendszerek kiszámolásánál: Akkor érdemes LU- felbontást készíteni, ha sokszor fogjuk használni ezeket a mátrixokat. Ha már kiszámoltuk az A mátrix LU - felbontását, akkor könnyebben (kevesebb lépésből (n )) megoldható az A x = b egyenletrendszer. Itt az a könnyebbség, hogy a háromszög mátrix miatt csak visszahelyettesítéssel összesen n művelettel. A = L U A x = L (U x) = b Legyen az U x = y tehát akkor L y = b. Ebből könnyen kiszámolható y. Behelyettesítjük azu x = y egyenletbe és megkapjuk x értékét. Az A x = b egyenletrendszer megoldható, akkor és csak akkor, ha az L y = b és U x = y egyenletrendszerek is megoldhatók. Megmutatom, hogy amikor egy ilyen felső háromszögmátrixszal megadott egyenletrendszert oldok meg akkor a lépésszámigény lényegében n. Van (n i) (n k + ) szorzás, ugyanennyi összeadás, vagyis (n i) (n k + ) és még egy darab osztás, ez összesen (n i) + db műveletigény. Számoljuk ki, hogy ez n darab i-re nézve mennyi. n + (n i) }{{} ) + = (a + ) + = n ( i= n = a + (n ) + = a= a= (n )n + n = n + o(n) 7
Mivel nekünk két háromszögmátrixunk van, amibe vissza kell helyettesíteni így a műveletigénye kétszer annyi, vagyis n. Ha viszont egy általános mátrixnak csinálom meg a Gauss - eliminációját, akkor ha ott az első oszlopot nullázom, az n lépés. Utána a második oszlopot nullázom (n ) lépésigény, a harmadikat, ott (n ) lépésigény, így összesen a Gauss - elimináció műveletigénye 3 n3 + o(n ) Tehát ha már megvan nekünk egy mátrix LU - felbontása, akkor tényleg sokkal egyszerűbben, kevesebb lépésből meg tudunk oldani egyenletrendszereket..3. Kiszámolási módszerek Az L és az U elemeit viszonylag egyszerűen is megkaphatjuk, ha a megfelelő sorrendben próbáljuk meg őket kiszámolni. A következő sorrendeket szokás alkalmazni: sorfolytonos : oszlopfolytonos : parkettaszerű : Bemutatom a sorfolytonos számolás menetét: Nézzük meg mi lesz az első sorával. a j = u j = u j (j =... n) tehát U első sora megegyezik A első sorával, azaz itt nem kell számolni. A következő lépésben nézzük meg a második sorának első elemét. ezután, a = l u l = a u 8
a j = l j u j + l u j u j = a j l j u j (j =... n) általánosan: l ij = u jj j (a ij l ik u kj ) (i > j) k= i u ij = aij l ik u kj (i j) k=.4. Egy másik módszer: Gauss-elimináció A feltétel, hogy a minorok regulárisak, azt eredményezi, hogy az elimináció sorcsere nélkül elvégezhető. Hiszen az első sor első eleme nem nulla, így alatta ki tudok nullázni. Ilyenkor a minor, a 3 3 minor nem változik, hiszen csak a mátrixon belüli sorokat adtam hozzá, így a minorok regularitása nem változik. Utána a főátló második eleme alatt tudom kinullázni az elemeket, hiszen a minor reguláris, ezért nem kell sorcserét csinálnom. Ezt addig folytatom, amíg felső háromszögmátrixot nem kapok. Ha ezt meg tudom csinálni, akkor mindig csak lefelé vonok ki, lefelé adok hozzá, lefelé nullázok. Azaz elemi mátrix, amivel szorozni kell, hogy az elimináció lépéseit megcsináljuk, az átló fölött nem tartalmaz nem nulla elemeket. Az elimináció lépéseit tehát úgy is felfoghatjuk, mintha egy alsó háromszögmátrixszal szoroznánk. Legyen ez az alsó háromszög mátrixunk az E i (i =,..., n ) mátrix. Az A mátrixot szeretnénk felbontani az L és U mátrixok szorzatára, ahol L az elemi mátrixok inverzeinek szorzata, vagyis Nézzük meg az átalakítás első lépését. L = E E... E n. A A = E A A második lépésben a már megkapott A -vel dolgozunk tovább. A = E E A Ezt folytatva n lépésen keresztül akkor a következőt kapjuk: A (n ) = E n E E A, 9
ahol A (n ) = U-val, tehát megkapjuk a felsőháromszög alakot. Ha baloldalról beszorozzuk az egyenlet mindkét oldalát az (E n E E ) inverz mátrixszal, akkor megkapjuk, hogy és mivel (E n E E ) U = A (E n E E ) = E E... En -vel, ezért LU = A. A fenti módszerből látszik, hogy ha a mátrix k rangú és az első k minor nem nulla, akkor a fenti eljárással nem akadunk el, és meg tudjuk csinálni az LU - felbontást. Kimondhatunk tehát egy elégséges feltételt LU-felbontás létezésére szinguláris mátrixok esetén is..4.. Tétel. Legyen A R n n, olyan, hogy r(a) = k, k < n Tegyük fel, hogy az A,..., A k főminorok determinánsa nem nulla. Ekkor A-nak létezik LU-felbontása..5. Példa 3 A = A = 5 4 3 6 Első lépésben az első oszlop második és harmadik elemét szeretnénk kinullázni, méghozzá úgy, hogy a második sorból kivonjuk az első sor kétszeresét, és a harmadik sorból az első sor háromszorosát. Ezt úgy érjük el, hogy A-t szorozzuk, az E = 3 mátrixszal. Most az E A mátrixszorzásból megkapjuk az A mátrixot. 3 E A = = A. 4 3
A második lépésben pedig a második oszlop harmadik elemét szeretnénk kinullázni úgy, hogy a harmadik sorból kivonjuk a második sor 4-szeresét. Ezt úgy érjük el, hogy az A mátrixot szorozzuk az E = mátrixszal. 4 Ilyenkor az E A mátrixszorzásból megkapjuk az A mátrixot. 3 A = E A = Mivel 3 3-as volt a mátrix, így az E i mátrixok készen vannak, az U mátrix pedig könnyen leolvasható. 3 U = Már csak az L mátrixra van szükségünk. L = E E Könnyen látható, hogy az E i mátrixok inverzét úgy kapjuk, hogy a főátlón kívüli elemeinek ( )-szeresét vesszük. E =, E 3 =, L = 4 3 4 Ellenőrzés: 3 L U = 5 4 = A 3 6
. fejezet QR-felbontás.. Mátrixok QR-felbontása... Definíció. Egy A R n n mátrix QR-felbontásán egy olyan A = Q R szorzatelőállítást értünk, ahol Q R n n ortogonális mátrix, R R n n reguláris felső háromszögmátrix. Emlékeztetőül: Egy Q mátrixot pedig akkor nevezünk ortogonálisnak, ha Q = Q T. Az A R 3 3 mátrix esetén Q és R a következőképpen néz ki: ) Q = (q q q 3 r r r 3 R = r r 3, r 33 ahol Q oszlopai, mint vektorok ortonormált rendszert alkotnak. A q, q,..., q n R n vektorok ortonormált rendszert alkotnak, ha q i, q j = {, ha i j, ha i = j... Tétel. Bármely reguláris A mátrixnak létezik QR - felbontása: létezik egy R felső háromszögmátrix és egy ortogonális Q mátrix, hogy A = QR. A felső háromszögmátrix vagyis az R mátrix invertálható és elérhető, hogy minden főátlóbeli eleme pozitív legyen. Az így kapott felbontás egyértelmű.
Ez a felbontás is jól használható lineáris egyenletrendszerek megoldásához. Ha már tudjuk az A mátrix QR- felbontását, akkor például a következőképpen ki tudjuk számolni egy egyenletrendszer megoldását. Ax = b QRx = b Rx = Q b Q kiszámolása könnyű, hiszen Q = Q T c = Q b pedig csak egy mátrixszorzás, amit könnyebben tudunk számolni. Ekkor c-t behelyettesítve kapjuk, hogy Rx = c ennek a megoldása könnyebb, mert R invertálható felső háromszögmátrix, és ahogy korábban láttuk, az ilyen egyenletrendszerek megoldása lépésenkénti visszahelyettesítéssel gyorsabban megoldható... QR-felbontás Gram Schmidt-ortogonalizációval Legyen A egy reguláris mátrix, oszlopvektorait pedig jelöljük a, a,..., a n -nel. Mivel szeretnénk egy ortogonális és egy felső háromszögmátrix szorzataként előállítani, így QR-felbontást kell kapnunk, ahol Q oszlopait q, q,..., q n -nel jelöljük, míg az R trianguláris lesz, azaz: r r... r n r... r n (a, a,..., a n ) = (q, q,..., q n ).............. r nn A mátrix elemeit úgy kapjuk, hogy Q-val megszorozzuk ezt az R mátrixot. Írjuk fel ezeket az egyenleteket a szorzás alapján: a = r q a = r q + r q. a n = r n q + r n q + + r nn q n Az egyenletekben az r-ek és a q-k az ismeretlenek, de q vektorokról tudjuk, hogy ortogonálisak. Az első egyenlet megoldása. Szorozzunk be balról a transzponálttal, ilyenkor a következőt kapjuk: 3
a T a = r q T q q-ról tudjuk, hogy ortogonális ezért q T q =. Vagyis csak az at a = r egyenlet marad nekünk, amiből már következik, hogy r = + a T a, ahol a T a mindig pozitív, hiszen a komponensek négyzetösszegével egyenlő. Ekkor már ki tudjuk fejezni q -et is, méghozzá a következőképpen: q = r a Nagyon jó, az első egyenletből már mind a két ismeretlent ki tudom fejezni a segítségével. Nézzük meg a második egyenlettel mi fog történni. Itt három ismeretlenünk is van, az r, r és a q. Szorozzuk be az egész egyenletet balról q T -tal, ilyenkor a qt q = az ortonormáltság miatt és q T q = szintén az ortonormáltság miatt. Tehát az egyenletünk a következőképpen néz ki: q T a = r, ahonnan r -t már ki tudjuk számolni. q meghatározásához először definiáljuk a b vektort, b = a r, ilyenkor b = r q. Az első egyenletnél látottakhoz hasonlóan adódik, hogy b T b = r, vagyis r = + b T b és q = r b. Tehát mind a három ismeretlent ki tudtuk fejezni. Az n-edik egyenlet megoldása is hasonlóképpen fog történni feltéve, ha az előző egyenletek meg lettek oldva, azaz i j < n-re a q i -t illetve az r ij -t már kiszámoltuk. Ilyenkor i =,,..., n -re az egyenletet szorozzuk be balról q T i -tal, ekkor az összes q eltűnik, kivéve az r in-nel való szorzást. Tehát nekünk az alábbi egyenletünk maradt meg: q T i a n = r in i =,,..., n Ebből pedig r in meghatározható. Ahogy a q vektor meghatározásához definiálnunk kellett egy b vektort, most a q n vektor meghatározásához kell definiálnunk egy b n vektort. Legyen b n = a n (r n q + r n q + + r n,n q n ) 4
Felhasználva a b n = r nn q n összefüggést az n-edik egyenlet alapján, az első és második egyenlethez hasonlóan b T n b n = r nn, így r nn = + b T n b n és q n = r nn b n. Ezzel az eljárással tehát meghatározható a QR-felbontás. Q és R előállításához a következő általános képleteket használjuk fel: r kk = a k k i= r ik q i q k = r kk (a k k i= r ik q i ) Az így nyert q, q,..., q n R n vektorrendszer ortonormált. Ha kézi számolást végzünk, akkor nem kell a normált vektorhoz ragaszkodni, hiszen elegendő lesz a végén leosztani a vektorok normájával. Most nézzünk példát a már leírt kiszámítási módra. Legyen A = 3 Keressük a QR-felbontását ennek a mátrixnak. r = a = + + = q = r a = r = a, q = = a r q = = r = a r q = + + = q = r (a r q ) = = r 3 = a 3, q = = + + 3 = 4 3 5
r 3 = a 3, q = = 3 a 3 r 3 q r 3 q = 4 = = 3 3 r 33 = a 3 r 3 q r 3 q = ( ) + + = q 3 = r 33 (a 3 r 3 q r 3 q ) = Tehát: Q = R = 4 A továbbiakban nézzük meg, hogy hogyan lehet másként is megkapni egy QRfelbontást..3. QR-felbontás Householder transzformációval.3.. Definíció. Egy v vektorhoz tartozó H = H(v) mátrixot Householdermátrixnak nevezzük ha H(v) = I vv T, ahol v R n és v =..3.. Tétel. A Householder- mátrix egy szimmetrikus, ortogonális mátrix és mint egy R n -beli transzformáció, egy tükrözést valósít meg. Bizonyítás: Igazoljuk ezeket a tulajdonságokat külön-külön.. Szimmetria: azaz H(v) T = H(v) Bizonyítás: (I vv T ) T = I T (v T ) T v T = I vv T. Ortogonalitás: Tudjuk, hogy H(v) T = H(v), hiszen előbb láttuk be, így csak azt kell igazolni, hogy H(v) T = H(v), azaz: H(v) T H(v) = H(v) H(v) T = H(v) = I Bizonyítás: (I vv T ) (I vv T ) = I vv T vv T + 4vv T vv T = I 4vv T + 4vv T = I (mivel v T v = ). 6
3. Tükrözés: Legyen a vektor merőleges v-re. Ekkor H(v) a = a. Bizonyítás: (I vv T ) a = I a vv T a = a v = a (mivel v T a = ) Tehát a transzformáció v-re merőleges vektorokat helyben hagy. 4. Most nézzük meg, hogy mi a helyzet egy v vektorral párhuzamos vektor esetén. Legyen y párhuzamos v-vel, azaz y = λ v Ekkor H(v) y = y Bizonyítás: (I vv T ) y = I y vv T y = I y vv T λy = y λvv T v = y y = y Ez azt jelenti, hogy a transzformáció a v-vel párhuzamos vektorokat a --szeresükbe viszi. Mivel bármely c R n vektor felbontható egy v -vel merőleges és egy v -vel párhuzamos komponensre, tehát c = a + y alakú, ezért H(v)c = H(v) a + H(v) y = a y, vagyis a Householder-mátrix tükröző mátrix, mégpedig a v vektor ortogonális kiegészítő alterére való tükrözés. A következő lemma segítségével beláthatjuk, hogy az A mátrixot felsőháromszögalakra hozhatjuk úgy, hogy H(v)típusú tükröző mátrixokkal. (azaz speciális ortogonális mátrixokkal) szorzunk balról..3.3. Lemma. Legyen a R n. Ekkor létezik egy v R n amelyre v = és melyre H(v)a = σe, ahol σ = ± a. Konkrétan v választható a v = a σe a σe vektornak. Bizonyítás: A megadott v vektorra nyilván teljesül v = feltétel. Ha a =, akkor σ = és az állítás igaz. Tegyük fel, hogy a. Ekkor a σ definíciója alapján a, a = σ is igaz lesz. Most helyettesítsük be v-t a H(v) mátrix definíciójába, ez a következőképpen néz ki: a σe H(v)a = (I a σe (a σe)t a σe ) a = = a a σe (a σe ) ( a, a σ e, a ) = a (a σe ) = σe hiszen a nevezőben szereplő a σe tagot ha felbontjuk, akkor az alábbi módon néz ki: a σe, a σe = a, a σ a, e + σ = ( a, a σ q, e ) Tehát a nevezővel tudunk egyszerűsíteni és a mátrixunk valóban σe -gyel lesz egyenlő. 7
.4. Householder-mátrixok kiszámolása: Most definiáljuk a QR - felbontást Householder- mátrixok segítségével. Először az első oszlopban elimináljuk az első elem alattiakat. Ezután egy olyan transzformációt alkalmazunk, amely sem az első sort sem az első oszlopot nem változtatja, de a második sor második eleme alattiakat eliminálja. Ezt így folytatjuk addig, ameddig nem kapunk egy felső háromszögmátrixot. Nézzük meg, hogy hogyan is kell felbontanunk a mátrixot. Legyen A = [a, a,..., a n ] R n n, ilyenkor az előbb látott lemma szerint létezik olyan v R n, amire teljesül, hogy v =, ekkor H(v )a = σ e. Most szorozzuk be H = H(v )-gyel az A mátrixot, ilyenkor az alábbi alakot kapjuk [ ] σ H(v ) A = R n n A és a H := H(v ) mátrix pedig ortogonális, A pedig R (n ) (n ). Nézzük meg mi fog történni a második lépésben. A = [a (), a(),..., a() n ] esetén létezik v R n, amire szintén teljesül, hogy v =, ekkor pedig H(v )a () = σ e. De ekkor: mátrix is ortogonális és H := [ ] H(v ) σ H H A = σ A Ezt az eljárást folytatjuk n -edik lépés után megkapjuk a felsőháromszögalakot, amely főátlójában a σ i értékek vannak. Nézzük meg, hogy hogyan is állítható elő a QR-felbontás: H n H n H A = R így H i szimmetrikussága és ortogonalitása miatt Q = H n H n H 8
Ebből a kettőből pedig következik, hogy A = H H H n R = Q R Így a QR-felbontás létezését is beláttuk, az egyértelműségét pedig már korábban bebizonyítottuk..5. Példa Legyen A = 3 σ = a = + + = + a σ e = = + + v = a σe a σ e = (+ = )+ + 4+ + ( H a = a vv T a = 4+ + ) = + + ( + + ) = = + ( H a = a vv T a = 4+ + ) = + + = + ( H a 3 = a 3 vv T a 3 = 4+ + ) = 3 3 + + (4 + ) = (3 + ) = 3 3 H A = = R 9
Így már rögtön meg is kaptuk a felső háromszögmátrixot, vagyis ezzel már meg tudjuk határozni a Q -t is. Ebben az esetben pedig Q = H, vagyis A = H R A = Q R.6. QR- felbontás Givens forgatással.6.. Definíció. Givens-forgatásnak egy olyan forgatást nevezünk R n -ben, amely a két koordinátatengely által kifeszített síkban forgat, és a többi tengelyt helyben hagyja. Az i-edik és a j-edik koordinátatengely síkját érintő forgatás mátrixa:......... cos α... sin α G =... sin α... cos α....... Ezt úgy kapjuk meg, hogy ahol az egységmátrix i-edik és j-edik sora és oszlopa metszi egymást (ez pontosan négy hely) oda az α szögű forgatás mátrixát tesszük. Ezzel a forgatással elérhetjük, hogy egy tetszőleges x vektort egy olyan vektorba forgassunk, amelynek j-edik koordinátája. Ha csak az i-edik és a j-edik sorokat és oszlopokat kiemeljük, akkor a következőképpen néz ki: Ebből látjuk, hogy az [ cos α sin α ] [ ] [ ] sin α a r = cos α b r = a + b cos α = a r sin α = b r egyenletekből fel tudjuk írni a forgatómátrixot, ha a-t és b-t ismerjük. Ezt az eljárást is használhatjuk. hogy mátrixokat felsőháromszög-alakra hozzunk, méghozzá úgy, hogy balról szorozzuk egy Givens-forgatás mátrixával. Ebből a mátrix QR-felbontását megkaphatjuk, ilyen forgatások egymásutánjával. A módszer különösen előnyös, ha a kiindulómátrixunk úgynevezett ritka mátrix. Nézzünk meg egy példát QR- felbontásra Givens forgatással. 3 5 6 A = 4 5 8 9
Először elimináljuk a második sor első elemét a következőképpen: a = 3, b = 4, tehát r = 3 + 4 = 5. Ebből következik, hogy cos α = 3 4 5, sin α = 5, írjuk fel erre a Q mátrixot. 3 5 4 5 4 3 Q = 5 5 Első lépésben egy mátrixszorzással tudjuk eliminálni. 5 5 Q A = 5 9 A következő lépésben elimináljuk a harmadik sor második elemét. Ehhez kell nekünk a Q mátrix, vagyis írjuk fel erre a forgatást: a = 5, b =, r = 5 + = 3. 5 Q = 3 3 3 5 3 Az eliminálást úgy kapjuk meg ha Q Q A szorzást elvégezzük: 5 5 8 Q Q A = 3 3 = R 45 3 Mivel látjuk, hogy ez egy felső háromszögmátrix így ezt elnevezzük R-nek. Q-t pedig úgy kapjuk meg, hogy ha vesszük, (Q Q ) inverzét, amit transzponálással kaphatunk: (Q Q ) = Q Q = Q T Q T. Tehát: 3 4 Q = Q T Q T 5 5 4 3 5 = 5 5 3 3 = 3 5 3 Ezekkel a mátrixokkal megkapjuk A = QR-felbontást. 3 4 5 5 4 3 5 3 3 48 65 36 65 5 3
3. fejezet Szinguláris értékek szerinti felbontás 3.. Önadjungált szemidefinit mátrixok A bevezetőben már említettük, hogy a mátrix diagonális alakjának a megkeresése az tulajdonképpen egy mátrix felbontással ekvivalens. Ilyenkor A = SDS, ahol S egy invertálható mátrix. Ugyanakkor QR-felbontásnál láttuk azt is, hogy unitér mátrixszal számolni mennyivel könnyebb, például nem kell invertálni. Ez geometriailag azt jelenti, hogy csak távolságtartó transzformációkat engedünk meg. Tehát felmerül a kérdés, hogy lehet-e unitér mátrixokkal diagonális alakra hozni egy mátrixot. Nézzük meg, hogy hogyan lehet unitér mátrixszal diagonizálni. 3... Tétel. Diagonizálás egyik feltétele, hogy létezik sajátvektorokból álló bázisa. A diagonizálás a következőképpen néz ki: S AS = D azaz A = SDS, ahol S oszlopai az A sajátvektorai és lineárisan függetlenek. 3... Tétel. Unitér mátrixnál már eggyel erősebb feltétel valósul meg, akkor lehet diagonizálni, ha létezik sajátvektorokból álló ortonormált bázisa. Unitér mátrix diagonizálásánál a fentebb látott S oszlopai most egy sajátvektorokból álló ortonormált bázist alkotnak, így S = S, tehát unitér. Az unitér mátrix diagonizálhatóságának feltétele már ismert, de a következő tételben elmondom. 3..3. Tétel. Az mátrix normális azaz A A = AA
A tétel bizonyítása megtalálható Freud Róbert: Lineáris algebra című könyvében. Normális mátrixokra nézzünk meg pár példát: (i) az unitér mátrixok, azaz A mátrix unitér, ha A = A (ii) az önadjungált, azaz A = A Normális mátrixokon belül az önadjungált mátrixok jellemzését adja az alábbi állítás. 3..4. Állítás. Egy mátrix akkor és csak akkor önadjungált, ha normális és minden sajátértéke valós. 3..5. Definíció. Az önadjungált mátrix pozitív definit, ha minden x vektorra x Ax > és pozitív szemidefinit, ha x Ax minden x-re. Kritérium a definitségre, hogy akkor minden sajátértéke pozitív. A szemidefinitség kritériuma pedig, hogy minden sajátértéke nemnegatív kell hogy legyen. Pozitív szemidefinit mátrixokra példát adnak az alábbi típusú mátrixok. 3..6. Állítás. Tetszőleges A C m n alakú mátrix esetén A A önadjungált és pozitív szemidefinit. Bizonyítás: Önadjungált az világos, hiszen (A A) = (A ) A = AA. A szemidefinitségnél pedig ellenőrizni kell, hogy x A Ax és egyenlő (Ax) (Ax) azaz ez az érték az Ax vektoroknak önmagával vett skaláris szorzata, és ez az érték a skaláris szorzat pozitív definitsége miatt biztosan nemnegatív. 3..7. Állítás. A A rangja megegyezik A rangjával. Bizonyítás: KerA = KerA A, tehát ugyanazokat az elemeket viszik nullába, hiszen ha Ax = akkor A Ax =, tehát ekkor KerA KerA A -nak. Másrészt ha tudjuk, hogy A Ax =, ebből pedig következik, hogy < Ax, Ax >=. Akkor tudjuk, hogy Ax =, mert egy vektor önmagával vett skaláris szorzata csak akkor nulla, ha a vektor nulla. Ebből következik hogy akkor KerA A KerA-nak. Ebből miért is következik, hogy ugyanakkora a rangja? Legyen A C n k ekkor A A C k k. Az A-nak a rangja úgy néz ki, hogy veszem a lépcsős alakot és onnan a nem nulla elemek száma. A magtérnek a dimenziója a szabad vektoroknak a száma, az A rangja pedig a kötött változók száma, ez a kettő együtt egyenlő az oszlopok számával. Az A A-ban ugyanannyi oszlop van, mint A-ban. Ez azt jelenti, ha a magtere az A A-nak r, akkor a rangja az oszlopok száma r. Ha a magtere az A A-nak és az A-nak ugyanaz, az oszlopok száma ugyanaz, akkor a rangja is ugyanaz. 3
3.. Mátrix szinguláris értékei, szinguláris értékek szerinti felbontás 3... Definíció. Az A mátrix szinguláris értékei alatt az A A (nem nulla) sajátértékeinek a pozitív négyzetgyökeit értjük és σ σ... σ r >. Láttuk azt, hogy A A tetszőleges A mátrix esetén önadjungált, tehát a sajátértékei valósak. Sőt pozitív szemidefinit, tehát a sajátértékei nemnegatívak. Ebből következik, hogy ezekből a sajátértékekből tudok pozitív négyzetgyököt vonni, így a szinguláris értékek sorozata jól van definiálva. 3... Lemma. Legyen A C m n mátrix. Ekkor létezik egy olyan M m n-es négyzetes unitér mátrix illetve egy M n n -es négyzetes unitér mátrix, amelyekre teljesül, hogy M AM olyan m n -es mátrix, hogy a főátlójában A-nak a szinguláris értékei helyezkednek el nem növekvő sorrendben és a többi helyen pedig nulla áll. Ha A-nak a szinguláris értékei σ σ σ n számok akkor M AM vagy σ. σ..,. σ.., vagy... σ n alakú, attól függ, hogy m < n, m = n, m > n. σ n σ n Bizonyítás: Vegyük az A A m m-es pozitív szemidefinit mátrixnak a sajátvektoraiból álló ortonormált bázisát úgy, hogy a sajátértékek ne növekvő sorrendben legyenek. Ahhoz, hogy erre a bázisra áttérjünk kell egy olyan M unitér mátrix, melyre M A AM az a D diagonális mátrix lesz amelynek főátlójában a σ elemek vannak. (a szinguláris értékek négyzetei). A D = (AM) (AM) diagonalitásából következik, hogy az AM mátrix oszlopai ortogonális rendszert alkotnak. A diagonális elemek az oszlopvektorok hosszának a négyzetét adják, így az i-edik elem hossza σ i. Az A mátrix rangja legyen r, vagyis r a nem nulla szinguláris értékek száma. M -t válasszuk egy olyan m m-es unitér mátrixnak, amelynek az első r oszlopa AM első r oszlopa hosszúra normálva. Mivel a nem nulla szinguláris értékek száma r, AM további oszlopai nullák lesznek. AM = M és ebből = M AM. 3..3. Tétel. Redukált SV D : Legyen A C m n -es mátrix, melynek rangja r és legyen olyan r r -es mátrix, melynek főátlójában A -nak a szinguláris értékei vannak nem növekvő sorrendben. Ilyenkor létezik egy U m r-es és egy Un r -es 4
mátrix, hogy U -nek és U -nak is az oszlopai ortonormált rendszert alkotnak. Azaz U U = I r és U U = I r. Ekkor A szinguláris felbontása A = U U. Bizonyítás: Legyen = M AM a fenti lemma szerint. Ekkor A = M M. Legyen U az M mátrix első r oszlopából álló m r-es mátrix, U pedig M mátrix első r oszlopából álló n r-es mátrix. Tehát ekkor ( ( ) M = U M ), M = U M ekkor az SVD-tétel szerint. ( = U M ) ( A = M ) ( ) M = U ( = U M ) ( ) U = U U M Nézzünk meg egy példát a szinguláris értékek szerinti felbontásra ( ) 3 A = 3 9 ( ) A 3 = 3 9 ( ) A 3 A = 3 9 k (A A)(x) = x x = x(x ) λ =, λ =, σ =, σ =, ( ) = [], = Az A A sajátvektora λ -hez : Az A A sajátvektora λ -höz : ( ) 3, normálva : ( ) 3 ( (, normálva : ) 3 ) 3 M = ( 3 3 U = ( A = U U = 3 ) ) ( 3 M = U = ) ( 3 3 ( ) 3 ) ( ) 3 5
3.3. Eckart Young - tétel A matematikában gyakran kell közelítő mátrixokkal dolgoznunk. Pl: a kis rangú mátrixok sokkal helytakarékosabban tárolhatók, mint a regulárisak. Így a következő tétel arra keres választ, hogy mi lesz egy A mátrix optimális közelítése, ha a rögzített k-rangú mátrixok között keressük ezt az approximációt. 3.3.. Tétel (Eckart-Young). Teljes SV D : Legyen A C m n -es mátrix, melynek rangja r és A szinguláris értékek szerinti felbontása : A = U U. Ekkor tetszőleges k r -re : A = U (k) (k) U (k) A -hoz a Frobenius-normában az egyik legközelebbi m n -es mátrix, melynek rangja legfeljebb k. Itt U (k) az U első k oszlopából álló részmátrixa, U (k) az U első k oszlopából álló részmátrixa és (k) a bal felső k k -as része. Ekkor a közelítés hibája : r σi, i=k+ ahol a közelítés hibája σ σ σ r az A -nak a szinguláris értékei. A tétel bizonyítására most nem térek ki, de Ivanyos Gábor honlapján található jegyzetben megtekinthető. 3.4. Az Eckart - Young -tétel alkalmazása képtömörítésre JPG képek tömörítésére is használható a szinguláris értékfelbontás. Az eljárás egyik alapvető kiindulása, hogy az emberi szem sokkal érzékenyebb a színek fényességére, mint a színeknek az árnyalatára, ezért a képből sok színérték elhagyható. Képtömörítés SVD faktorizációval. Egy fekete-fehér képet tekintsünk egy A mátrixnak, melyben a pixelek száma megegyezik a mátrix méretével, azaz pixeles kép egy -as mátrixnak felel meg. A mátrixban lévő a ij adatokat a [, ] intervallumból vesszük, ahol a -t fehér pixelnek tekintjük, az -et pedig feketének. Így a közbeeső értékek vagyis a < a ij <, a szürke különböző árnyalatainak fognak megfelelni. Most egy olyan módszert mutatok meg, amellyel tudjuk minimalizálni a kép méretét, úgy hogy maga az új kép látszólag nagyon minimálisan térjen el az eredetitől. Erre az Eckart-Young tételt hívjuk segítségül. Legyen A C m n egy r rangú mátrix. Nézzük meg ennek az SVD faktorizációját. 6
A = V U, ahol = ( ) Itt U C n n és V C m m unitér mátrixok és diagonális mátrix, melynek elemei λ λ λ r >. Ezek az értékek az A A mátrix sajátértékeinek pozitív négyzetgyökei, vagyis szinguláris értékei. Ha U és V oszlopait u i -vel és v i -vel jelöljük, akkor a következőképpen is fel tudjuk írni az A mátrixot: A = V U = r λ i v i u i Mivel a szinguláris értékek nemnövekvő sorrendben vannak így az A mátrix közelíthető az első k r oszloppal, ami a következőképpen néz ki: A k = i= k λ i v i u i i= Az Eckart-Young tétel miatt A k lesz a legjobb közelítése az A mátrixnak a k rangú mátrixok között. Ha k sokkal kisebb, mint r akkor sok tárhelyet tudunk megspórolni, ha A-t A k -val közelítjük. Az A R m n mátrix tárolása m n skalár tárolását jelenti. De az A k tárolása jóval kevesebbet igényel, pontosan k darab λ i v i C m vektor és u i C n vektor, azaz k(m + n) számú skalárt. Vagyis nekünk jó az, ha k kicsi és megelégszünk A egy közelítésével is. Nézzünk egy konkrét példát. Az eredeti képet átalakítottam egy négyzetes képpé, ami 5 5 pixelből áll. Ezt megfeleltetjük egy A mátrixnak, mely 5 5 -es. A Matlab programmal pedig a következő átalakításokat végeztem. A képet színesből fekete-fehérré alakítottam, a mátrixban lévő számokat a tizedes törtekké alakítottam és a mátrixot szétbontottam a szinguláris értékek szerinti komponensekre. Utána a for-ciklusban lévő parancsokat végrehajtattam 5-ös rangtól egészen 3-as rangig ötösével, eltároltam a szinguláris értékeket, a nem szükségeseket lenulláztam. A kapott mátrixból pedig megalkottam a képet. A Matlabos programkód pedig a következőképpen néz ki : 7
Az eredeti kép mellett további 3 kép látható melyeket 3 különböző k-val közelítettem az eredeti A-hoz, vagyis 3 különböző A k mátrix. 8
k = 5 k = k = 3 eredeti Látjuk, hogy a k = 5-re még nagyon elmosódott a kép, míg k = -re már egész jól kivehető, de a k = 3-as közelítés az ami szinte ugyanúgy néz ki mint az eredeti kép, csak jóval kevesebb helyet foglal, körülbelül a negyedére csökkentettük. k(m+n) m n = 3(5+5) 5 5 4% Ennek a képtömörítési módszernek a fő számítási költsége az A mátrix szinguláris felbontásának kiszámolása. A képtömörítéshez természetesen léteznek más sokkal hatékonyabb és olcsóbb algoritmusok is, mint az SVD faktorizáció. 9
Irodalomjegyzék [] Freud Róbert: Lineáris algebra ELTE Eötvös Kiadó (4) [] Wettl Ferenc: Lineáris algebra Typotex () [3] Stoyan Gisbert, Takó Galina: Numerikus módszerek I. Második átdolgozott kiadás Typotex () [4] Gergó Lajos: Numerikus módszerek ELTE Eötvös Kiadó () [5] Fogaras Dániel: SVD www.cs.bme.hu/ fd/papers/fog_svd.pdf [6] Házi Attila: Előadás jegyzete www.uni-miskolc.hu/ matha/numerikus_5ea.pdf [7] Wettl Ferenc: Előadás jegyzet www.math.bme.hu/ wettl/okt/linalg/5/ea_matrixok.pdf [8] Lócsi Levente: Előadás jegyzet www.people.inf.elte.hu/hozsaai/3_felev/nummod/locsiesti-ea-dia/nummodesti_ea4.pdf [9] Virágh János, Dombi József, Csendes Tibor: Numerikus matematika www.users.atw.hu/mejegyzetek/files/9 5 3nummod_jegyzet_.pdf [] Faragó István, Horváth Róbert: Numerikus módszerek Typotex () [] Aradi Bernadett: Gram-Schimdt-féle ortogonalizációs eljárás www.math.unideb.hu/media/aradi-bernadett/gram-schmidt.pdf [] Ivanyos Gábor: Előadásvázlat www.math.bme.hu /ig/alkalg/alkalg.pdf [3] www.elte.prompt.hu/sites/default/files/tananyagok/geofizikaiinverzio/chs5. [4] www.uni-miskolc.hu/evml/database/downloads/diszkret/segedletek/num4.pdf 3