12.07.2015 Views

6. QR razcep in singularni razcep

6. QR razcep in singularni razcep

6. QR razcep in singularni razcep

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

Razširjeni <strong>QR</strong> <strong>razcep</strong>Poleg <strong>QR</strong> <strong>razcep</strong>a poznamo še razširjeni <strong>QR</strong> <strong>razcep</strong> A = ˜Q ˜R, kjer je ˜Q ortogonalnamatrika m × m, ˜R pa zgornja trapezna matrika m × n. Prvih n stolpcev matrike ˜Q<strong>in</strong> zgornji kvadrat matrike ˜R tvori <strong>QR</strong> <strong>razcep</strong> matrike A. Tudi razširjeni <strong>QR</strong> <strong>razcep</strong> bomoponavadi imenovali kar <strong>QR</strong> <strong>razcep</strong>, saj je vse razvidno iz dimenzij matrik.[ ]Naj bo A = ˜Q ˜R, kjer je ˜Q = [Q Q 1 ] <strong>in</strong> ˜R R= . Potem velja0[‖Ax − b‖ 2 = ‖ ˜Q T R(Ax − b)‖ 2 = ‖0]x −[ Q T ] [bRx − Q T ]bQ T 1 b ‖ 2 = ‖Q T 1 b ‖ 2 .Zgornji del lahko uničimo, spodnjega pa ne. Velja torejm<strong>in</strong>imum pa je dosežen pri Rx = Q T b.m<strong>in</strong>x∈R n ‖Ax − b‖ 2 = ‖Q T 1 b‖ 2,Bor Plestenjak - Numerična analiza 2004


5.5 Givensove rotacijeV ravn<strong>in</strong>i vektor x = [x 1 x 2 ] T zarotiramo za kot ϕ v neg. smeri tako, da ga pomnožimoz matriko[ ]R T c s=,−s ckjer sta c = cos ϕ <strong>in</strong> s = s<strong>in</strong> ϕ. Če to posplošimo na rotacijo v ravn<strong>in</strong>i (i, k) v R n ,dobimo matriko R T ik, ki je enaka identiteti razen v i-ti <strong>in</strong> k-ti vrstici, kjer je[ ]R T c sik ([i, k], [i, k]) = .−s cZa vektor y = R T ik x velja y j = x j , j ≠ i, ky i = cx i + sx ky k = −sx i + cx k<strong>in</strong> c, s lahko izberemo tako, da bo y k = 0. Rešitev je√r = x 2 i + x2 k , c = x ir ,s = x kr .Bor Plestenjak - Numerična analiza 2004


Matriko R ik imenujemo Givensova rotacija. Pri množenju matrike z R T ikse spremenita lei-ta <strong>in</strong> k-ta vrstica. Z ustreznimi rotacijami, ki jih uporabljamo v pravilnem vrstnem redu,lahko v matriki uničimo vse elemente pod diagonalo <strong>in</strong> tako izračunamo <strong>QR</strong> <strong>razcep</strong>.Zgled za matriko 4 × 3:⎡⎤× × ×A = ⎢ × × ×⎥⎣ × × × ⎦× × ×R T 23·−→⎡⎢⎣R T 12·−→× × ×0 × ×0 0 ×0 × ×⎡⎢⎣⎤⎥⎦× × ×0 × ×× × ×× × ×R T 24·−→⎡⎢⎣⎤⎥⎦R T 13·−→× × ×0 × ×0 0 ×0 0 ×⎡⎢⎣⎤⎥⎦× × ×0 × ×0 × ×× × ×R T 34·−→⎡⎢⎣⎤⎥⎦R T 14·−→× × ×0 × ×0 0 ×0 0 0⎡⎢⎣⎤× × ×0 × ×0 × ×0 × ×⎥⎦ = ˜R.Matrika ˜R je zgornja trapezna, v zgornjem kvadratu pa vsebuje matriko R. Produkt˜Q = R 12 R 13 R 14 R 23 R 24 R 34 je ortogonalna matrika, ki v prvih n stolpcih vsebuje matrikoQ. Tako smo dobili <strong>razcep</strong> A = <strong>QR</strong>.Pri množenju z R T jkse j-ta <strong>in</strong> k-ta vrstica spremenita v l<strong>in</strong>earni komb<strong>in</strong>aciji j-te <strong>in</strong> k-tevrstice. Če je v nekem stolpcu v obeh vrsticah 0, se to ne pokvari z množenjem z RT jk .Bor Plestenjak - Numerična analiza 2004⎤⎥⎦


Število operacij za reševanje Ax = b je približno3mn 2 − n 3 .Če potrebujemo Q, imamo še dodatnih 6m 2 n − 3mn 2 operacij.Matriko n × n tako po Givensu transformiramo v zgornjo trikotno z uporabo 2n 3 operacij,za Q pa potrebujemo še dodatnih 3n 3 .Bor Plestenjak - Numerična analiza 2004


5.6 Householderjeva zrcaljenjaZa vektor w ∈ R n , kjer je w ≠ 0, def<strong>in</strong>iramoP = I − 2w T w wwT .P je simetrična <strong>in</strong> ortogonalna matrika, saj je P = P T <strong>in</strong> P 2 = I. Vsak vektor x ∈ R nlahko zapišemo kotx = αw + u,kjer je u ⊥ w. DobimoP x = −αw + u,kar pomeni, da je P zrcaljenje preko hiperravn<strong>in</strong>e, ki je ortogonalna na w.imenujemo Householderjevo zrcaljenje.Matriko PMnoženje s P izvedemo tako, da izračunamo P x = x − 1 m (xT w)w, kjer je m = 1 2 wT w.Če imamo taka neničelna vektorja x <strong>in</strong> y, da je ‖x‖ 2 = ‖y‖ 2 , potem velja P x = y, čeizberemo w = y − x.Bor Plestenjak - Numerična analiza 2004


Z množenjem matrike z ustreznimi zrcaljenji jo lahko spremenimo v zgornjo trapezno obliko.⎡⎤ ⎡⎤ ⎡⎤ ⎡⎤× × × × × × × × × × × ×A = ⎢ × × ×˜P⎥ 1·⎣ × × × ⎦ −→ ⎢ 0 × ×˜P⎥ 2·⎣ 0 × × ⎦ −→ ⎢ 0 × ×˜P⎥ 3·⎣ 0 0 × ⎦ −→ ⎢ 0 × ×⎥⎣ 0 0 × ⎦ .× × × 0 × × 0 0 × 0 0 0Pri tem je˜P i =( i − 1 m − i + 1 )i − 1 I i−1 0.m − i + 1 0 P i˜Q T = ˜P 3 ˜P2 ˜P1 , torej ˜Q = ˜P1 ˜P2 ˜P3 . Namesto računanja ˜Q raje shranimo vektorje w i .Število operacij za reševanje Ax = b je približno2mn 2 − 2 3 n3 ,Za Q potrebujemo še dodatnih 4m 2 n−2mn 2 operacij. Matriko n×n s Householderjevimizrcaljenji transformiramo v zgornjo trikotno z uporabo 4 3 n3 operacij, za Q pa potrebujemoše dodatnih 2n 3 .Bor Plestenjak - Numerična analiza 2004


Primerjava metod• Število operacij za reševanje predoločenega sistema Ax = b, m ≫ n:– normalni sistem: mn 2 ,– MGS: 2mn 2 ,– Givens: 3mn 2 − n 3 ,– Householder: 2mn 2 − 2 3 n3 .• Število operacij za reševanje kvadratnega sistema Ax = b, m = n:– LU <strong>razcep</strong>: 2 3 n3 ,– Householder: 4 3 n3 ,– Givens: 2n 3 .Bor Plestenjak - Numerična analiza 2004


5.7 S<strong>in</strong>gularni <strong>razcep</strong>Za A ∈ R m×n , m ≥ n, obstaja s<strong>in</strong>gularni <strong>razcep</strong>A = UΣV T ,kjer sta U ∈ R m×m <strong>in</strong> V ∈ R n×n ortogonalni matriki <strong>in</strong> Σ ∈ R m×n oblike⎡⎤σ 1 . . .Σ =⎢ σ n ⎥⎣⎦ ,kjer so σ 1 ≥ σ 2 ≥ · · · ≥ σ n ≥ 0 s<strong>in</strong>gularne vrednosti A.V primeru n < m dobimo SV <strong>razcep</strong> tako, da transponiramo SV <strong>razcep</strong> za A T .Bor Plestenjak - Numerična analiza 2004


Informe Técnico CISIAD-10-03Requisitos de OpenMarkovun diagrama de <strong>in</strong>fluencia o una cadena de Markov en un archivo,utilizando el mismo formato citado en el párrafo anterior, <strong>in</strong>cluyendo lastablas de potenciales creadas y editadas por el usuario.• El usuario debe tener la posibilidad de cambiar las propiedadesextendidas de la red <strong>in</strong>cluidas en esta fase, tales como tablas de valoresdiscretizados y tablas de probabilidades.• Para evitar que cualquier modificación sobre la red o alguno desus elementos sea def<strong>in</strong>itiva, la <strong>in</strong>terfaz debe extender las capacidadesactuales y dar al usuario la posibilidad de deshacer modificaciones asícomo rehacer las modificaciones.• Dado que este software será usado en diferentes países, losmódulos de <strong>in</strong>ternacionalización de los textos, que por defectopresentan los literales de la <strong>in</strong>terfaz en <strong>in</strong>glés, se deben extender parapermitir el cambio de idioma de presentación a decisión del usuariodurante el uso del programa. El software debe estar preparado parapermitir añadir textos en otros idiomas s<strong>in</strong> tener que modificar el códigofuente.• Debe <strong>in</strong>cluirse una ayuda de usuario teniendo en cuenta que dichousuario tiene conocimientos de técnicas de modelado gráfico de redesde probabilidades pero también que puede no tenerlas. Asimismo, debe<strong>in</strong>corporarse manuales para el futuro desarrollador de OpenMarkovtanto en la ayuda <strong>in</strong>terna del programa como en los manuales de losque este documento es parte <strong>in</strong>tegrante.• La <strong>in</strong>terfaz de usuario debe ser <strong>in</strong>tuitiva y fácil de usar, facilitandoun entorno de trabajo que use las tecnologías gráficas actuales.Con todos estos elementos en cuenta, tanto la documentación externa(este documento) como la documentación <strong>in</strong>terna (ayuda en línea paradesarrollador y comentarios de código fuente, en <strong>in</strong>glés), deben serabundantes y aclaratorias para que otra persona pueda cont<strong>in</strong>uar con elInforme Técnico CISIAD-10-03 Pág<strong>in</strong>a 11 de 125


Rang matrikeNaj bo σ r > 0 <strong>in</strong> σ r+1 = · · · = σ n = 0. Razdelimo V na [V 1 V 2 ], kjer jeV 1 := [v 1 · · · v r ] <strong>in</strong> V 2 := [v r+1 · · · v n ] <strong>in</strong> U na [U 1 U 2 ], kjer je U 1 := [u 1 · · · u r ]<strong>in</strong> U 2 := [u r+1 · · · u m ].Pomen velja:• r se ujema z rang(A),• stolpci U 1 tvorijo bazo za imA,• stolpci V 2 tvorijo bazo za ker A,• stolpci U 2 tvorijo bazo za ker A T ,• stolpci V 1 tvorijo bazo za imA T .Poleg omenjenega poznamo tudi SV <strong>razcep</strong> oblike A = Ũ ˜ΣV T , kjer je Ũ matrika m × nz ortonormiranimi stolpci, ˜Σ = diag(σ 1 , . . . , σ r ), V pa je n × n ortogonalna matrika.Ũ se ujema s prvimi n stolpci matrike U, ˜Σ pa je zgornji kvadrat Σ v SV <strong>razcep</strong>uA = UΣV T .Bor Plestenjak - Numerična analiza 2004


Psevdo<strong>in</strong>verzZa matriko A ∈ R m×n , m ≥ n, rang(A) = n, def<strong>in</strong>iramo (Moore-Penroseov) psevdo<strong>in</strong>verzA + ∈ R n×m kotA + = (A T A) −1 A T .V primeru m < n <strong>in</strong> rang(A) = m def<strong>in</strong>iramo A + = A T (AA T ) −1 .Rešitev predoločenega sistema polnega ranga Ax = b lahko zapišemo kot x = A + b.Če A ni polnega ranga, je psevdo<strong>in</strong>verz def<strong>in</strong>iran preko SV <strong>razcep</strong>a. Naj bo A ∈ R m×n ,m ≥ n, rang(A) = r <strong>in</strong> A = UΣV T , kjer jeU = ( r m − r ) ( r n − r( r n − r )) r S 0U 1 U 2 , V = V 1 V 2 , Σ =m − r 0 0<strong>in</strong> S = diag(σ 1 , . . . , σ r ). Potem je A + = V Σ + U T , kjer jeΣ + =( r m − rr S −1 0n − r 0 0).Bor Plestenjak - Numerična analiza 2004


Najboljša aproksimacija z matriko nižjega rangaIzrek 3. Naj bo A = UΣV T SV <strong>razcep</strong> A <strong>in</strong> rang(A) > k. Naj bok∑A k = σ i u i v T ioziroma A k = UΣ k V T , kjer jei=1⎡⎤σ 1 . . .σ k Σ k =0 . . ..⎢0⎥⎣⎦Potem veljam<strong>in</strong> ‖B − A‖ 2 = ‖A k − A‖ 2 = σ k+1 .rang(B)=kTo pomeni, da je A k najboljša aproksimacija matrike A z matriko ranga k, σ k+1 pa nampove, kako daleč je A od prostora matrik ranga k.Bor Plestenjak - Numerična analiza 2004


Če je A ∈ R m×n , m ≥ n, rang(A) = r < n <strong>in</strong> A = UΣV T s<strong>in</strong>gularni <strong>razcep</strong>,potem ima izmed vseh vektorjev x, ki m<strong>in</strong>imizirajo normo ‖Ax − b‖ 2 , najmanjšo normox = A + b oziromar∑ u T ix =b v iσ i<strong>in</strong>i=1‖Ax − b‖ 2 2 =m∑i=r+1(u T i b)2 .Dokaz.Za poljuben x ∈ R n velja‖Ax − b‖ 2 2 = ‖(U T AV )(V T x) − U T b‖ 2 2 = ‖Σa − U T b‖ 2 2=r∑(σ i a i − u T i b)2 +i=1m∑i=r+1(u T i b)2 ,kjer je a = V T x. To bo očitno m<strong>in</strong>imalno pri a i = uT i bσza i = 1, . . . , r, komponenteia r+1 , . . . , a m pa so poljubne. Da dobimo m<strong>in</strong>imalni x = V a vzamemo a r+1 = · · · =a m = 0.Bor Plestenjak - Numerična analiza 2004


Odrezani s<strong>in</strong>gularni <strong>razcep</strong>Pri majhnih s<strong>in</strong>gularnih vrednostih si lahko pomagamo z odrezanim s<strong>in</strong>gularnim <strong>razcep</strong>om,kjer nekaj najmanjših s<strong>in</strong>gularnih vrednosti postavimo na 0 <strong>in</strong> si mislimo, da imamo matrikoz defektnim rangom.V primeru defektnega ranga velja: če je σ r najmanjša neničelna s<strong>in</strong>gularna vrednost, potemza rešitev Ax = b po metodi najmanjših kvadratov veljax =r∑i=1u T i bσ iv i ,od tod pa je razvidno, da je ‖x‖ 2 ≥ ‖b‖ 2σrkvečjemu za ‖δb‖ 2σr .<strong>in</strong> da sprememba b v b + δb spremeni rešitevBor Plestenjak - Numerična analiza 2004


Zgled uporabe odrezanega s<strong>in</strong>gularnega <strong>razcep</strong>aDenimo, da delamo medic<strong>in</strong>sko raziskavo o uč<strong>in</strong>ku nekega zdravila na količ<strong>in</strong>o sladkorja vkrvi. Za vsakega pacienta (i = 1, . . . , m) zberemo naslednje podatke:• a i1 : količ<strong>in</strong>a sladkorja v krvi na začetku zdravljenja,• a i2 : predpisana količ<strong>in</strong>a zdravila,• a i3 , . . . , a i9 : telesna teža za vsak dan v tednu,• a ij : ostale meritve (j = 10, . . . , n).• b i : količ<strong>in</strong>a sladkorja ob koncu zdravljenja.Želimo predvideti b i pri danih a i1 , . . . , a <strong>in</strong> <strong>in</strong> model je b j = ∑ nk=1 a jkx k .Stolpci a 3 , . . . , a 9 so zelo slabo l<strong>in</strong>earno neodvisni (telesna teža za cel teden), če neupoštevamo tega <strong>in</strong> ne odrežemo m<strong>in</strong>imalnih s<strong>in</strong>gularnih vrednosti, lahko dobimo zeločudne rezultate. Pravilni nač<strong>in</strong> je odrezati m<strong>in</strong>imalne s<strong>in</strong>gularne vrednosti <strong>in</strong> nato vzetim<strong>in</strong>imalno rešitev.Bor Plestenjak - Numerična analiza 2004


Nedoločeni problemNedoločen problem je Ax = b, kjer je A ∈ R m×n , m < n <strong>in</strong> rang(A) = m. Izmedvseh rešitev vzamemo tisti x, ki ima najmanjšo normo, rešitev pa je x = A + b oziromax = A T (AA T ) −1 b.Bor Plestenjak - Numerična analiza 2004


Ukazi v MatlabuTako kot navadni sistem tudi predoločeni sistem Ax = b v Matlabu rešimo z x=A\b.Matlab za reševanje uporabi <strong>QR</strong> <strong>razcep</strong> s Householderjevimi zrcaljenji.<strong>QR</strong> <strong>razcep</strong> dobimo z ukazom [Q,R]=qr(A).S<strong>in</strong>gularni <strong>razcep</strong> dobimo z ukazom [U,S,V]=svd(A).Psevdo<strong>in</strong>verz dobimo z ukazom p<strong>in</strong>v(A).Bor Plestenjak - Numerična analiza 2004

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!