6. QR razcep in singularni razcep
6. QR razcep in singularni razcep
6. QR razcep in singularni razcep
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