clase no. 13: factorización qr método iterativo de...
Post on 20-Oct-2018
235 Views
Preview:
TRANSCRIPT
Clase No. 13:
Factorización QRMétodo iterativo de Jacobi
MAT–251 Dr. Alonso Ramírez ManzanaresCIMAT A.C.e-mail: alram@cimat.mxweb: http://www.cimat.mx/salram/met_num/
Dr. Joaquín Peña AcevedoCIMAT A.C.e-mail: joaquin@cimat.mx
Joaquín Peña (CIMAT) Métodos Numéricos (MAT–251) 23.09.2015 1 / 24
Ajuste de una recta (I)
Tenemos un conjunto de puntos {xi}mi=1, con xi = (xi,yi)>. El modeloy = ax+ b no sirve para el siguiente conjunto de datos.
0.0 0.5 1.0 1.5 2.0 2.5 3.0
−1
01
23
X
Y
●●
●
●
●
●
●
●●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
● ●
●
●
●
●
Joaquín Peña (CIMAT) Métodos Numéricos (MAT–251) 23.09.2015 2 / 24
Ajuste de una recta (II)
Usamos la siguiente formulación:Sea x = (x, y)> el centroide de los puntos,
x =1
m
m∑
i=1
xi, y =1
m
m∑
i=1
yi.
0.0 0.5 1.0 1.5 2.0 2.5 3.0
−1
01
23
X
Y ●
●
●
●
●
●
●
●
●
●
●
●
● ●
●
●
●
●
●
●●
●
●
●
●
●
●
●
●
●
●
●
●●
●
●
●
●
●
Joaquín Peña (CIMAT) Métodos Numéricos (MAT–251) 23.09.2015 3 / 24
Ajuste de una recta (III)
Idealmente x debería estar sobre la recta que vamos a ajustar, de modoque si x es otro punto sobre la recta, se debe tener que
n>(x − x) = 0.
Como los datos no están sobre una recta, debemos tener
εi = (xi − x)>n = [xi − x yi − y ]n i = 1, ...,m.
Si definimos
ε =
ε1...εm
=
x1 − x y1 − y...
...xm − x ym − y
n = An
Entonces queremos minimizar
minm∑
i=1
ε2i
= ‖ε‖2 = ε>ε = n>A>An
Note que
Joaquín Peña (CIMAT) Métodos Numéricos (MAT–251) 23.09.2015 4 / 24
Ajuste de una recta (IV)
La matriz A>A es semidefinida positiva.
Falta agregar una condición al problema. Así como está planteado elproblema, el vector n = 0 es solución.
Pedimos que, por ejemplo, ‖n‖ = 1. Esto equivale a pedir que n>n = 1.Entonces el problema que queremos resolver es
minn
n>A>An sujeto a n>n = 1.
Para resolverlo, construimos la función Lagrangiana
L(n, λ) = n>A>An− λ(n>n− 1).
Calculamos su gradiente e igualamos a cero:
2A>An− 2λn = 0 =⇒ A>An = λn
Esto es, la solución es un eigenvector de la matriz A>A.Si sustituimos en la función de error tenemos
n>A>An = n>(λn) = λn>n = λ
Joaquín Peña (CIMAT) Métodos Numéricos (MAT–251) 23.09.2015 5 / 24
Ajuste de una recta (V)
Por lo tanto, el error mínimo se obtiene si elegimos n como el eigenvectorasociado al eigenvalor más pequeño.
Para cada conjunto de datos, se obtienen los resultados siguientes:
0.0 0.5 1.0 1.5 2.0 2.5 3.0
−1
01
23
X
Y
●
●
●●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
Eigenvalores:λ1 = 60.12211, λ2 = 0.04711
Eigenvectores
v1 =
�
−0.00340390.9999942
�
, v2 =
�
0.99999420.0034039
�
Joaquín Peña (CIMAT) Métodos Numéricos (MAT–251) 23.09.2015 6 / 24
Ajuste de una recta (VI)
0.0 0.5 1.0 1.5 2.0 2.5 3.0
−1
01
23
X
Y
●
●
●
●
●
●
●
●
●
●
●
●
●
● ● ●
●
●
●
●
●
●
●
●
●
●
●
● ●
●
●
●
●
●
●
●
●
●
●
●
●
n
Eigenvalores:λ1 = 57.6336, λ2 = 0.0704
Eigenvectores
v1 =
�
−0.83345−0.55258
�
, v2 =
�
0.55258−0.83345
�
Joaquín Peña (CIMAT) Métodos Numéricos (MAT–251) 23.09.2015 7 / 24
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) 23.09.2015 8 / 24
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 calculamosP tal que Px = y?
x
Pxv
span(v)⊥
Joaquín Peña (CIMAT) Métodos Numéricos (MAT–251) 23.09.2015 9 / 24
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) 23.09.2015 10 / 24
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) 23.09.2015 10 / 24
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) 23.09.2015 10 / 24
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)‖xk‖, y
bPk =
�
Ik−1 00 Pk
�
Joaquín Peña (CIMAT) Métodos Numéricos (MAT–251) 23.09.2015 11 / 24
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
PkAk = (I− βvv>)Ak = Ak − βv(v>Ak),
con β = 2/v>v.
• Definimos Q = bP1bP2 · · · bPn.
• Es mejor hacer el cálculo de Q multiplicando 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) 23.09.2015 12 / 24
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 · · · 0 0 0 · · · 0...
.. ....
......
......
......
0 · · · 1 0 0 · · · 0 0 0 · · · 00 · · · 0 c 0 · · · 0 s 0 · · · 00 · · · 0 0 1 · · · 0 0 0 · · · 0...
......
. . ....
......
...0 · · · 0 0 0 · · · 1 0 0 · · · 00 · · · 0 −s 0 · · · 0 c 0 · · · 00 · · · 0 0 0 · · · 0 0 1 · · · 0...
......
......
......
. . ....
0 · · · 0 0 0 · · · 0 0 0 · · · 1
Joaquín Peña (CIMAT) Métodos Numéricos (MAT–251) 23.09.2015 13 / 24
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
r
x2i + x2
j
, c =xi
r
x2i + x2
j
Las rotaciones de Givens son usadas para crear ceros, uno a la vez. Lasiguiente figura ilustra el proceso.
A =
× × ×× × ×× × ×× × ×
ÒG41→
× × ×× × ×× × ×0 × ×
ÒG31→
× × ×× × ×0 × ×0 × ×
ÒG21→
× × ×0 × ×0 × ×0 × ×
Joaquín Peña (CIMAT) Métodos Numéricos (MAT–251) 23.09.2015 14 / 24
Rotaciones de Givens (III)
ÒG42→
× × ×0 × ×0 × ×0 0 ×
ÒG32→
× × ×0 × ×0 0 ×0 0 ×
ÒG43→
× × ×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 GkG>k
= 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) 23.09.2015 15 / 24
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‖2vi 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) 23.09.2015 16 / 24
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>iqk = 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) 23.09.2015 17 / 24
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 elresidual es ‖Ax − b‖22 = ‖d‖22.
Joaquín Peña (CIMAT) Métodos Numéricos (MAT–251) 23.09.2015 18 / 24
Ejemplo de mínimos cuadrados usando QR (I)Resolver
min ‖Ax − b‖22con
A =
0.2113249 −1.90485810.7560439 0.88514280.0002211 −2.9431750.3303271 −1.23489960.6653811 0.1974177
, b =
−1.90485810.8851428−2.943175−1.23489960.1974177
Tenemos que
R =
−1.0807907 0.00976200. −3.82597660. 0.0. 0.0. 0.
,
Q =
−0.1955280 0.4973761 −0.6042285 −0.4586354 −0.3727563−0.6995285 −0.2331357 0.4156287 −0.0735232 −0.5274039−0.0002046 0.7692606 0.6117283 −0.0984024 0.1560242−0.3056347 0.3219873 −0.2527939 0.8578450 −0.0557570−0.6156429 −0.0531701 −0.1550624 −0.1966390 0.7452822
Joaquín Peña (CIMAT) Métodos Numéricos (MAT–251) 23.09.2015 19 / 24
Ejemplo de mínimos cuadrados usando QR(II)
Entonces hay que resolver el sistema
�
−1.0807907 0.00976200. −3.8259766
�
x = c
donde c son las dos primeras componentes del vector
Q>b =
0.0097620−3.8259766
1.086× 10−15
2.082× 10−17
−7.216× 10−16
Joaquín Peña (CIMAT) Métodos Numéricos (MAT–251) 23.09.2015 20 / 24
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 eigenval-ores 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 6= j;
para alguna tolerancia dada τ.
Joaquín Peña (CIMAT) Métodos Numéricos (MAT–251) 23.09.2015 21 / 24
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) 23.09.2015 22 / 24
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) 23.09.2015 23 / 24
Método iterativo de Jacobi (II)
• El proceso se repite de forma iterativa definiendo A(k+1) = G>A(k)G.
• Lo ideal es escoger el elemento A(0)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) 23.09.2015 24 / 24
top related