Reflexiones de Householder y el Algoritmo QR

Anuncio
Capı́tulo 7
Reflexiones de Householder y el
Algoritmo QR
7.1.
Introducción
Hay otros dos métodos importantes para calcular la descomposición 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ón de la matriz dada
mediante transformaciones ortogonales” (caso real) “o unitarias” (caso complejo).
En este curso estudiaremos el primero de los dos métodos (el de las reflexiones de
Householder). Una buena referencia para el método de las rotaciones de Givens es
el libro de Golub y van Loan [9]. En realidad, estos dos métodos, son el resultado
de aplicar un teorema general de álgebra que establece que toda transformación
ortogonal (o unitaria) es un producto de simetrı́as (reflexiones o giros).
Los métodos de Householder y Givens difieren de los de Gram-Schmidt en un
hecho básico fundamental. Para ver esta diferencia analicemos, de nuevo, el proecedi141
142
Reflexiones de Householder y el Algoritmo QR
miento de ortonormalización 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ón, 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̂
Rn1 . . . R11 y se obtiene A QR̂, la descomposición QR, reducida, de A.
El método de Householder; y también 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ón
143
Lo primero que hay que observar es que mientras los métodos de ortonormalización de Gram-Schmidt produce una factorización QR reducida, el de Householder
produce una factorización completa. En aquel caso Q es de tamaño m n y R es
n n. En el método de Householder cada Qi es unitaria (o, insistimos por última
vez, ortogonal en el caso real);por lo tanto, de tamaño m m. Y R será de tamaño
m n.
Sucintamente, el método 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áticamente 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ón de la diagonal. A continuación 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úa sobre las primeras k 1 filas de Ak1 ; es decir,
las deja intactas, por lo que tendrá la siguiente forma:
Qk
Ik1 0
0 Q̃k
siendo Q̃k una matriz unitaria cuyo objetivo es reducir el vector formado por los
elementos en las posiciones pk, k q, pk 1, k q,. . . , pm, k q de Ak1 a un vector cuya
única componente posiblemente no nula sea la primera:
x
0
x
x
x 0 Q̃k .. .. .
. .
144
Reflexiones de Householder y el Algoritmo QR
La primera cuestión surge de forma natural: ¿existe siempre, para cualquier
vector, una matriz unitaria que lo reduce a otro cuya única componente no nula sea,
posiblemente, la primera?. Como veremos enseguida la respuesta es afirmativa y es
la base del método 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é construir tal matriz como la matriz de una reflexión:
una simetrı́a respecto de un hiperplano. El caso particular de R2 nos servirá 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étrico 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 ángulo 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ángulo formado por los vectores x,
}x}2e1 y v (trasladado desde el origen al
extremo de x) es isósceles, resulta que H
es perpendicular a v. Es decir,
H
Figura 7.1: Reflexión sobre el eje
de abscisas
v ¡K
¿Cuál es la transformación que lleva x sobre }x}2 e1 ?
7.2 Las reflexiones de Householder
145
Enseguida notamos que v1 es la proyección ortogonal de x sobre v a lo largo de
v
H. Por lo tanto, si q en la dirección de v, tenemos que
}v}2 es el vector unitario
la proyección 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ón 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ón negativa de éste. Es decir, la reflexión 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ón ortogonal Q de forma que Qx }x}2e1. Además, nos dice que la matriz Q
es una reflexión. 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ón 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ón: En el caso complejo no se puede asegurar, en general, que la primera
componente de Qui x vaya a ser real.
Demostración.- Elegimos los vectores u1 y u2 siguiendo la orientación 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ón 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ón 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ún 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ón de Householder. La inducción 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úmeros reales.
Demostración.- Procederemos por inducción 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ón), 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ón, 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ótesis de inducción 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
Ii2 0
Q̃i 0 Qui
7.2 Las reflexiones de Householder
(Q̃2
Qu ) entonces
149
Q̃n . . . Q̃2 C
2
D̃R̃,
siendo D̃ P Cpm1qpm1q una matriz diagonal unitaria y R̃ P Cpm1qpn1q una matriz
triangular superior cuyos elementos diagonales son números reales. Sea Q1 Qu1 y
Qi
Entonces
1 0
0 Q̃i
P Cmm,
i 2, . . . , n.
}a1}2eiθ
Qn . . . Q2 Q1 A 0
Poniendo
D
Diagpe
iθ
, D̃q,
y
xT
.
D̃R̃
}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és en el cálculo numérico. Estas matrices tienen algunas propiedades
importantes:
(i) Son matrices hermı́ticas (simétricas 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ón realizada. Ahora bien, esta elección no es
inocua desde el punto de vista del cálculo numérico. 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á “casi” en la dirección de e1 p1, 0q. Si
elegimos v1 }a1 }2 e1 a1 la matriz Q1 es ortogonal pero el elemento de la
posición p2, 1q de R1 Q1 A es del orden de 108 , un orden más 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ón 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á mal condicionado
y los errores de redondeo pueden dar lugar a cálculos 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ón, la elección 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én que puesto que
Qu I 2uu se puede, igualmente, elegir
v
signpx1q}x}2eiθ e1
x,
que es la elección habitual.
1
4. Teniendo en cuenta que Q
u Qu y que, según el Teorema 7.3 para cada
A P Cmn 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ón QR de A. Esta es una factorización QR completa; para
obtener una factorización reducida basta suprimir de Q las últimas m n
columnas y de R sus ú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ón QR que está detrás
de la inducción en el Teorema 7.3. El objetivo es formular un algoritmo que
produzca una factorización 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ón de Qi sobre la matriz obtenida hasta el paso i 1 sólo afecta
a la submatriz Ai . Y
Qui Ai
pImi 1 2uiui qAi Ai 2uiui Ai.
Esta es la operación 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ólo quedan afectadas las m i ú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ón
QR completa de A. Ya se ha indicado más arriba como conseguir una factorización
reducida a partir de ésta.
Una observación final: El algoritmo QR de Householder, en el caso real, devuelve
una matriz triangular superior R cuyos elementos diagonales son números reales pero
que pueden ser positivos o negativos. Los algoritmos de Gram–Schmidt devuelven
matrices R con números reales positivos en la diagonal. Se puede conseguir que
el algoritmo de Householder también proporcione matrices R con números reales
positivos (o negativos) en la diagonal. Para ello, si el elemento en la posición pk, k q
es, digamos, negativo, multiplicamos la k-ésima fila de R por 1 y también la késima columna de Q por 1. Es decir, si Ek Diagp1, . . . , 1, . . . , 1q (1 en la
k-ésima posición) entonces A QEk Ek R. Como Ek es unitaria, también lo es QEk .
Y también Ek R es triangular superior. En el algoritmo bastarı́a añadir las siguientes
lı́neas de código 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úmero de operaciones
7.3.
155
Número de operaciones
Estudiamos a continuación el coste del algoritmo QR por transformaciones de Householder.
Antes de nada debemos hacer una observación que es pertinente también para la
siguiente sección 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 éstas 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úmero m k 1 aparece muy frecuentemente
porque es el tamaño del vector x. Pongamos ` m k 1 para abreviar la notación.
La sentencia (1) es una asignación 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ó 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úmero 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úmero similar de flops. Es en la
sentencia (4) donde se acumula la mayor parte de las flops como veremos ahora.
Analicemos cuántas son necesarias para cada j k : n:
Rpk : m, j q Rpk : m, j q 2upu Rpk : m, j qq
Los paréntesis en upu Rpk : m, j qq indican la forma que asociamos para realizar
los productos. Nótese que u Rpk : m, j q es un producto escalar y, por tanto, un
número cuya formación requiere ` productos y ` 1 sumas. En total, 2` 1 flops.
Ahora, si ponemos x u Rpk : m, j q tenemos que multiplicar el número 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úmero total de flops para cada j k : n es
p2` 1q p` 1q ` 4`. Y el número 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úmero 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ón QR de una matriz m n.
n
2mn2 32 n3
2
Nótese 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ón QR no
puede ser estable hacia atrás si se entiende que el objetivo del mismo es calcular
para cada matriz A matrices Q, unitaria (ortogonal), y R, triangular superior con
números reales en la diagonal. La razón es la misma que la que impide que ningún
algoritmo para el cálculo de la descomposición en valores singulares de una matriz
sea estable hacia atrás (Problema 11 de la Lección 5).
Dicho lo anterior, y recordando (ver Sección 7.3) que la formación 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ón 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úmeros reales en la diagonal, entonces el algoritmo de Householder para la factorización
QR es estable hacia atrás para cualquier matriz A. En efecto, tal algoritmo aplicado
r con números reales en la
a A P Fmn producirı́a una matriz triangular superior R,
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ón QR exacta de una
i 1, . . . , n, y Q
r próxima a A. El siguiente teorema, que damos sin demostración, establece
matriz A
la estabilidad hacia atrás 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ética de punto flotante
158
Reflexiones de Householder y el Algoritmo QR
ryR
r como
(5.2) y (5.4) de la Lección 5. Sea A P Fmn una matriz arbitraria. Sean Q
r A δA tal que
más arriba. Entonces existe una matriz A
}δA} Op q
M
}A}
rR
rA
yQ
δA.
Descargar