clase no. 13: factorización qr - cimat.mxjoaquin/mn11/clase13.pdf · problemas de mínimos...
TRANSCRIPT
Clase No. 13:
Factorización QRMAT–251
Joaquín Peña (CIMAT) Métodos Numéricos (MAT–251) 03.10.2011 1 / 16
Factorización QR
Sea A ∈ Rm×n con m ≥ n. La factorización QR de A es
A =QR = [Q1 Q2]
�
R10
�
=Q1R1
donde Q ∈ Rm×m es una matriz ortogonal y R1 ∈ Rn×n es una matriztriangular superior. Se dice que la matriz R es trapezoidal superior.
Esta factorización es útil para resolver sistemas de ecuaciones lineales,problemas de mínimos cuadrados y problemas de eigenvalores.
Las maneras más comunes de calcular la factorización QR son aplicando
• las transformaciones de Householder,
• las rotaciones de Givens,
• el proceso de ortogonalización de Gram-Schmidt.
Joaquín Peña (CIMAT) Métodos Numéricos (MAT–251) 03.10.2011 2 / 16
Transformaciones de Householder
Sea v ∈ Rn, v 6= 0. La matriz de Householderse define como
P = I−2
v>vvv>.
La matriz es simétrica y ortogonal y, portanto, P2 = I.
La figura muestra porque se le llamareflexión.
El objetivo de esta matriz es usarla paraproducir ceros en la matriz que queremosfactorizar. Para hacerlo, debemosconsiderar el problema:Dados los vectores x y y, ¿cómo calculmosP tal que Px = y?
x
Pxv
Joaquín Peña (CIMAT) Métodos Numéricos (MAT–251) 03.10.2011 3 / 16
Cálculo de la transformación de Householder
• Puesto que P realiza una reflexión, se debe cumplir que ‖y‖2 = ‖x‖2para poder calcular P.
• Hay que notar que P es invariante a la escala de v.
• x− y tiene la dirección del vector que queremos.
Así, podemos definir v = x− y.
Para que P produzca el mayor número de ceros, debemos tener quey = σe1, donde e1 es el vector canónico que tiene un 1 como primerelemento y el resto son ceros, y σ = ±‖x‖. Entonces
v = x− y = x− σe1.
Sea x = (x1,x2, ...,xn)>. Para evitar errores por sustracción conviene definir
σ = −sign(x1)‖x‖.
Joaquín Peña (CIMAT) Métodos Numéricos (MAT–251) 03.10.2011 4 / 16
Cálculo de la transformación de Householder
• Puesto que P realiza una reflexión, se debe cumplir que ‖y‖2 = ‖x‖2para poder calcular P.
• Hay que notar que P es invariante a la escala de v.
• x− y tiene la dirección del vector que queremos.
Así, podemos definir v = x− y.
Para que P produzca el mayor número de ceros, debemos tener quey = σe1, donde e1 es el vector canónico que tiene un 1 como primerelemento y el resto son ceros, y σ = ±‖x‖. Entonces
v = x− y = x− σe1.
Sea x = (x1,x2, ...,xn)>. Para evitar errores por sustracción conviene definir
σ = −sign(x1)‖x‖.
Joaquín Peña (CIMAT) Métodos Numéricos (MAT–251) 03.10.2011 4 / 16
Cálculo de la transformación de Householder
• Puesto que P realiza una reflexión, se debe cumplir que ‖y‖2 = ‖x‖2para poder calcular P.
• Hay que notar que P es invariante a la escala de v.
• x− y tiene la dirección del vector que queremos.
Así, podemos definir v = x− y.
Para que P produzca el mayor número de ceros, debemos tener quey = σe1, donde e1 es el vector canónico que tiene un 1 como primerelemento y el resto son ceros, y σ = ±‖x‖. Entonces
v = x− y = x− σe1.
Sea x = (x1,x2, ...,xn)>. Para evitar errores por sustracción conviene definir
σ = −sign(x1)‖x‖.
Joaquín Peña (CIMAT) Métodos Numéricos (MAT–251) 03.10.2011 4 / 16
Uso de la transformación de Householder (I)El proceso se ilustra en la siguiente figura para una matriz 4× 3.
A =
× × ×× × ×× × ×× × ×
bP1→
× × ×0 × ×0 × ×0 × ×
bP2→
× × ×0 × ×0 0 ×0 0 ×
bP3→
× × ×0 × ×0 0 ×0 0 0
= R
Sea A1 = A y a1 su primer columna. Calculamos la matriz de HouseholderP1 tal que P1a1 = σe1, con σ = −sign(a11)‖a1‖, y hagamos bP1 = P1. Así,A2 = bP1A1 tiene ceros en la primera columna, excepto en el primerelemento.
En el paso k-ésimo tenemos
Ak =
�
Rk−1 zk Bk0 xk Ck
�
, Rk−1 ∈ R(k−1)×(k−1), xk ∈ Rm−k+1, zk ∈ Rk−1
y Rk−1 es triangular superior. Definimos la matriz de Householder Pk tal quePkxk = σe1, con σ = −sign(xk1)‖x1‖, y definimos
bPk =
�
Ik−1 00 Pk
�
Joaquín Peña (CIMAT) Métodos Numéricos (MAT–251) 03.10.2011 5 / 16
Uso de la transformación de Householder (II)
Ak+1 = bPkAk =
�
Ik−1 00 Pk
��
Rk−1 zk Bk0 xk Ck
�
=
�
Rk−1 zk Bk0 σe1 PkCk
�
• No es necesario construir las matrices de Householder. Es suficiente condeterminar v, puesto que
PkCk = (I− βvv>)Ck = Ck − βv(v>Ck),
con β = 1/v>v.
• Definimos Q = bP1bP1 · · · bPn.
• Es mejor hacer el cálculo de Q multiplicando de de derecha a izquierda.
• El número de operaciones es 2n2(m− n/3).
Joaquín Peña (CIMAT) Métodos Numéricos (MAT–251) 03.10.2011 6 / 16
Rotaciones de Givens (I)
Una rotación de Givens, G(i, j, θ) = [gij] ∈ Rn×n, es una matriz que coincidecon la matriz identidad, excepto en cuatro entradas:
gii = gjj = cosθ = c, gij = sinθ = s, gji = − sinθ = −s.
G(i, j, θ) =
1 0 · · · 0 · · · 0 · · · 00 1 · · · 0 · · · 0 · · · 0...
.... . .
......
......
...0 0 · · · c · · · s · · · 0...
......
.... . .
......
...
0 0... −s · · · c · · · 0
......
......
......
. . ....
0 0... 0
... 0... 1
Joaquín Peña (CIMAT) Métodos Numéricos (MAT–251) 03.10.2011 7 / 16
Rotaciones de Givens (II)
Si y = G(i, j, θ)x, entonces
yk =
xk k 6= i, j,
cxi + sxj k = i,
−sxi + cxj k = j.
Si yj = 0, entonces
s =xj
q
x2i + x2
j
, c =xi
q
x2i + x2
j
Las rotaciones de Givens son usadas para crear ceros, uno a la vez. Lasiguiente figura ilustra el proceso.
A =
× × ×× × ×× × ×× × ×
bG41→
× × ×× × ×× × ×0 × ×
bG31→
× × ×× × ×0 × ×0 × ×
bG21→
× × ×0 × ×0 × ×0 × ×
Joaquín Peña (CIMAT) Métodos Numéricos (MAT–251) 03.10.2011 8 / 16
Rotaciones de Givens (III)
bG42→
× × ×0 × ×0 × ×0 0 ×
bG32→
× × ×0 × ×0 0 ×0 0 ×
bG43→
× × ×0 × ×0 0 ×0 0 0
= R
En general, se genera una secuencia Gk de rotaciones de Givens tales que
GsGs−1 · · ·G1A = R.
Tenemos que G>kGk = I, por lo que
Q =G>1 · · ·G>s−1G
>s.
• El número de operaciones realizadas es 3n2(m− n/3).• Este número es mayor que cuando se usan reflexiones de Householder.
• Aun así, hay casos en los que conviene más aplicar las rotaciones deGivens para calcular la factorización QR.
Joaquín Peña (CIMAT) Métodos Numéricos (MAT–251) 03.10.2011 9 / 16
Ortogonalización de Gram-Schmidt (I)
Proceso de Gram-Schmidt
Sea x1, ...,xn un conjunto de n vectores linealmente independientes. En-tonces podemos construir un conjunto v1, ...,vn de vectores ortogonales conel siguiente proceso. Iniciamos haciendo v1 = x1.
vk = xk −k−1∑
i=1
x>k vi‖vi‖2
vi para k = 2, ...,n
Usando el proceso de ortogonalización de Gram-Schmidt se puede calcularla factorización directamente de la ecuación A =QR, con A,Q ∈ Rm×n, Qortonormal y R ∈ Rn×n.
Denotemos por aj y qj a las columnas de la matrices A y Q,respectivamente. Entonces
aj =j∑
k=1
rkjqk
Joaquín Peña (CIMAT) Métodos Numéricos (MAT–251) 03.10.2011 10 / 16
Ortogonalización de Gram-Schmidt (II)
Supongamos que para i = 1, ..., j− 1 ya tenemos determinadas las columnasq>i de Q. Por la ortonormalidad de las columnas de Q, se debe tener que
q>iaj =
j∑
k=1
rkjq>i qk = rij (1)
Entonces podemos definir
qj =1
rjjvj, (2)
donde
vj = aj −j−1∑
k=1
rkjqk, rjj = ‖vj‖. (3)
De esta forma, (1) y (3) nos dan los elementos de la columna j de la matrizQ y R. Así, podemos ir construyendo columna por columna.
El costo computacional es de 2mn2.
Joaquín Peña (CIMAT) Métodos Numéricos (MAT–251) 03.10.2011 11 / 16
Solución de mínimos cuadrados usando QR (I)
Sea A ∈ Rm×n con m ≥ n y rank(A) = n. Si A tiene una factorización QR,entonces
Q>A =
�
R0
�
entonces
‖Ax−b‖22 = ‖Q>‖22 ‖Ax−b‖22 = ‖Q>Ax−Q>b‖22 =
�
Rx− c−d
�
2
2
donde�
cd
�
=Q>b. Así,
‖Ax−b‖22 = ‖Rx− c‖22 + ‖d‖22.
Se sigue que la solución (única) de mínimos cuadrados es x = R−1c y que elresodual es ‖Ax−b‖22 = ‖d‖22.
Joaquín Peña (CIMAT) Métodos Numéricos (MAT–251) 03.10.2011 12 / 16
Cálculo de eigenvalores basado en QR
Algoritmo basado en QR
Dada la matriz A(0) y fijar 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) =h
q(k)ij
i
se cumple que�
�
�1− |q(k)ii |�
�
� < τ,�
�
�q(k)ij
�
�
� < τ, i 6= j;
para alguna tolerancia dada τ.
Joaquín Peña (CIMAT) Métodos Numéricos (MAT–251) 03.10.2011 13 / 16
Ejemplo del cálculo de eigenvalores (I)
A =
5 1 −10 6 11 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.00000022.92× 10−116 −0.0000002 1.
,
A(k) =
6.0773169 −0.6599920 −0.78512451.91× 10−108 −4.8895982 2.2244071.40× 10−115 −0.0000008 4.8122813
Joaquín Peña (CIMAT) Métodos Numéricos (MAT–251) 03.10.2011 14 / 16
Método iterativo de Jacobi (I)Sea A(0) ∈ Rn×n una matriz simétrica y G(i, j, θ) una rotación de Givens.Entonces A(1) =G>A(0)G es una matriz simétrica similar a A(0). Además,tenemos la siguiente relación entre las entradas de las matrices:
A(1)ii = c2A
(0)ii − 2scA
(0)ij + s2A
(0)jj
A(1)jj = s2A
(0)ii + 2scA
(0)ij + c2A
(0)jj
A(1)ij = (c2 − s2)A
(0)ij + sc(A
(0)ii − A
(0)jj )
A(1)ik = cA
(0)ik − sA
(0)jk k 6= i, j
A(1)ij = sA
(0)ik +A
(0)jk k 6= i, j
A(1)kl = A
(0)kl k, l 6= i, j
Escogemos θ de modo que A(1)ij = A
(1)ji = 0. Entonces
tan2θ =2A
(0)ij
A(0)jj − A
(0)ii
Joaquín Peña (CIMAT) Métodos Numéricos (MAT–251) 03.10.2011 15 / 16
Método iterativo de Jacobi (II)
• El proceso se repite de forma iterativa definiendo A(k+1) =G>A(k)G.
• En cada iteración, para definir los índices i y j, lo ideal es escoger elelemento A
(k)ij de mayor magnitud para acelerar el proceso.
• En la práctica se van revisando cada elemento fuera de la diagonal, y sies mejor que cierta tolerancia, se aplica el proceso anterior para hacerlocero.
• Se tienen que dar varios ’barridos’ a la matriz porque el procesoiterativo no preserva los ceros que previamente se han creado.
Al final se obtiene una matriz A(k) que es diagonal y los elementos en ellacorresponden a los eigenvalores de la matriz original.
Joaquín Peña (CIMAT) Métodos Numéricos (MAT–251) 03.10.2011 16 / 16