Inversio-ongelmien laskennallinen peruskurssi Luento 3 Kevät 2011 1 Singulaariarvohajotelma (Singular Value Decomposition, SVD) Olkoon A R m n matriisi 1. Tällöin A voidaan esittää muodossa A = UΣV T, missä U R m m on ortogonaalinen (kompleksitapauksessa unitaarinen), eli UU T = U T U = I, V R n n on ortogonaalinen ja Σ R m n on diagonaalinen siten, että sen diagonaalielementit ovat ei-negatiivisia. Toisin sanoen { σ ii 0, i = 1, 2,..., min(m, n) Σ = 0 muulloin. Tätä hajotelmaa kutsutaan matriisin A singulaariarvohajotelmaksi ja matriisin Σ diagonaalialkioita σ ii matriisin A singulaariarvoiksi. Lineaarisen yhtälöryhmän m = Ax, A R m n, m R m, x R n ratkaisu voidaan esittää SVD:n avulla muodossa x = x 0 + min(m,n) i=1 1 σ i m, u i v i, 1 Singulaarihajotelma on voimassa myös kompleksisille matriiseille. Tällöin transpoosi korvataan konjugaattitanspoosilla A = A T 1
missä x 0 ker(a) on mielivaltainen matriisin A ytimen alkio, σ i ovat A:n singulaariarvot ja vektorit u i sekä v i ovat matriisien U ja V i:nnet sarakevektorit. Jos matriisi A on kääntyvä, niin tämä voidaan kirjoittaa matriisimuodossa x = V Σ 1 U T. Myös matriisin A pseudoinverssi voidaan lausua SVD:n avulla: M + = V Σ + U T, missä Σ + on matriisin Σ psudoinverssi, joka muodostetaan korvaamalla jokainen Σ:n nollasta eroava alkio käänteisluvullaan ja transponoimalla. Esimerkiksi, jos 1 0 Σ = 0 3, 0 0 niin Σ + = ( 1 0 0 0 1 3 0 Huomautus 1.1. Numeerisissa sovelluksissa lähellä nollaa olevat singulaariarvot yleensä asetetaan nolliksi pyöristysvirheiden välttämiseksi. Esimerkiksi MATLAB käyttää pseudoinverssin lakevassa funktiossa pinv oletustoleranssina arvoa ). TOL = MAX(SIZE(A))*NORM(A)*EPS(CLASS(A)). Voihtoehtoisesti voi käyttää muotoa pinv(a,tol), missä TOL on haluttu toleranssi. 2 Pseudoinverssi käyttäen QR-hajotelmaa Määritelmä 2.1. Olkoon A R m n, m n. Tällöin se voidaan esittää muodossa [ ] R A = Q, missä Q R m m on ortogonaalinen (unitaarinen), R R k n, k = rank(a), on yläkolmiomatriisi, jonka diagonaalielementit ovat ei-negatiivisiä, ja 0 R R (m k) n on nollamatriisi. Tätä hahotelmaa kutsutaan matriisin A QRhajotelmaksi. MATLABilla matriisin QR-hajotelma voidaan laskea käskyllä 0 R [Q,R] = qr(a). 2
Jos matriisi A R n n on käänytvä, niin sen QR-hajotelma on muotoa Tällöin ongelma A = QR. m = Ax voidaan ratkaista numeerisesti helposti käyttämällä takaisinsijoitusta yhtälölle Rx = Q T m, jolloin matriisin R käänteismatriisia ei tarvitse eksplisiittisesti laskea. Matriisin A pseudoinverssi voidaan lausua QR-hajotelman avulla seuraavasti: jos niin [ R A = Q 0 R A + = [ R + 0 T R ], ] Q T, missä R + on matriisin R pseudoinverssi ja Q T R n (m k) on nollamatriisi. Huomaa, että nyt matriisi RR T on kääntyvä, joten R + = R T (RR T ) 1. 3 Numeerisesta tarkkuudesta 3.1 Absoluuttinen virhe Oletetaan, että matriisi A R n n on kääntyvä. Tarkastellaan lineaarista ongelmaa m = Ax. Jos mittausta m muutetaan termin m verran, m = m + m, niin tällöin uusi ratkaisu x on muotoa x = x + x, eli eli josta saadaan m + m = A(x + x), A 1 (m + m) = x + x, x = A 1 m. Täten käyttämällä matriisi- ja vektorinormeja, saadaan absoluuttisen virheen ylärajaksi x A 1 m. Toisin sanoen, 3
jos A 1 on pieni, niin ratkaisun absoluutinen virhe x on pieni, jos mittauksen absoluuttinen virhe m on pieni, ja jos A 1 on suuri, niin x saattaa olla suuri, vaikka m olisi pieni. 3.2 Suhteellinen virhe Oletetaan edelleen, että matriisi A on kääntyvä. Tällöin ratkaisun suhteelliselle virheelle / x saadaan yläraja x x A A 1 m Tämä seuraa epäyhtälöistä x A 1 m ja m A x. Nyt matriisin A ehtoluku määritellään kaavalla κ(a) = A A 1, joten yllä oleva epäyhtälö voidaan kirjoittaa muodossa x x κ(a) m Huomaa, että ehtoluku κ(a) 1 kaikille kääntyville matriiseille A, koska yhtälöstä I = A 1 A seuraa, että 1 = I A A 1 = κ(a). Kun κ(a) on lähellä ykköstä, on ratkaisun suhteellinen virhe samaa suuruusluokkaa kuin mittauksen suhteellinen virhe, ja ongelman sanotaan olevan hyvin asetettu. Jos taas κ(a) on suuri, saattaa ratkaisun suhteellinen virhe olla suuri, vaikka mittauksen suhteellinen virhe olisikin pieni. Tällöin ongelma on huonosti asetettu. 3.3 Pseudoinverssi ja virhe Huomaa, että yllä oleva yleistyy myös tapaukseen, jossa haetaan approksimatiivista ratkaisua pseudoinverssin avulla: tarkastellaan ongelmaa m = Ax, missä A R m n. Tällöin approksimatiivinen ratkaisu saadaan käyttämällä pseudoinverssiä: x = A + m. Samoin kuin edellä olevassa tapauksessa x A + m 4
ja x x A A + m m = κ(a) m Myös pseudoinverssin avulla määritellylle ehtoluvulle pätee κ(a) = A A + 1, sillä voidaan osoittaa, että pseudoinverssille pätee A + = A + AA +, josta saadaan eli A + A + A A + 1 A + A. 5