Sobre la Factorización QR usando matrices de Householder Elaborado por M. Monsalve c February 4, 2015 Conceptos previos Definición: Un conjunto de vectores {q1 , q2 , · · · qm } donde qi ∈ Rn es un conjunto ortonormal si satisface 0 si i 6= j < qi , qj >= 1 si i = j Definición: Sea Q ∈ Rn×n . Se dice que Q es ortogonal Q−1 = QT . Observe que las columnas (filas) de esta matriz forman un conjunto ortonormal. Propiedades: 1. QT Q = QQT = I 2. kQxk2 = kxk2 , ∀x ∈ Rn 3. El producto de matrices ortogonales es una matriz ortogonal. Factorización QR La idea es, dada A ∈ Rn×n , hallar una matriz ortogonal Q y una matriz R triangular superior, tal que A = QR. Al igual que el proceso de eliminación Gaussiana, la matriz A se multiplicará por matrices ortogonales hasta obtener la matriz R, esto es Qn−1 Qn−2 · · · Q2 Q1 A = R | {z } Q−1 Q−1 A = R QQ−1 A = QR A = QR 1 (1) Note que si Q−1 = Qn−1 Qn−2 · · · Q2 Q1 entonces −1 −1 −1 T T T T Q = (Qn−1 Qn−2 · · · Q2 Q1 )−1 = Q−1 1 Q2 · · · Qn−2 Qn−1 = Q1 Q2 · · · Qn−2 Qn−1 Esquema de la factorización QR Primer paso: Es necesario hallar α1 0 Q1 A = 0 .. . 0 Q1 tal que ... ∗ . . . ∗ . . . ∗ = A1 . . . .. . ∗ ∗ ... ∗ ∗ ∗ ∗ .. . ∗ ∗ ∗ .. . Segundo paso: Es necesario hallar Q2 α1 0 Q2 A1 = Q2 Q1 A = 0 .. . 0 tal que ∗ α2 0 .. . 0 ... ∗ . . . ∗ . . . ∗ = A2 . . .. . . ∗ ... ∗ ∗ ∗ ∗ .. . siguiendo con esta metodologı́a es posible hallar tales que α1 ∗ ∗ . . . 0 α2 ∗ . . . Qn−1 · · · Q2 Q1 A = 0 0 α3 . . . .. .. .. . . . . . . 0 0 0 ... n − 1 matrices ortogonales ∗ ∗ ∗ = An−1 = R .. . ∗ Transformada de Householder Una forma de obtener las matrices ortogonales necesarias para realizar la factorización QR de una matriz A ∈ Rn×n dada , es a través del uso de las matrices de Householder. Definición: Dado u ∈ Rn . Una matriz de Householder, denotada por H, se define como 2uut H = In − t , uu donde In es la matriz identidad de orden n. Las matrices de Householder también son conocidas con el nombre de Reflectores de Householder. Para ilustrar este hecho, observe que en la Figura, H es una matriz de Householder Figure 1: Reflector de Householder generada por el vector u ∈ R3 y P es el subespacio conformado por todos los vectores ortogonales al vector u es decir: P = {y ∈ R3 : ut y = 0}. Al aplicar la matriz H sobre algún vector x se obtiene un vector y = Hx que es el reflejo de x a través de P . Propiedades: Asegurase que Ud sabe probar formalmente TODAS estas propiedades 1. H es ortogonal. 2. H es simétrica. 3. H −1 = H. 4. H 2 = In . 5. Hu = −u 6. ∀y ∈ P : Hy = y. 7. kHxk2 = kxk2 8. Producto matriz vector t 2uut 2uut x 2u x Hx = In − t x=x− t =x− u = x − βu, uu uu ut u donde β = 2ut x ut u A continuación se enuncia un Lema que será de utilidad para emplear las matrices de Householder para obtener la factorización QR de una matriz dada. LEMA Sean a, b ∈ Rn , tales que kak2 = kbk2 . El vector u = a − b genera una matriz de Householder H tal que Ha = b. La última página de este material contiene una explicación gráfica de este Lema. Para la factorización QR mediante matrices de Householder se require la aplicación de este Lema en un caso particular muy especial: Considere al vector b = αe1 donde e1 es el canónico de orden n y el vector a es cualquiera, es decir, queremos aplicar el Lema para hallar H tal que Ha = αe1 . Para satisfacer la hipótesis del Lema debe ocurrir que kak = kαe1 k, es decir α debe ser tal que, kak = kαe1 k = |α|ke1 k = |α|, (2) entonces u = a − αe1 . De (2) se desprende que α bien puede ser igual a kak o igual a −kak, con lo cual el vector u puede definirse de dos formas u = a − kake1 u = a + kake1 si se usa si se usa α = kak α = −kak. (3) (4) Note que si la primera componente de a es negativa conviene usar el u definido por (3) para ası́ evitar una resta que necesariamente ocurrirı́a si se usa la ecuación (4) para obtener u. Mientras que si la primera componente de a es positiva conviene usar el u definido por (4), pues si se usase (3) estarı́amos realizando una resta: Recuerde que siempre es una buena práctica evitar las restas. De lo anterior se concluye que, dependiendo del signo de la primera componente de a, se puede escoger una expresión para u que evite las restas. Dicha expresión es: u = a + signo(a1 )kake1 , (5) donde a1 es la primera componente del vector a. Matrices de Householder y Factorización QR Las matrices ortogonales Qi con i = 1, 2, · · · (n − 1) requeridas en la expresión (1) serán matrices de Householder. Es por ello que en esta sección la ecuación (1) se reescribirá como Hn−1 Hn−2 · · · H2 H1 A = R, pues recordemos que las Hi además de ser ortogonales son simétricas. Como se mencionó anteriormente, es fácil ver que este proceso de factorización, requiere de n − 1 pasos para completarse. Veamos algunos de ellos. Primer paso: Es necesario hallar H1 tal que α1 0 H1 A = H1 [a1 a1 · · · an ] = [H1 a1 H1 a2 · · · H1 an ] = 0 .. . 0 ... ∗ . . . ∗ . . . ∗ = A1 . . .. . . ∗ ∗ ... ∗ ∗ ∗ ∗ .. . ∗ ∗ ∗ .. . donde ai con i = 1, 2, · · · n representan las columnas de la matriz A. Importante!! b1 ∈ R(n−1)×(n−1) a aquella submatriz Voy a denotar por A de A1 que se obtiene al eliminar la primera fila y la primera columna de b1 se denotarán por b A1 . Las columnas de A ai . Esto será de utilidad en el segundo paso. Observe que H1 debe ser construida con un objetivo muy especial, H1 debe ser tal que α1 0 H1 a1 = 0 .. . 0 n×n o lo que es lo mismo H1 debe ser tal que H1 a1 = α1 e1 , donde e1 es el primer canónico de tamaño n. Aquı́ podemos aplicar el Lema anteriormente descrito. Para lograr lo anterior sencillamente debemos tomar u1 = a1 + signo(a11 )ka1 k2 e1 . Recuerde que a11 denota la primera componente de a1 . Importante!! Para no recargar la notación renombremos a ai := H1 ai con i = 1, 2, . . . , n. Es decir, ai hará referencia a H1 ai y NO a la columna ai de la matriz A original. Segundo paso: Es necesario hallar H2 ∈ Rn×n tal que α1 ∗ 0 α2 H2 A1 = H2 [a1 a2 · · · an ] = [H2 a1 H2 a2 · · · H2 an ] = 0 0 |{z} .. .. . paso1 . 0 0 ... ∗ . . . ∗ . . . ∗ = A2 . . .. . . ∗ ... ∗ ∗ ∗ ∗ .. . donde ai con i = 1, 2, · · · n representan las columnas de la matriz A1 . Note que a1 = (α1 , 0, · · · , 0)T , con lo cual H2 debe diseñarse tal que NO modifique la primera columna de A1 para no perder los ceros colocados en el primer paso. Más aún, si H2 tampoco modifica la primera fila de A1 , entonces es posible b 2 ∈ R(n−1)×(n−1) tal que hallar H α2 0 b H2b a1 = 0 , .. . 0 (n−1)×(n−1) b1 (Ver Paso 1, para recordar la definición donde b a1 es la primera columna de A b1 ). Dicho de otra forma, es posible usar el procedimiento usado en el Paso de A b 2 tal que 1 para hallar H b 2b H a1 = α 2 e 1 , b2 donde e1 es el primer canónico de tamaño n − 1. Para ello basta formar H usando el vector u2 = b a1 +signo(b a11 )kb a1 ke1 . Finalmente, la matriz H2 buscada es de la forma 1 0 0 ... 0 0 = A2 b H2 = 0 H2 0 Es importante resaltar que H2 es una matriz de Householder que se obtiene mediante el vector u = [0, 0, uT2 ]T Importante!! Nuevamente, para no recargar la notación renombremos a ai := H2 ai con i = 2, . . . , n. Es decir, ai hará referencia a H2 ai y NO a la columna ai de la matriz A original. Paso k-ésimo: Observe que de los pasos anteriores se tienen H1 , H2 , . . . Hk−1 tales que Hk−1 Hk−2 · · · H1 , H2 = Ak−1 , donde Ak−1 tiene la siguiente α1 0 0 . . . Ak−1 = 0 0 . .. 0 forma ∗ ∗ α2 ∗ 0 α3 .. .. . . 0 0 0 0 .. .. . . 0 0 ... ... ... .. . ∗ ∗ ∗ .. . ... ... αk−1 0 .. . ∗ ... ∗ ... ∗ ... .. .. . . ∗ ... ∗ ... .. . ... 0 ∗ ... ... ... ∗ ∗ ∗ .. . ∗ ∗ .. . ∗ bk−1 ∈ Rq×q aquella submatriz de Ak−1 que no posee Sea q = n − (k − 1) y sea A las (k − 1) primeras filas ni las (k − 1) primeras columnas de Ak−1 . Ası́ mismo, bk−1 se denotarán por b las columnas de A ai . Note que b ai ∈ Rq . El objetivo es hallar una matriz de Householder Hk tal que α1 ∗ ∗ . . . ∗ ∗ ... ∗ 0 α2 ∗ . . . ∗ ∗ . . . ∗ 0 0 α3 . . . ∗ ∗ . . . ∗ . .. .. . . .. .. .. .. . . . . . . . . . Hk Ak−1 = 0 0 0 . . . αk−1 ∗ . . . ∗ 0 αk . . . ∗ 0 0 0 ... . .. .. .. .. . .. . . . . . .. . . ... 0 0 0 ... 0 0 ... ∗ Siguiendo con la filosofı́a de que Hk no debe modificar los ceros colocados en los (k − 1) pasos anteriores, Hk debe ser de la forma I(k−1) 0(k−1)×q Hk = , bk 0q×(k−1) H b k ∈ Rq×q es tal que donde H bkb H a1 = αk e1 , bk−1 . y el vector b a1 es la primera columna de A Al finalizar este paso, y recordando lo discutido en relación a la factorización QR se tiene que Hn−1 Hn−2 · · · H2 H1 A = R {z } | Q−1 Q−1 A = R A = QR Note que Q−1 = Hn−1 Hn−2 · · · H2 H1 es una matriz ortogonal pues ella es el producto de n − 1 matrices ortogonales de Householder. Más aún Q = = = = (Hn−1 Hn−2 · · · H2 H1 )−1 −1 −1 Hn−1 H1−1 H2−1 · · · Hn−2 T T H1T H2T · · · Hn−2 Hn−1 H1 H2 · · · Hn−2 Hn−1 ya que cada Hi es simétrica Note que el vector u es el vector x−y. Por lo tanto, usando u = x − y se puede hallar una matriz de Householder tal que Hx = y Inicialmente se tienen dos vectores x e y de igual tamaño, es decir kxk2 = kyk2 Dados esos vectores es posible definir un plano P (plano azul) tal que x sea el reflejo de y a través de P (y viceversa). Una vez definido el plano P , se puede encontrar un vector u (vector verde) ortogonal al plano P . Ejemplo −2 5 7 4 7 1 −10 1 A= 4 8 −4 9 3 12 1 8 Primer paso: a1 = [−2, 7, 4, 3]T . ka1 k = 8.8318. u1 = a1 − ka1 k[1, 0, 0, 0]T = [−10.83, 7, 4, 3]T −0.2265 0.7926 0.4529 0.3397 0.7926 2u1 uT 0.4878 −0.2927 −0.2195 H1 = I4 − T 1 = 0.4529 −0.2927 0.8327 −0.1254 u1 u1 0.3397 −0.2195 −0.1254 0.9059 ka1 k 7.3598 −10.9831 6.6804 0 −0.5250 1.6215 −0.7322 A1 = H1 A = 0 7.1286 2.6409 8.0102 0 11.3464 5.9807 7.2576 Segundo paso: −0.5250 1.6215 −0.7322 b1 = 7.1286 2.6409 8.0102 A 11.3464 5.9807 7.2576 b a1 = [−0.5250, 7.1286, 11.3464]T . kb a1 k = 13.4102. u2 = b a1 − kb a1 k[1, 0, 0, ]T = [−13.9352, 7.1286, 11.3464]T b 2 = I3 − H 1 0 H2 = 0 0 −0.0392 0.5316 0.8461 0.7281 −0.4328 = 0.5316 0.8461 −0.4328 0.3111 0 0 0 −0.0392 0.5316 0.8461 0.5316 0.7281 −0.4328 0.8461 −0.4328 0.3111 2u2 uT2 uT2 u2 ka1 k 7.3598 −10.9831 6.6804 0 kb a1 k 6.4006 10.4274 A2 = H2 A1 = H2 H1 A = 0 0 0.1961 2.3015 0 0 2.0894 −1.8288 Tercer paso: 0.1961 2.3015 b2 = A 2.0894 −1.8288 e a1 = [0.1961, 2.0894]T . ke a1 k = 2.0986. u3 = e a1 + ke a1 k[1, 0, ]T = [2.2947, 2.0894]T 2u3 uT3 −0.0935 −0.9956 b = H3 = I2 − T −0.9956 0.0935 u3 u3 1 0 H3 = 0 0 0 0 0 1 0 0 0 −0.0935 −0.9956 0 −0.9956 0.0935 ka1 k 7.3598 −10.9831 6.6804 0 kb a1 k 6.4006 10.4274 =R A3 = H3 A2 = H3 H2 H1 A = 0 0 −ke a1 k 1.6057 0 0 0 −2.4623 Matriz Q −0.2265 0.4971 −0.6342 −0.5472 0.7926 −0.3604 −0.4823 −0.0966 H1 H2 H3 = Q = 0.4529 0.3480 0.5971 −0.5633 0.3397 0.7084 −0.0936 0.6116