clase no. 13: factorización qr método iterativo de...

26
Clase No. 13: Factorización QR Método iterativo de Jacobi MAT–251 Dr. Alonso Ramírez Manzanares CIMAT A.C. e-mail: alram@ cimat.mx web: http://www.cimat.mx/salram/met_num/ Dr. Joaquín Peña Acevedo CIMAT A.C. e-mail: joaquin@ cimat.mx Joaquín Peña (CIMAT) Métodos Numéricos (MAT–251) 23.09.2015 1 / 24

Upload: lelien

Post on 20-Oct-2018

234 views

Category:

Documents


0 download

TRANSCRIPT

Clase No. 13:

Factorización QRMétodo iterativo de Jacobi

MAT–251 Dr. Alonso Ramírez ManzanaresCIMAT A.C.e-mail: [email protected]: http://www.cimat.mx/salram/met_num/

Dr. Joaquín Peña AcevedoCIMAT A.C.e-mail: [email protected]

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