Reflexiones de Householder y el Algoritmo QR

Cap´ıtulo 7 Reflexiones de Householder y el Algoritmo QR 7.1. Introducci´ on Hay otros dos m´etodos importantes para calcular la descomposici´on Q...
2 downloads 0 Views 377KB Size
Cap´ıtulo 7

Reflexiones de Householder y el Algoritmo QR

7.1.

Introducci´ on

Hay otros dos m´etodos importantes para calcular la descomposici´on QR de una matriz: las reflexiones de Householder y las rotaciones de Givens. Ambos comparten la propiedad de ser procesos que conducen a una “triangularizaci´on de la matriz dada mediante transformaciones ortogonales” (caso real) “o unitarias” (caso complejo). En este curso estudiaremos el primero de los dos m´etodos (el de las reflexiones de Householder). Una buena referencia para el m´etodo de las rotaciones de Givens es el libro de Golub y van Loan [9]. En realidad, estos dos m´etodos, son el resultado de aplicar un teorema general de a´lgebra que establece que toda transformaci´on ortogonal (o unitaria) es un producto de simetr´ıas (reflexiones o giros). Los m´etodos de Householder y Givens difieren de los de Gram-Schmidt en un hecho b´asico fundamental. Para ver esta diferencia analicemos, de nuevo, el proecedi141

142

Reflexiones de Householder y el Algoritmo QR



miento de ortonormalizaci´on de Gram-Schmidt: dada A  a1 a2 1 a1 con r11  }a1 }2 . As´ı, si (F=R o C) definimos q1  r11 R1

 Diag

tenemos que

 AR1  A continuaci´on, ponemos r22  }a2 }2 y A2

q2







Si definimos

1 0   R2  0 .  .. 0

tenemos que A3

an



P Fm n



1 , 1, . . . , 1 r11



1 1 p a2  pq1 a2 qq1 q  r22 r22



q 1 a2



a2 

r12 a1 r11

0  0  1  .. . . . . 0 

 rr

12 22

1 r22

0 .. .

0

 A2R2  A1R1R2 







an .

 r1 a2  r r12r 22

a1

11 22



0 0  0  ..  . 1

q 1 q 2 a3





an .

Procediendo de esta forma sucesivamente podemos construir, para la matriz dada A, matrices R1 , R2 ,. . . , Rn de modo que AR1  . . .  Rn

 Q,

ˆ siendo Q una matriz cuyas columnas son ortonormales. Se pone, entonces, R ˆ la descomposici´on QR, reducida, de A. Rn1  . . .  R11 y se obtiene A  QR,



El m´etodo de Householder; y tambi´en el de Givens, cambia completamente el punto de vista: se trata de realizar sobre la matriz A una serie de transformaciones unitarias (u ortogonales, en el caso real) Q1 , Q2 . . . , Qn tales que Qn  . . .  Q1 A  R sea una matriz triangular superior. En lo sucesivo hablaremos de transformaciones y matrices unitarias pero se debe entender que si A es real las transformaciones y matrices son ortogonales.

7.1 Introducci´on

143

Lo primero que hay que observar es que mientras los m´etodos de ortonormalizaci´on de Gram-Schmidt produce una factorizaci´on QR reducida, el de Householder produce una factorizaci´on completa. En aquel caso Q es de tama˜ no m  n y R es n  n. En el m´etodo de Householder cada Qi es unitaria (o, insistimos por u ´ltima vez, ortogonal en el caso real);por lo tanto, de tama˜ no m  m. Y R ser´a de tama˜ no m  n. Sucintamente, el m´etodo de Householder consiste en construir matrices unitarias elementales (reflexiones) que operan sucesivamente sobre las columnas de A para reducir esta matriz a una forma triangular superior. Esquem´aticamente el proceso ser´ıa el siguiente: 





x x x

x x x   x x x   x x x

x x x

Q Ñ 1

x 0  0  0 0





x x x x  x x  x x x x Q1 A

Q Ñ 2



x x x  x x    0 x    0 x 0 x Q2 Q1 A



Q Ñ 3



x x x  x x    x    0 0 Q3 Q2 Q1 A

Q1 opera sobre las filas 1 a 5 para hacer ceros en todas las posiciones de la primera columna excepto en la posici´on de la diagonal. A continuaci´on se construye una matriz Q2 , unitaria u ortogonal en el caso real, que opera sobre las filas 2 a 5 de la matriz obtenida en el paso anterior, para hacer ceros en todas las posiciones de la segunda columna por debajo de la diagonal principal. Y as´ı sucesivmente. Es decir, para k  1, 2, . . . , n, Qk opera sobre Ak p1 : k, 1 : nq haciendo ceros en las posiciones pk 1, kq, pk 2, kq,. . . , pm, kq, donde A1  A y para k ¡ 1, Ak  Qk1Ak1. Se debe observar que Qk no act´ ua sobre las primeras k  1 filas de Ak1 ; es decir, las deja intactas, por lo que tendr´a la siguiente forma: Qk





Ik1 0 ˜k 0 Q



˜ k una matriz unitaria cuyo objetivo es reducir el vector formado por los siendo Q elementos en las posiciones pk, k q, pk 1, k q,. . . , pm, k q de Ak1 a un vector cuya u ´nica componente posiblemente no nula sea la primera:  

 

x

0

x x x   0     ˜k  Q  ..    ..  . . .

144

Reflexiones de Householder y el Algoritmo QR

La primera cuesti´on surge de forma natural: ¿existe siempre, para cualquier vector, una matriz unitaria que lo reduce a otro cuya u ´nica componente no nula sea, posiblemente, la primera?. Como veremos enseguida la respuesta es afirmativa y es la base del m´etodo de Householder.

7.2.

Las reflexiones de Householder

El objetivo es resolver el siguiente problema: dado un vector x P Cn1 construir una matriz unitaria Q P Cnn tal que Qx  αe1

siendo e1 el vector p1, 0, . . . , 0q.

Antes de nada debemos observar que, como Q es unitaria,

|α|2  }Qx}22  xQQx  xx  }x}22, de donde deducimos que }x}2  |α|.

La idea de Householder fu´e construir tal matriz como la matriz de una reflexi´on: una simetr´ıa respecto de un hiperplano. El caso particular de R2 nos servir´a como gu´ıa de lo que queremos conseguir: dado un vector x P R2 debemos encontrar una hiperplano (en este caso, una recta que pase por el origen) tal que el sim´etrico de x respecto de este hiperplano sea αe1 (Figura 7.1).

H

v1 x v

||x||2 e1

Suponiendo que α ¡ 0, dicha recta (H en la figura) es la bisectriz del ´angulo que forma los vector x y e1 . Sea v  αe1  x  }x}2e1  x (este vector es el de la Figura 7.1 pero trasladado al origen). Como el tri´angulo formado por los vectores x, }x}2e1 y v (trasladado desde el origen al extremo de x) es is´osceles, resulta que H es perpendicular a v. Es decir, H

Figura 7.1: Reflexi´on sobre el eje de abscisas

  v ¡K

¿Cu´al es la transformaci´on que lleva x sobre }x}2 e1 ?

7.2 Las reflexiones de Householder

145

Enseguida notamos que v1 es la proyecci´on ortogonal de x sobre v a lo largo de v H. Por lo tanto, si q  en la direcci´on de v, tenemos que }v}2 es el vector unitario la proyecci´on ortogonal sobre v es Pq  qq  ; y

 Pq x  qqx. Como, finalmente, v  2v1 y x v  }x}2 e1 conclu´ımos que pI  2qqqx  }x}2e1. As´ı pues, la matriz Q que representa la reflexi´on respecto de   v ¡K y que hace que Qx  }x}2 e1 es Q  I  2qq  v donde q  }v} y v  }x}2e1  x. v1

2

Hay otra forma de reflejar x sobre el eje de abscisas: hacerlo sobre la direcci´on negativa de ´este. Es decir, la reflexi´on ser´ıa Q1 x  }x}2 e1 .

H−

Razonando como antes, pero respecto de la Figura 7.2, ser´ıa Q1  I  2q1 q1 con q1  }uu}2 y u  }x}2 e1  x. Todo lo anterior nos permite asegurar que en el caso R2 , para un vector x dado, siempre podemos encontrar una transformaci´on ortogonal Q de forma que Qx  }x}2e1. Adem´as, nos dice que la matriz Q es una reflexi´on. Es decir, Q  I  2q1 q1 con Q1  }uu}2 y u  }x}2 e1  x. esta es nuestra gu´ıa para demostrar que lo mismo es posible en Cn . 



H+

u1 u −||x||2 e1

x

v +||x||2 e1

Figura 7.2: Las dos reflexi´on sobre el eje de abscisas

x1  ..  Lema 7.1 Sea x   .  P Cn y escribamos x1  |x1 |eiθ . Existen vectores unitarios xn n u1 , u2 P C tales que si Qui  pIn  2ui ui q, i  1, 2, entonces Qu1  }x}2 eiθ e1 y Qu2  }x}2 eiθ e1 .

146

Reflexiones de Householder y el Algoritmo QR

Observaci´ on: En el caso complejo no se puede asegurar, en general, que la primera componente de Qui x vaya a ser real. Demostraci´ on.- Elegimos los vectores u1 y u2 siguiendo la orientaci´on marcada por el caso R2 . Definimos v1

 }x}2eiθ e1  x,

y u1

v2

 }vv1} ,

 }x}2eiθ e1  x,

u2

1

 }vv2} . 2

Veremos que, en efecto, Qu1 x  }x}2 eiθ e1 . La demostraci´on de que Qu2 se hace igual. Qu1 x  pIn  2u1 u1 qx  x  2pu1 xqu1

 }x}2eiθ e1 



 x  2 pvvv1 xq1{2 pvvv1q1{2  x  2 vv1vx v1. 1 1

1 1

1 1

Ahora bien

 p}x}2eiθ eT1  xqx  }x}2eiθ x1  xx   }x}2eiθ eiθ |x1|  }x}22  }x}2p|x1|  }x}2q.

v1 x Y

v1 v1

    

p}x}2eiθ eT1  xqp}x}2eiθ e1  xq  }x}22eT1 e1  }x}2eiθ eT1 x  }x}2eiθ xe1 xx  }x}22  }x}2eiθ x1  }x}2eiθ x¯1 }x}22  2}x}22  }x}2 eiθ |x1 |eiθ  }x}2 eiθ |x1 |eiθ  2}x}22  2|x1 |}x}2  2}x}2 p}x}2  |x1 |q.

Por lo tanto Qu1 x  x  2

}x}2p|x1|  }x}2q v  x 1 2}x}2 p}x}2  |x1 |q

v1

 x }x}2eiθ e1  x  }x}2eiθ e1,

tal y como se quer´ıa mostrar. Antes de continuar veamos un ejemplo en R4 . Ejemplo 7.2 Sea x  p3, 1, 5, 1q. Encontrar una reflexi´on Qu tal que Qu x  pα, 0, 0, 0q.

7.2 Las reflexiones de Householder

147

Las operaciones las haremos con ayuda de MATLAB. Seg´ un el Lema 7.1 debemos poner v Ahora

 }x}2eiθ e1  x

}x}2 

?

9

1

y u

v }v}2 .

1  6 y x1

25

 3.

Por lo tanto "

v

5, 1q  v1  p6, 0, 0, 0q  p3, 1, 5, 1q  pp3,9,1, 1, 5, 1q  v2

Entonces u1

 16 p3, 1, 5, 1q

As´ı

y v2

 ? 1 p9, 1, 5, 1q. 116



Qu1

1{2 1{6  1 { 6 17  pI4  2u1u1 q   5{6 5{{18 18 1{6 1{18

Entonces



5 {6 1{6 5{18 1{18 . 7{18 5{18 5{18 17{18

 

6

Qu1 x 

0  . 0

0 De la misma forma 

Qu2



1{2 1{6 5{6 1{6  5{54 1{54 .  pI4  2u2u2 q  51{{66 535{{54 54 29{54 5{54 1{6 1{54 5{54 53{54

Y Qu2 x  6e1 . Ahora podemos describir el proceso de triangularizaci´on de Householder. La inducci´on del siguiente teorema lo pone claramente de manifiesto.

148

Reflexiones de Householder y el Algoritmo QR

Teorema 7.3 Sea A P Cmn y m ¥ n. Existen vectores unitarios u1 , . . . , un tales que para i  1, . . . , n, ui P Cmi 1 y si Qui  Imi 1  2ui ui y Qi entonces





Ii1 0 0 Qui



P Cmm

Qn    . . .  Q1 A  DR

siendo D P C  una matriz diagonal unitaria y R P Cmn una matriz triangular m m

superior cuyos elementos diagonales son n´ umeros reales.

Demostraci´ on.- Procederemos por inducci´on sobre n. Si n  1 entonces A P Cm1 . Si A  0 escogemos cualquier vector unitario u P Cm1 y ponemos D  Im y R  0 P Cm1 . Claramente, Qu A  DR. Si A  0, por el Lema 7.1 existe u1 P Cm1 , unitario, tal que Qu1 A  }A}2 eiθ e1 (con  se quiere decir que se puede elegir u1 para que Qu1 A  }A}2 eiθ e1 y se puede elegir u1 para que Qu1 A  }A}2 eiθ e1 . Arrastraremos esta notaci´on), siendo θ el argumento de la primera componente de A. Entonces Qu1 A  DR 

con D

 Diagpeiθ , Im1q

}A}2

 0  y R   ..  . 0

   . 

Supongamos el teorema verdadero para   matrices hasta con n  1 columnas y sea m n A P C . Escribamos A  a1 A1 . Por el primer paso de la inducci´on, existe u1 P Cm1 , unitario, tal que Qu1 a1  }a1 }2 eiθ e1 . As´ı 

}a1}2eiθ Qu A  0 1

xT B



con x P Cpn1q1 y B P Cpm1qpn1q . Aplicamos la hip´otesis de inducci´on a B. Existen vectores unitarios u2 , . . . , un tales que para i  2, . . . , n, ui P Cpmi 1q1 y si Qui  Imi 1  2ui ui y   I 0 i  2 ˜i  Q 0 Qui

7.2 Las reflexiones de Householder

˜2 (Q

 Qu ) entonces

149

˜n  . . .  Q ˜ 2C Q

2

˜  D˜ R,

˜ P Cpm1qpm1q una matriz diagonal unitaria y R ˜ P Cpm1qpn1q una matriz siendo D triangular superior cuyos elementos diagonales son n´ umeros reales. Sea Q1  Qu1 y Qi Entonces

Poniendo





1 0 ˜i 0 Q



P Cmm,

i  2, . . . , n.



}a1}2eiθ Qn  . . .  Q2 Q1 A  0 ˜ q, D  Diagpe , D iθ



y



xT ˜R ˜ . D

}a1}2 R 0

xT ˜ R



obtenemos el resultado deseado. Observaciones 7.4 1. Las matrices de la forma Qu  In  2uu , con u P Cn1 unitario, se llaman matrices de Householder o transformaciones de Householder o reflexiones de Householder, por ser Householder quien puso de manifiesto su inter´es en el c´alculo num´erico. Estas matrices tienen algunas propiedades importantes: (i) Son matrices herm´ıticas (sim´etricas en el caso real). En efecto, Qu

 pIn  2uuq  In  2uu  In  2uu  Qu

(ii) Son unitarias: Qu Qu

(iii)

 pIn  2uuqpIn  2uuq  In  4uu 4uuuu  In donde hemos utilizado que u u  1 porque u es unitario. 1  De las dos propiedades anteriores se deduce que Q u  Qu  Qu . Es decir, la inversa de una matriz de Householder es ella misma.

2. Para que una matriz D P Cmm sea diagonal y unitaria debe ser de la forma D  Diagpeiθ1 , . . . , eiθm q. Por lo tanto, si A P Rmn es real en el Teorema 7.3, debemos concluir que D  Im y que las matrices Qui y R son reales. Es decir, en el caso real las matrices de Householder son ortogonales.

150

Reflexiones de Householder y el Algoritmo QR

3. En el Teorema 7.3 no se ha fijado el signo de los elementos diagonales de la matriz R. Ello es debido a que dos elecciones de vectores ui es posible. Es decir, es posible elegir tanto vi  }ai }2 eiθ e1  ai como vi  }ai }2 eiθ e1  ai . Para ambas elecciones, definiendo ui  vi {}vi }2 , las matrices Qui  I  2ui ui permiten llevar la matriz A a forma triangular. El signo de los elementos diagonales depende de la elecci´on realizada. Ahora bien, esta elecci´on no es inocua desde el punto de vista del c´alculo num´erico. El siguiente ejemplo, hecho con MATLAB, lo pone de manifiesto: >> A=[2 3; 10^(-7) 4] A = 2.000000000000000 0.000000100000000

3.000000000000000 4.000000000000000

>> v1=norm(A(:,1))*[1;0]-A(:,1), v2=-norm(A(:,1))*[1;0]-A(:,1) v1 = 1.0e-07 * 0.000000022204460 -1.000000000000000 v2 = -4.000000000000002 -0.000000100000000 >> u1=v1/norm(v1), u2=v2/norm(v2) u1 = 0.000000022204460 -1.000000000000000 u2 = -1.000000000000000 -0.000000025000000 >> Q1=eye(2)-2*u1*u1’, Q2=eye(2)-2*u2*u2’ Q1 = 0.999999999999999 0.000000044408921 0.000000044408921 -0.999999999999999 Q2 = -0.999999999999999 -0.000000050000000 -0.000000050000000 0.999999999999999

7.2 Las reflexiones de Householder

>> Q1*Q1’, Q2*Q2’ ans = 1.000000000000000 -0.000000000000000 ans = 1.000000000000001 0.000000000000000 >> R1=Q1*A, R2=Q2*A R1 = 2.000000000000002 -0.000000011182158 R2 = -2.000000000000003 -0.000000000000000

151

-0.000000000000000 1.000000000000000 0.000000000000000 1.000000000000000

3.000000177635681 -3.999999866773233

-3.000000199999997 3.999999849999995

La primera columna, a1 , de A est´a “casi” en la direcci´on de e1  p1, 0q. Si elegimos v1  }a1 }2 e1  a1 la matriz Q1 es ortogonal pero el elemento de la posici´on p2, 1q de R1  Q1 A es del orden de 108 , un orden m´as que el elemento p2, 1q de A. Sin embargo, si elegimos v2  }a1}2e1  a1 entonces Q2 es un “poco menos” ortogonal que Q1 , pero R2  Q2 A es perfectamente triangular (hasta la precisi´on con la que trabajamos 1016 ). Este ejemplo no es especialmente rebuscado, sucede muy a menudo. Si los vector x P Rm1 y }x}2 e1 son “casi” iguales (i.e., x1  }x}2 , x2 , x3 ,. . . , xm son “casi” cero), al hacer la diferencia 

v



}x}2  x1  x  2  

 }x}e1  x  

.. . xm

 

tenemos que hacer la resta }x}2  x1 de dos cantidades casi iguales. Este problema, tal y como se ve en los problemas del Cap´ıtulo 4, est´a mal condicionado y los errores de redondeo pueden dar lugar a c´alculos inexactos. Esto no sucede

152

Reflexiones de Householder y el Algoritmo QR

si elegimos



v



}x}2  x1  x2  

 }x}e1  x  

 

.. . xm

porque entonces lo que tenemos que hacer es sumar |x}2 problema bien condicionado De la misma forma si x y }x}2e1  x.

x1 , y la suma es un

}x}2e1 son “casi” iguales y debemos elegir v 

En conclusi´on, la elecci´on apropiada para v es

  signpx1q}x}2eiθ e1  x donde signpx1 q es el signo de x1 ; es decir, signpx1 q  1 si x1 ¡ 0 y signpx1 q  1 si x1   0. Y para ser completamente exahustivos en este punto debemos considerar el caso en que x1  0. En este caso se define signpx1 q  1. Se v

debe observar que MATLAB no considera el caso en que x1 pueda ser cero y hay que definirlo expl´ıcitamente. Debe observarse tambi´en que puesto que Qu  I  2uu se puede, igualmente, elegir v

 signpx1q}x}2eiθ e1

x,

que es la elecci´on habitual. 1 4. Teniendo en cuenta que Q un el Teorema 7.3 para cada u  Qu y que, seg´ mn APC existen matrices de Householder Qui , i  1, . . . , n tales que

Qun  . . .  Qu1 A  DR, tenemos que

A  Qu1    . . .  Qun DR.

Si ponemos Q  Qu1    . . .  Qun D, resulta que A  QR

es una factorizaci´on QR de A. Esta es una factorizaci´on QR completa; para obtener una factorizaci´on reducida basta suprimir de Q las u ´ltimas m  n columnas y de R sus u ´ltima m  n filas (que son filas cero).

7.2 Las reflexiones de Householder

153

5. Vamos a hacer expl´ıcito el proceso constructivo de factorizaci´on QR que est´a detr´as de la inducci´on en el Teorema 7.3. El objetivo es formular un algoritmo que produzca una factorizaci´on QR de una matriz arbitraria A P Rmn . Por ello, nos centraremos en el caso real. Supongamos A P Rmn dada. El Teorema 7.3 nos dice que existen vectores unitarios u1 , u2 ,. . . , un , ui P Rmi 1 tales que si Qui  Imi 1  2ui ui y Qi  DiagpIi1 , Qui q entonces  

r11

 Qi1  . . .  Q1 A   0  0

Como Qi



 

... 0 0

ri1 i1



 



  

   

Ai

 DiagpIi1Qu q i

 

r11

 Qi Qi1  . . .  Q1 A   0  0

..

0 0

.

ri1i1



  

   

Qui Ai

Es decir la acci´on de Qi sobre la matriz obtenida hasta el paso i  1 s´olo afecta a la submatriz Ai . Y Qui Ai

 pImi 1  2uiui qAi  Ai  2uiui Ai.

Esta es la operaci´on que tenemos que realizar en cada paso de el proceso iterativo sobre A. Algo similar sucede con la matriz Q. Recordemos que Q r i  Q1 Q2    qi , i  1, . . . n tenemos que ponemos Q r Q r i1 Qi



 Q1Q2    Qn. Si



Ii1 0 . 0 Qui

Por lo tanto, en el paso i s´olo quedan afectadas las m  i u ´ltimas columnas de r As´ı pues Qi. r i p:, i : mqQu Q i

 Qri1p:, i : mq  2Qri1p:, i : mquiui .

154

Reflexiones de Householder y el Algoritmo QR

Algoritmo QR de Householder (Caso real) Dada A P Rmn R  A, Q  Im for k  1 to n x  Rrpk, . . . , mq|pk qs u  signpx1 q}x}2 e1 x u u }u}2 Rrpk, . . . , mq|pk, . . . , nqs



Rrpk, . . . , mq|pk, . . . , nqs 2uu Rrpk, . . . , mq|pk, . . . , nqs Qp:, k : mq  Qp:, k : mq  2Qp:, k : mquu end for

La salida de este algoritmo debe ser: una matriz ortogonal Q y una matriz triangular superior R tales que A  QR. Se trata, como ya se ha dicho, de una factorizaci´on QR completa de A. Ya se ha indicado m´as arriba como conseguir una factorizaci´on reducida a partir de ´esta. Una observaci´on final: El algoritmo QR de Householder, en el caso real, devuelve una matriz triangular superior R cuyos elementos diagonales son n´ umeros reales pero que pueden ser positivos o negativos. Los algoritmos de Gram–Schmidt devuelven matrices R con n´ umeros reales positivos en la diagonal. Se puede conseguir que el algoritmo de Householder tambi´en proporcione matrices R con n´ umeros reales positivos (o negativos) en la diagonal. Para ello, si el elemento en la posici´on pk, k q es, digamos, negativo, multiplicamos la k-´esima fila de R por 1 y tambi´en la k´esima columna de Q por 1. Es decir, si Ek  Diagp1, . . . , 1, . . . , 1q (1 en la k-´esima posici´on) entonces A  QEk Ek R. Como Ek es unitaria, tambi´en lo es QEk . Y tambi´en Ek R es triangular superior. En el algoritmo bastar´ıa a˜ nadir las siguientes l´ıneas de c´odigo justo antes de finalizar el bucle for:

if Rpk, k q   0 Rpk, k : nq  Rpk, k : nq Qp:, k q  Qp:, k q end if

7.3 N´ umero de operaciones

7.3.

155

N´ umero de operaciones

Estudiamos a continuaci´on el coste del algoritmo QR por transformaciones de Householder. Antes de nada debemos hacer una observaci´on que es pertinente tambi´en para la siguiente secci´on donde estudiaremos la estabilidad de este algoritmo: tal y como se ha expuesto aqu´ı el algoritmo (recuadro con el Algoritmo de Householder (Caso real)) la matriz Q se forma expl´ıcitamente. Sin embargo, esto no es estrictamente necesario ya que Q es producto de reflexiones de Householder y ´estas quedan determinadas completamente por los sucesivos vectores unitarios u. Podr´ıamos pensar que lo que devuelve el algoritmo no son las matrices R y Q sino la matriz R y los n vectores unitarios u que permiten (si se desea) construir la matriz Q. Teniendo en cuenta esto, las operaciones del algoritmo se encuentran en el bucle (1) (2) (3) (4)

x  Rrpk, . . . , mq|pk qs u  signpx1 q}x}2 e1 x u u }u}2 Rpk : m, k : nq  Rpk : m, k : nq  2uu Rpk : m, k : nq

que se realiza para k  1 : n. El n´ umero m  k 1 aparece muy frecuentemente porque es el tama˜ no del vector x. Pongamos `  m  k 1 para abreviar la notaci´on. La sentencia (1) es una asignaci´on y por lo tanto en ella no se realizan flops. En la sentencia (2) se hacen: ` multiplicaciones: x21 , x22 ,. . . , x2` . `  1 sumas: x21 1 ra´ız cuadrada:

 a

x21

x2` .



x2`

1 multiplicaci´o en }x}2 e1 . 1 suma para la primera componente de x. En total 2`

2

 2pm  k

2q flops. Como k

 1 : n, el n´umero total de flops

156

Reflexiones de Householder y el Algoritmo QR

necesarios para implementar la sentencia (2) es n °



k 1

2pm  k

2q

 

pm  n 1 kq  2npm  n 1q 2 npn2 1q k 1 2mn  n2 potencias menores en m y n. 2

n °

Para implementar la sentencia (3) se necesita un n´ umero similar de flops. Es en la sentencia (4) donde se acumula la mayor parte de las flops como veremos ahora. Analicemos cu´antas son necesarias para cada j  k : n: Rpk : m, j q  Rpk : m, j q  2upu Rpk : m, j qq Los par´entesis en upu Rpk : m, j qq indican la forma que asociamos para realizar los productos. N´otese que u Rpk : m, j q es un producto escalar y, por tanto, un n´ umero cuya formaci´on requiere ` productos y `  1 sumas. En total, 2`  1 flops. Ahora, si ponemos x  u Rpk : m, j q tenemos que multiplicar el n´ umero x por 2u; es decir, 2x requiere un producto y 2xu requiere ` productos para un total de ` 1 flops. Finalmente, si v  2xu tenemos que hacer la resta Rpk : m, j q  v; lo cual requiere ` flops. As´ı pues, el n´ umero total de flops para cada j  k : n es p2`  1q p` 1q `  4`. Y el n´umero total de flops involucrados en la sentencia (4) para cada k  1 : n son 4`pn  k 1q  4pm  k 1qpn  k 1q. . As´ı pues, el n´ umero total de flops necesarios para la sentencia (4) es n °



k 1

4pm  k

1qpn  k

1q

pm  n kqk  4pm  nq ° k 4 ° k2 k 1 k 1 k1 npn 1qp2n 1q npn 1q  4pm  nq 2 4 6 2 3 2  2mn  3 n potencias menores en m y n.



4

n °

n

Teorema 7.5 El algoritmo QR de Householder (caso real) requiere flops para calcular la factorizaci´on QR de una matriz m  n.

n

 2mn2  32 n3

2 N´otese que este algoritmo requiere del orden de n3 flops menos que los algoritmos 3 de Gram-Schmidt.

7.4 Estabilidad del algoritmo de Householder

7.4.

157

Estabilidad del algoritmo de Householder

Estrictamente hablando el algoritmo de Householder para la factorizaci´on QR no puede ser estable hacia atr´as si se entiende que el objetivo del mismo es calcular para cada matriz A matrices Q, unitaria (ortogonal), y R, triangular superior con n´ umeros reales en la diagonal. La raz´on es la misma que la que impide que ning´ un algoritmo para el c´alculo de la descomposici´on en valores singulares de una matriz sea estable hacia atr´as (Problema 11 de la Lecci´on 5). Dicho lo anterior, y recordando (ver Secci´on 7.3) que la formaci´on de la matriz Q en el algoritmo de Householder se hace a partir de los vectores unitarios que se construyen en los pasos u  signpx1 q}x}2 e1 u u }u}2

x

del algoritmo, podemos interpretar que el resultado que se busca no es la matriz Q expl´ıcitamente, sino cada uno de los vectores unitarios v1 , v2 ,. . . , vn que, una vez normalizados, se usan para construir las reflexiones cuyo producto permite obtener la matriz unitaria (ortogonal) Q: vi Q  Q1 Q2    Qn , Qi  Im  2ui ui , ui  }vi} .

Si se entiende que el problema de la factorizaci´on QR consiste en, para cada A P Fmn (n ¤ m), obtener vectores v1 , v2 ,. . . , vn en Fm1 tales que si Qi  Im  2ui ui , vi ui  }vi} , y Q  Q1Q2    Qn entonces A  QR con R triangular superior con n´umeros reales en la diagonal, entonces el algoritmo de Householder para la factorizaci´on QR es estable hacia atr´as para cualquier matriz A. En efecto, tal algoritmo aplicado r con n´ a A P Fmn producir´ıa una matriz triangular superior R, umeros reales en la vri r  ri  diagonal, y vectores vri , i  1, . . . , tales que definiendo u }vri} , Qi  Im  2uriuri , rQ r1    Q r n entonces Q rR r es una factorizaci´ i  1, . . . , n, y Q on QR exacta de una r matriz A pr´oxima a A. El siguiente teorema, que damos sin demostraci´on, establece la estabilidad hacia atr´as del algoritmo de Householder rigurosamente: Teorema 7.6 Supongamos que el algoritmo QR por reflexiones de Householder se aplica en un ordenador que cumple los dos axiomas de la aritm´etica de punto flotante

158

Reflexiones de Householder y el Algoritmo QR

ryR r como (5.2) y (5.4) de la Lecci´on 5. Sea A P Fmn una matriz arbitraria. Sean Q r  A δA tal que m´as arriba. Entonces existe una matriz A

}δA}  Op q M }A} rR rA yQ

δA.