clase no. 13: factorización qr - cimat.mxjoaquin/mn11/clase13.pdf · problemas de mínimos...

18
Clase No. 13: Factorización QR MAT–251 Joaquín Peña (CIMAT) Métodos Numéricos (MAT–251) 03.10.2011 1 / 16

Upload: lydieu

Post on 28-Sep-2018

224 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Clase No. 13: Factorización QR - cimat.mxjoaquin/mn11/clase13.pdf · problemas de mínimos cuadrados y problemas de eigenvalores. Las maneras más comunes de calcular la factorización

Clase No. 13:

Factorización QRMAT–251

Joaquín Peña (CIMAT) Métodos Numéricos (MAT–251) 03.10.2011 1 / 16

Page 2: Clase No. 13: Factorización QR - cimat.mxjoaquin/mn11/clase13.pdf · problemas de mínimos cuadrados y problemas de eigenvalores. Las maneras más comunes de calcular la factorización

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

Page 3: Clase No. 13: Factorización QR - cimat.mxjoaquin/mn11/clase13.pdf · problemas de mínimos cuadrados y problemas de eigenvalores. Las maneras más comunes de calcular la factorización

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

Page 4: Clase No. 13: Factorización QR - cimat.mxjoaquin/mn11/clase13.pdf · problemas de mínimos cuadrados y problemas de eigenvalores. Las maneras más comunes de calcular la factorización

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

Page 5: Clase No. 13: Factorización QR - cimat.mxjoaquin/mn11/clase13.pdf · problemas de mínimos cuadrados y problemas de eigenvalores. Las maneras más comunes de calcular la factorización

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

Page 6: Clase No. 13: Factorización QR - cimat.mxjoaquin/mn11/clase13.pdf · problemas de mínimos cuadrados y problemas de eigenvalores. Las maneras más comunes de calcular la factorización

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

Page 7: Clase No. 13: Factorización QR - cimat.mxjoaquin/mn11/clase13.pdf · problemas de mínimos cuadrados y problemas de eigenvalores. Las maneras más comunes de calcular la factorización

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

Page 8: Clase No. 13: Factorización QR - cimat.mxjoaquin/mn11/clase13.pdf · problemas de mínimos cuadrados y problemas de eigenvalores. Las maneras más comunes de calcular la factorización

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

Page 9: Clase No. 13: Factorización QR - cimat.mxjoaquin/mn11/clase13.pdf · problemas de mínimos cuadrados y problemas de eigenvalores. Las maneras más comunes de calcular la factorización

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

Page 10: Clase No. 13: Factorización QR - cimat.mxjoaquin/mn11/clase13.pdf · problemas de mínimos cuadrados y problemas de eigenvalores. Las maneras más comunes de calcular la factorización

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

Page 11: Clase No. 13: Factorización QR - cimat.mxjoaquin/mn11/clase13.pdf · problemas de mínimos cuadrados y problemas de eigenvalores. Las maneras más comunes de calcular la factorización

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

Page 12: Clase No. 13: Factorización QR - cimat.mxjoaquin/mn11/clase13.pdf · problemas de mínimos cuadrados y problemas de eigenvalores. Las maneras más comunes de calcular la factorización

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

Page 13: Clase No. 13: Factorización QR - cimat.mxjoaquin/mn11/clase13.pdf · problemas de mínimos cuadrados y problemas de eigenvalores. Las maneras más comunes de calcular la factorización

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

Page 14: Clase No. 13: Factorización QR - cimat.mxjoaquin/mn11/clase13.pdf · problemas de mínimos cuadrados y problemas de eigenvalores. Las maneras más comunes de calcular la factorización

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

Page 15: Clase No. 13: Factorización QR - cimat.mxjoaquin/mn11/clase13.pdf · problemas de mínimos cuadrados y problemas de eigenvalores. Las maneras más comunes de calcular la factorización

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

Page 16: Clase No. 13: Factorización QR - cimat.mxjoaquin/mn11/clase13.pdf · problemas de mínimos cuadrados y problemas de eigenvalores. Las maneras más comunes de calcular la factorización

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

Page 17: Clase No. 13: Factorización QR - cimat.mxjoaquin/mn11/clase13.pdf · problemas de mínimos cuadrados y problemas de eigenvalores. Las maneras más comunes de calcular la factorización

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

Page 18: Clase No. 13: Factorización QR - cimat.mxjoaquin/mn11/clase13.pdf · problemas de mínimos cuadrados y problemas de eigenvalores. Las maneras más comunes de calcular la factorización

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