Sie sind auf Seite 1von 18

Clase No.

13:
Factorizacin QR
MAT251
Joaqun Pea (CIMAT) Mtodos Numricos (MAT251) 03.10.2011 1 / 16
Factorizacin QR
Sea A R
mn
con m n. La factorizacin QR de A es
A = QR = [Q
1
Q
2
]
_
R
1
0
_
= Q
1
R
1
donde Q R
mm
es una matriz ortogonal y R
1
R
nn
es una matriz
triangular superior. Se dice que la matriz R es trapezoidal superior.
Esta factorizacin es til para resolver sistemas de ecuaciones lineales,
problemas de mnimos cuadrados y problemas de eigenvalores.
Las maneras ms comunes de calcular la factorizacin QR son aplicando
las transformaciones de Householder,
las rotaciones de Givens,
el proceso de ortogonalizacin de Gram-Schmidt.
Joaqun Pea (CIMAT) Mtodos Numricos (MAT251) 03.10.2011 2 / 16
Transformaciones de Householder
Sea v R
n
, v = 0. La matriz de Householder
se dene como
P = I
2
v

v
vv

.
La matriz es simtrica y ortogonal y, por
tanto, P
2
= I.
La gura muestra porque se le llama
reexin.
El objetivo de esta matriz es usarla para
producir ceros en la matriz que queremos
factorizar. Para hacerlo, debemos
considerar el problema:
Dados los vectores x y y, cmo calculmos
P tal que Px = y?
x
Px
v
Joaqun Pea (CIMAT) Mtodos Numricos (MAT251) 03.10.2011 3 / 16
Clculo de la transformacin de Householder
Puesto que P realiza una reexin, se debe cumplir que y
2
= x
2
para poder calcular P.
Hay que notar que P es invariante a la escala de v.
x y tiene la direccin del vector que queremos.
As, podemos denir v = x y.
Para que P produzca el mayor nmero de ceros, debemos tener que
y = e
1
, donde e
1
es el vector cannico que tiene un 1 como primer
elemento y el resto son ceros, y = x. Entonces
v = x y = x e
1
.
Sea x = (x
1
, x
2
, ..., x
n
)

. Para evitar errores por sustraccin conviene denir


= sign(x
1
)x.
Joaqun Pea (CIMAT) Mtodos Numricos (MAT251) 03.10.2011 4 / 16
Clculo de la transformacin de Householder
Puesto que P realiza una reexin, se debe cumplir que y
2
= x
2
para poder calcular P.
Hay que notar que P es invariante a la escala de v.
x y tiene la direccin del vector que queremos.
As, podemos denir v = x y.
Para que P produzca el mayor nmero de ceros, debemos tener que
y = e
1
, donde e
1
es el vector cannico que tiene un 1 como primer
elemento y el resto son ceros, y = x. Entonces
v = x y = x e
1
.
Sea x = (x
1
, x
2
, ..., x
n
)

. Para evitar errores por sustraccin conviene denir


= sign(x
1
)x.
Joaqun Pea (CIMAT) Mtodos Numricos (MAT251) 03.10.2011 4 / 16
Clculo de la transformacin de Householder
Puesto que P realiza una reexin, se debe cumplir que y
2
= x
2
para poder calcular P.
Hay que notar que P es invariante a la escala de v.
x y tiene la direccin del vector que queremos.
As, podemos denir v = x y.
Para que P produzca el mayor nmero de ceros, debemos tener que
y = e
1
, donde e
1
es el vector cannico que tiene un 1 como primer
elemento y el resto son ceros, y = x. Entonces
v = x y = x e
1
.
Sea x = (x
1
, x
2
, ..., x
n
)

. Para evitar errores por sustraccin conviene denir


= sign(x
1
)x.
Joaqun Pea (CIMAT) Mtodos Numricos (MAT251) 03.10.2011 4 / 16
Uso de la transformacin de Householder (I)
El proceso se ilustra en la siguiente gura para una matriz 4 3.
A =
_
_
_
_




_
_
_
_

P
1

_
_
_
_

0
0
0
_
_
_
_

P
2

_
_
_
_

0
0 0
0 0
_
_
_
_

P
3

_
_
_
_

0
0 0
0 0 0
_
_
_
_
= R
Sea A
1
= A y a
1
su primer columna. Calculamos la matriz de Householder
P
1
tal que P
1
a
1
= e
1
, con = sign(a
11
)a
1
, y hagamos

P
1
= P
1
. As,
A
2
=

P
1
A
1
tiene ceros en la primera columna, excepto en el primer
elemento.
En el paso k-simo tenemos
A
k
=
_
R
k1
z
k
B
k
0 x
k
C
k
_
, R
k1
R
(k1)(k1)
, x
k
R
mk+1
, z
k
R
k1
y R
k1
es triangular superior. Denimos la matriz de Householder P
k
tal que
P
k
x
k
= e
1
, con = sign(x
k1
)x
1
, y denimos

P
k
=
_
I
k1
0
0 P
k
_
Joaqun Pea (CIMAT) Mtodos Numricos (MAT251) 03.10.2011 5 / 16
Uso de la transformacin de Householder (II)
A
k+1
=

P
k
A
k
=
_
I
k1
0
0 P
k
__
R
k1
z
k
B
k
0 x
k
C
k
_
=
_
R
k1
z
k
B
k
0 e
1
P
k
C
k
_
No es necesario construir las matrices de Householder. Es suciente con
determinar v, puesto que
P
k
C
k
= (I vv

)C
k
= C
k
v(v

C
k
),
con = 1/ v

v.
Denimos Q=

P
1

P
1

P
n
.
Es mejor hacer el clculo de Q multiplicando de de derecha a izquierda.
El nmero de operaciones es 2n
2
(mn/ 3).
Joaqun Pea (CIMAT) Mtodos Numricos (MAT251) 03.10.2011 6 / 16
Rotaciones de Givens (I)
Una rotacin de Givens, G(i, j, ) = [g
ij
] R
nn
, es una matriz que coincide
con la matriz identidad, excepto en cuatro entradas:
g
ii
= g
jj
= cos = c, g
ij
= sin = s, g
ji
= sin = s.
G(i, j, ) =
_
_
_
_
_
_
_
_
_
_
_
_
_
_
_
_
_
_
_
1 0 0 0 0
0 1 0 0 0
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
0 0 c s 0
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
0 0
.
.
. s c 0
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
0 0
.
.
. 0
.
.
. 0
.
.
. 1
_
_
_
_
_
_
_
_
_
_
_
_
_
_
_
_
_
_
_
Joaqun Pea (CIMAT) Mtodos Numricos (MAT251) 03.10.2011 7 / 16
Rotaciones de Givens (II)
Si y = G(i, j, )x, entonces
y
k
=
_
_
_
x
k
k = i, j,
cx
i
+sx
j
k = i,
sx
i
+cx
j
k = j.
Si y
j
= 0, entonces
s =
x
j
_
x
2
i
+x
2
j
, c =
x
i
_
x
2
i
+x
2
j
Las rotaciones de Givens son usadas para crear ceros, uno a la vez. La
siguiente gura ilustra el proceso.
A =
_
_
_
_




_
_
_
_

G
41

_
_
_
_



0
_
_
_
_

G
31

_
_
_
_


0
0
_
_
_
_

G
21

_
_
_
_

0
0
0
_
_
_
_
Joaqun Pea (CIMAT) Mtodos Numricos (MAT251) 03.10.2011 8 / 16
Rotaciones de Givens (III)

G
42

_
_
_
_

0
0
0 0
_
_
_
_

G
32

_
_
_
_

0
0 0
0 0
_
_
_
_

G
43

_
_
_
_

0
0 0
0 0 0
_
_
_
_
= R
En general, se genera una secuencia G
k
de rotaciones de Givens tales que
G
s
G
s1
G
1
A = R.
Tenemos que G

k
G
k
= I, por lo que
Q= G

1
G

s1
G

s
.
El nmero de operaciones realizadas es 3n
2
(mn/ 3).
Este nmero es mayor que cuando se usan reexiones de Householder.
Aun as, hay casos en los que conviene ms aplicar las rotaciones de
Givens para calcular la factorizacin QR.
Joaqun Pea (CIMAT) Mtodos Numricos (MAT251) 03.10.2011 9 / 16
Ortogonalizacin de Gram-Schmidt (I)
Proceso de Gram-Schmidt
Sea x
1
, ..., x
n
un conjunto de n vectores linealmente independientes. En-
tonces podemos construir un conjunto v
1
, ..., v
n
de vectores ortogonales con
el siguiente proceso. Iniciamos haciendo v
1
= x
1
.
v
k
= x
k

k1

i=1
x

k
v
i
v
i

2
v
i
para k = 2, ..., n
Usando el proceso de ortogonalizacin de Gram-Schmidt se puede calcular
la factorizacin directamente de la ecuacin A = QR, con A, Q R
mn
, Q
ortonormal y R R
nn
.
Denotemos por a
j
y q
j
a las columnas de la matrices A y Q,
respectivamente. Entonces
a
j
=
j

k=1
r
kj
q
k
Joaqun Pea (CIMAT) Mtodos Numricos (MAT251) 03.10.2011 10 / 16
Ortogonalizacin de Gram-Schmidt (II)
Supongamos que para i = 1, ..., j 1 ya tenemos determinadas las columnas
q

i
de Q. Por la ortonormalidad de las columnas de Q, se debe tener que
q

i
a
j
=
j

k=1
r
kj
q

i
q
k
= r
ij
(1)
Entonces podemos denir
q
j
=
1
r
jj
v
j
, (2)
donde
v
j
= a
j

j1

k=1
r
kj
q
k
, r
jj
= v
j
. (3)
De esta forma, (1) y (3) nos dan los elementos de la columna j de la matriz
Q y R. As, podemos ir construyendo columna por columna.
El costo computacional es de 2mn
2
.
Joaqun Pea (CIMAT) Mtodos Numricos (MAT251) 03.10.2011 11 / 16
Solucin de mnimos cuadrados usando QR (I)
Sea A R
mn
con m n y rank(A) = n. Si A tiene una factorizacin QR,
entonces
Q

A =
_
R
0
_
entonces
Ax b
2
2
= Q

2
2
Ax b
2
2
= Q

Ax Q

b
2
2
=
_
_
_
_
_
Rx c
d
_
_
_
_
_
2
2
donde
_
c
d
_
= Q

b. As,
Ax b
2
2
= Rx c
2
2
+d
2
2
.
Se sigue que la solucin (nica) de mnimos cuadrados es x = R
1
c y que el
resodual es Ax b
2
2
= d
2
2
.
Joaqun Pea (CIMAT) Mtodos Numricos (MAT251) 03.10.2011 12 / 16
Clculo de eigenvalores basado en QR
Algoritmo basado en QR
Dada la matriz A
(0)
y jar k = 0. Iterar los siguientes pasos hasta convergen-
cia:
1
Q
(k)
R
(k)
= A
(k)
.
2
A
(k+1)
= R
(k)
Q
(k)
.
3
k = k +1.
En la diagonal de la ltima matriz A
(k)
generada se encuentran los eigenva-
lores de la matriz A
(0)
.
Un criterio para convergencia es que ver si Q
(k)
=
_
q
(k)
ij
_
se cumple que
_
_
_1 |q
(k)
ii
|
_
_
_ < ,
_
_
_q
(k)
ij
_
_
_ < , i = j;
para alguna tolerancia dada .
Joaqun Pea (CIMAT) Mtodos Numricos (MAT251) 03.10.2011 13 / 16
Ejemplo del clculo de eigenvalores (I)
A =
_
_
_
5 1 1
0 6 1
1 0 5
_
_
_
(A) {4.8895981, 4.8122812, 6.0773169}.
En k = 1152 iteraciones se tiene que
Q
(k)
=
_
_
_
1. 3.91 10
109
3.58 10
116
3.91 10
109
1.00 0.0000002
2.92 10
116
0.0000002 1.
_
_
_
,
A
(k)
=
_
_
_
6.0773169 0.6599920 0.7851245
1.91 10
108
4.8895982 2.224407
1.40 10
115
0.0000008 4.8122813
_
_
_
Joaqun Pea (CIMAT) Mtodos Numricos (MAT251) 03.10.2011 14 / 16
Mtodo iterativo de Jacobi (I)
Sea A
(0)
R
nn
una matriz simtrica y G(i, j, ) una rotacin de Givens.
Entonces A
(1)
= G

A
(0)
G es una matriz simtrica similar a A
(0)
. Adems,
tenemos la siguiente relacin entre las entradas de las matrices:
A
(1)
ii
= c
2
A
(0)
ii
2scA
(0)
ij
+s
2
A
(0)
jj
A
(1)
jj
= s
2
A
(0)
ii
+2scA
(0)
ij
+c
2
A
(0)
jj
A
(1)
ij
= (c
2
s
2
)A
(0)
ij
+sc(A
(0)
ii
A
(0)
jj
)
A
(1)
ik
= cA
(0)
ik
sA
(0)
jk
k = i, j
A
(1)
ij
= sA
(0)
ik
+A
(0)
jk
k = i, j
A
(1)
kl
= A
(0)
kl
k, l = i, j
Escogemos de modo que A
(1)
ij
= A
(1)
ji
= 0. Entonces
tan2 =
2A
(0)
ij
A
(0)
jj
A
(0)
ii
Joaqun Pea (CIMAT) Mtodos Numricos (MAT251) 03.10.2011 15 / 16
Mtodo iterativo de Jacobi (II)
El proceso se repite de forma iterativa deniendo A
(k+1)
= G

A
(k)
G.
En cada iteracin, para denir los ndices i y j, lo ideal es escoger el
elemento A
(k)
ij
de mayor magnitud para acelerar el proceso.
En la prctica se van revisando cada elemento fuera de la diagonal, y si
es mejor que cierta tolerancia, se aplica el proceso anterior para hacerlo
cero.
Se tienen que dar varios barridos a la matriz porque el proceso
iterativo no preserva los ceros que previamente se han creado.
Al nal se obtiene una matriz A
(k)
que es diagonal y los elementos en ella
corresponden a los eigenvalores de la matriz original.
Joaqun Pea (CIMAT) Mtodos Numricos (MAT251) 03.10.2011 16 / 16