Közelítő és szimbolikus számítások 4. gyakorlat Mátrix invertálás Gauss-eliminációval, Cholesky felbontás, QR felbontás Készítette: Gelle Kitti Csendes Tibor Somogyi Viktor London András Deák Gábor jegyzetei alapján
MÁTRIX INVERTÁLÁS GAUSS-ELIMINÁCIÓVAL. Mátrix invertálás Gauss-eliminációval Definíció.. Egy n n-es A mátrix invertálható, ha létezik olyan n n-es B mátrix, melyre igaz, hogy: AB = BA = I n, ahol I n az n n-es egységmátrixot jelöli. Ekkor B-t az A mátrix inverzének nevezzük. Jelölése: A.. Megjegyzés. Vegyük észre, hogy ez n n-es mátrixokra igaz, viszont n m- es mátrixok esetében nem ilyen egyszerű a helyzet. Azt mondjuk, hogy a nem négyzetes mátrixok nem invertálhatóak, de létezhet bal- vagy jobbinverzük. Ha az A n m-es mátrix rangja m, akkor létezik egy B mátrix, hogy BA = I m. Ez a B mátrix A balinverze. Hasonlóan, ha az A n m-es mátrix rangja n, akkor létezik egy B mátrix, hogy AB = I n. Ez a B mátrix A jobbinverze. A Gauss-eliminációt a lineáris egyenletrendszerek megoldásán túl mátrixok invertálására is használhatjuk. Legyen A egy n n-es mátrix. Tekintsük az inverz mátrix definícióját, ahol most B-t, tehát az inverzet keressük, ez az ismeretlen. Legyen a könnyebb érthetőség miatt B = X. Ilyenkor tehát így néz ki az inverz egyenlete: AX = I () Ezt szétbonthatjuk úgy, hogy az X és I mátrix oszlopait vesszük: Ax = e. Ax n = e n, (2) ahol x i az X mátrix i-edik oszlopa, e i pedig az I mátrix i-edik oszlopa (tehát az a vektor, aminek i-edik koordinátája és a többi ). Ha a (2) egyenletben az A mátrixot háromszögmátrix alakra hozzuk, akkor az MA = U alakra támaszkodva n darab felső háromszögmátrix alakú egyenletrendszert kell megoldani ahhoz, hogy megkapjuk az inverz mátrixot. Tehát balról szorzunk az M mátrixszal (ahol M az M n... M Gauss-transzformációs mátrixok szorzata ebben a sorrendben), így megkapjuk a kívánt alakot: MAx i = Me i Ux i = Me i. (3)
MÁTRIX INVERTÁLÁS GAUSS-ELIMINÁCIÓVAL Példa. Határozzuk meg a lenti mátrix inverzét! 4 3 5 3 Megoldás. Először tehát írjuk fel, hogy milyen () alakú egyenletet kell megoldanunk: x x 2 x 3 4 3 x 2 x 22 x 23 5 3 x 3 x 32 x 33 Ezután bontsuk szét (2) alakú egyenletekre. Ezek (3) alakú formáit kell megoldanunk, amit a fent látható módon állítunk elő. Számoljuk ki U-t és M-et: 4 3 5 3 4 3 5 3 4 3 5 3 x x 2 x 3 x 2 x 22 x 32 x 3 x 23 x 33 M A = /3 4 3 /3 8/3 = A 5/3 5 3 /3 2/3 M 2 A = /3 8/3 /3 8/3 = U / /3 2/3 2/5 M = M 2 M = /3 /3 / 5/3 7/ / 2
MÁTRIX INVERTÁLÁS GAUSS-ELIMINÁCIÓVAL Oldjuk meg egyenként a fenti szétbontott egyenleteket. fogjuk vázolni. Az első egyenlet megoldása: /3 8/3 2/5 A második egyenlet megoldása: x x 2 x 3 2/5 /3 8/3 /3 8/3 2/5 x x 2 x 3 A megoldást itt csak röviden /3 7/ / /3 7/ x = 5/4, x 2 = 7/2, x 3 = 7/4 x 2 x 22 x 32 2/5 /3 8/3 /3 7/ / x 2 x 22 x 32 / x 2 = /4, x 22 = /2, x 32 = /4 A harmadik egyenlet megoldása: (érdemes észrevenni, hogy M e i az pont az M mátrix i. oszlopa lesz) /3 8/3 2/5 Állítsuk össze az inverz mátrixot. x 3 x 23 x 33 2/5 /3 8/3 /3 7/ / x 3 x 23 x 33 x 3 = /2, x 23 = 2, x 33 = 5/2 5/4 /4 /2 7/2 /2 2 7/4 /4 5/2 3
2 CHOLESKY FELBONTÁS Ellenőrzés. Végezzük el az A A műveletet. 5/4 /4 /2 7/2 /2 2 4 3 7/4 /4 5/2 5 3 2. Cholesky felbontás A lineáris egyenletrendszerek megoldása során megkülönböztetünk néhány speciális szerkezetű mátrixot, ezek könnyebbé teszik az életünket, a számolásokat így speciális esetekhez is köthetjük, ami gyakran egyszerűsít és gyorsít az eljáráson. A Cholseky felbontást akkor használjuk, ha az adott A mátrix szimmetrikus és pozitív definit. Definíció 2.. Egy A mátrix akkor szimmetrikus, ha A = A T, azaz megegyezik a transzponáltjával. Definíció 2.2. Egy A mátrix akkor pozitív definit, ha szimmetrikus, valamint x T Ax > minden nem nulla x vektorra. Ez gyakorlatban úgy néz ki, hogy megvizsgáljuk a mátrix diagonális (főátlóban lévő) elemeit. Egy mátrix pontosan akkor pozitív definit, ha az összes főminorja pozitív. Definíció 2.3. Az A mátrix i-edik főminorja az A első i sorából és első i oszlopából képzett A i mátrix determinánsa. 5 2 6 ( ) 5 2 Példa. Az 4 9 2. főminorja a det = 37. 4 9 2 7 És például a pozitív definit mátrixokra az is igaz, hogy a főátlóban minden elem pozitív. Ha az A R n n mátrix szimmetrikus és pozitív definit, akkor létezik U = L T alakban felbontás, tehát A = LU = LL T ahol L alsó trianguláris mátrix, melynek diagonális elemei pozitív számok. (Emlékezzünk, hogy az LU-nál csak egyesek lehettek.) Definíció 2.4. Az A = LL T felbontást Cholesky felbontásnak hívjuk. (Egyes szakirodalmakban R T R felbontásként olvashatunk róla.) 4
2 CHOLESKY FELBONTÁS Példa. Vizsgáljuk meg a lenti mátrixot, és ha megfelel a feltételeknek, akkor határozzuk meg a Cholesky felbontását. 9 6 3 6 2 8 3 8 62 Megoldás. Először azt kell megvizsgálnunk, hogy szimmetrikus-e (ez könnyen eldönthető, akár ránézésre is). Ezután azt vizsgáljuk, hogy pozitív definit-e. Ehhez meg kell nézni, hogy a főminorjaink pozitívak-e: det(a ) = 9 det(a 2 ) = 44 det(a 3 ) = 584 tehát ez a feltétel is teljesül. A determináns számítása részletezve: ( ) 9 6 det = 9 2 (( 6) ( 6)) = 44 6 2 9 6 3 det 6 2 8 = 3 8 62 9 2 62 + (( 6) 8 3) + (3 ( 6) 8) (3 2 3) (( 6) ( 6) 62) (9 8 8) = 584 (Sarrus-szabállyal) Ezután felírjuk az egyenletet, amit meg kell oldanunk: 9 6 3 l l l 2 l 3 6 2 8l 2 l 22 l 22 l 32 3 8 62 l 3 l 32 l 33 l 33 Végezzük el a jobb oldalon a szorzást. 9 6 3 l 2 l l 2 l l 3 6 2 8l l 2 l2 2 + l 2 22 l 2 l 3 + l 22 l 32 3 8 62 l l 3 l 2 l 3 + l 22 l 32 l3 2 + l32 2 + l33 2 Tehát az A mátrixunk egy, a jobb oldalon szereplő alakú szimmetrikus mátrix, azaz a megoldáshoz úgy jutunk, hogy kifejezzük a bal oldal segítségével a jobb oldali mátrix 5
2 CHOLESKY FELBONTÁS elemeit (először l -et, aztán l 2, l 3,..., l n, aztán l 22, l 32,..., l n2,... - tehát oszloponként mindig egy-egy új ismeretlent fejezünk ki - sorrendben tudjuk megkapni ezeket): l = l 2 = 9 = 3 l l 2 = 6 3l 2 = 6 l 2 = 2 l l 3 = 3 3l 3 = 3 l 3 = l 2 2 + l 2 22 = 2 4 + l 2 22 = 2 l 2 22 = 6 l 22 = 4 l 2 l 3 + l 22 l 32 = 8 2 + 4l 32 = 8 4l 32 = 2 l 32 = 5 l 2 3 + l 2 32 + l 2 33 = 62 2 + 5 2 + l 2 33 = 62 26 + l 2 33 = 62 l 2 33 = 36 l 33 = 6 A végeredmény tehát: 3 L = 2 4 5 6 Ellenőrzés. 3 3 2 9 6 3 LL T = 2 4 4 5 6 2 8 = A 5 6 6 3 8 62 2. Lineáris egyenletrendszer megoldása Tegyük fel, hogy adott egy Ax = b alakú lineáris egyenletrendszerünk. Ekkor a következő lépésekkel oldhatjuk meg a Cholesky felbontás segítségével: (.) LL T x = b az A mátrixot felbontjuk Cholesky alakba (2.) Ly = b az L T x = y helyettesítéssel megoldjuk y-ra (3.) L T x = y végül az y segítségével kifejezzük x-et. Miért szeretjük? Ha alkalmazható a Cholesky felbontás, akkor a lineáris egyenletrendszerek megoldásánál közel kétszer olyan gyors, mint az LU felbontás. További előnye az LU-val szemben, hogy numerikusan stabilis (ez kb azt jelenti, hogy,,kicsit változtatva az inputot a két eredménymátrix is csak,,kicsit változik). 6
3 QR FELBONTÁS 2.2 Cholesky felbontás Matlabbal >> A = [ 2 3; 2 8 2; 3 2 27]; >> b = [4 54 8]'; >> L = chol(a, 'lower'); %Cholesky felbontas, also haromszogmatrix >> y = L\b; >> x = L'\y x = 2 3 3. QR felbontás Definíció 3.. Egy Q négyzetes mátrixot ortogonálisnak nevezünk, ha QQ T = Q T Q = I, tehát a mátrix inverze megegyezik a transzponáltjával. Definíció 3.2. Tetszőleges A R n n reguláris mátrixnak létezik az A = QR felbontása, ahol Q egy ortogonális mátrix, R pedig egy felső háromszögmátrix. 3. Lineáris egyenletrendszer megoldása Tegyük fel, hogy adott egy Ax = b alakú lineáris egyenletrendszerünk. Ekkor ha rendelkezésünkre áll az A = QR felbontás, a Q T -tal balról való beszorzás után a következő egyenletrendszert kell megoldanunk: Q T Ax = Q T QRx = Rx = Q T b. Írjuk ki lépésenként a lineáris egyenletrendszerek megoldását a QR felbontás segítségével: (.) QRx = b az A = QR alak megadása (2.) Qy = b az Rx = y helyettesítéssel megoldjuk y-ra (3.) Rx = y végül az y segítségével kifejezzük x-et. Ez azért lesz jó, mert az ortogonális Q T -tal való szorzás nem növeli az esetlegesen A-ban vagy b-ben lévő hibákat. Viszont a QR felbontást valamikor elő kell állítanunk, ennek a költsége pedig nagyjából háromszorosa az LU felbontás előállításának. Akkor mégis miért használjuk? Az LU felbontás sok esetben (főleg, ha főelemkiválasztás nélkül alkalmazzuk) nem fog létezni, és ha a mátrixunk nem szimmetrikus és pozitív definit, Cholesky felbontást sem tudunk csinálni, ilyenkor hasznos a QR felbontás. Viszont mivel lassabb és nehezebben programozható, egyenletrendszerek megoldására általában nem használják (kivéve persze, ha szinguláris az egyenletrendszer), viszont sok más dologra igen (látunk majd használatára példát néhány gyakorlat múlva). 7
3 QR FELBONTÁS 3.2 QR felbontás Matlabban A=[2 5; 2 ; 3 3 2]; b=[2,, ]'; [Q,R] = qr(a); x = R\(Q'*b) x = 2.2778 2.7222.667 8