Subido por Luis Diego León Luna

AjusteMinimosFactorizacionQR

Anuncio
Notas Análisis Numérico
César Carreón Otañez
9 de Noviembre de 2022
Índice general
1. Mı́nimos Cuadrados
1.1. Ecuaciones Normales. . . . . . . . . . . . . . . . . . . .
1.1.1. Condición del Problema de Mı́nimos Cuadrados .
1.2. Métodos de Ortogonalización . . . . . . . . . . . . . . .
1.2.1. Factorización Householder . . . . . . . . . . . .
1.2.2. Rotación de Givens . . . . . . . . . . . . . . . . .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
5
6
11
13
16
25
4
Cuadrados
Capı́tulo 1
Mı́nimos Cuadrados
Objetivo: Resolver Ax̄ = b̄ con A ∈ Mm×n .
Ejemplo 1. Sea Ax̄ = b̄ dado

1
0

0

−1

−1
0
por
0
1
0
1
0
−1

 
0
−2
  1
0
 x1
 
 
1
 x2  = −1

3
0
 
x3

1
1
1
−2
Anteriormente cuando A era una matriz cuadrada y no singular entonces
la expresión Ax̄ = b̄ implica que b̄ ∈ span(A), es decir, el vector b̄ se puede
expresar como combinación lineal de las columnas de A. Gráficamente se ve
como lo muestra la Figura 1.1.
Cuando A es de tamaño m × n con m > n se tiene dos casos, uno el mostrado anteriormente cuando b̄ ∈ Rm pertenece al span(A), es decir es combinación
lineal de las columnas de A. En el Ejemplo 1 se puede ver que para el vector
x̄ = [−2, 1, −1]t se tiene Ax̄ = b̄, es decir, b̄ ∈ span(A).
El segundo caso, cuando b̄ ∈
/ span(A), la Figura 1.2 muestra la idea geométrica y para el Ejemplo 1, si x̄ = [−2, 1/4, −1/4]t, Ax̄ 6= b̄, el objetivo aquı́ es hallar
ȳ ∈ span(A) tal que kȳ − b̄k sea el valor mı́nimo.
Veamos el siguiente ejemplo para motivar el problema a resolver con una
serie de datos:
Ejemplo 2. Supóngamos tenemos una colección de datos (ti , yi ), mostrados
en la Figura 1.3 por los puntos y deseamos hallar la parábola que mejor se le
aproxima.
La ecuación de una cuadratica está dada por:
φ(t) = x1 + x2 t + x3 t2
6
Cuadrados
Span(A)
b̄ = Ax̄
Figura 1.1: span(A)
la pregunta es: ¿quiénes son los x1 , x2 , x3 tal que φ se aproxime lo mejor a
los datos mostrados?. Para ello se plantea el siguiente sistema de ecuaciones
φ(ti ) = yi :
x1 + x2 t1 + x3 t21 = y1
x1 + x2 t2 + x3 t22 = y2
.. ..
.=.
x1 + x2 tm + x3 t2m = ym
de forma matricial Ax̄ = b̄

1 t1
1 t2

1 t3

 ..
..
.
.
1
tm

 
t21
y1
  y 
t22 
 x1
 2
 
t23 


 x2 =  y3 
 .. 
..  x
 . 
.  3
t2m
ym
Al “resolver” el sistema, ya sea que tenga solución exacta o no, tendremos
los valores xi para expresar φ(t).
1.1.
Ecuaciones Normales.
Vamos a suponer b̄ ∈
/ span(A), de estarlo se tiene la solución exacta del
sistema Ax̄ = b̄ y no hay nada que hacer. En la mayorı́a de los casos vamos
suponer lo primero.
7
Mı́nimos
b̄
Span(A)
ȳ
Figura 1.2: span(A)
Construyamos la función
Φ(ȳ) = kȳ − b̄k
la cual deseamos minimizar como función de ȳ, la Figura 1.4 muestra la idea.
Recordatorio. Cuando queremos hallar el mı́nimo de una función real, dı́gamos φ(t) = a + bt + ct2 se procede, derivando e igualar a cero para encontrar el
punto critico,
φ(t) = a + bt + ct2
φ′ (t) = b + 2ct
φ′ (t) = 0
b
t=−
2c
Además si φ′′ (t) > 0 tenemos un mı́nimo en el punto critico.
Sabemos que si ȳ ∈ span(A) ⇒ ∃ x̄ ∈ Rn tal que ȳ = Ax̄, haciendo el
cambio de variable (ȳ = Ax̄) tenemos
Φ(x̄) = Aȳ
ası́, queremos minimizar Φ(x̄) = kb̄ − Ax̄k, aplicando las mismas ideas, derivar
e igual a cero (en varias variables).
8
Cuadrados
b
b
b
b
b
b
b
b
b
Figura 1.3: Interpolación de datos por una Parábola.
Φ(x̄) = kb̄ − Ax̄k22 = (b̄ − Ax̄)t (b̄ − Ax̄)
= (b̄t − x̄t At )(b̄ − Ax̄)
= b̄t b̄ − b̄t Ax̄ − x̄t At b̄ + x̄t At Ax̄
(1.1)
veamos con detalle los elementos lineales
b̄t Ax̄ = ((b̄t Ax̄)t )t
= ((Ax̄)t b̄)t
= (x̄t At b̄)t
si observamos b̄t Ax̄, x̄t At b̄ ∈ R, recordando el hecho siguiente: si a ∈ R ⇒ a =
at , ∀ a, ası́ tenemos la igualdad deseada
b̄t Ax̄ = x̄t At b̄
la ecuación (1.1) se simplifica en
Φ(x̄) = b̄t b̄ − 2x̄t At b̄ + x̄t At Ax̄ con x̄ = (x1 , x2 , · · · , xn )
Recordatorio. Gradiente Si f : U ⊂ Rn → R, la derivada de f es el gradiente, dada por
∂f
∂f ∂f
∇Φ(x̄) =
,
,··· ,
∂x1 ∂x2
∂xn
9
Mı́nimos
kȳ − b̄k
b̄
ȳ
Span(A)
Figura 1.4: Minimizar la función Φ(ȳ).
Igualando la derivada a cero
∇Φ(x̄) = 2At Ax̄ − 2At b̄ = 0̄
al reacomodar los términos tenemos las ecuaciones normales
At Ax̄ = At b̄
(1.2)
Siguiendo el proceso de hallar el mı́nimo de la función calculamos la derivada
de segundo orden, dada por la matriz Hessiana
∇2 Φ(x̄) = 2At A
¿cómo pedimos positividad en matrices?, el equivalente es precisamente le concepto de ser definida positiva.
Ejemplo 3. Sea Ax̄ = b̄ dado por
 


1
1 0 −1
0 −1 x1
 


1 0  x2 =  0 
2
0 1
calculando
1
At A =
0
0 1
−1 0

1
0 
0
1 1
0

0
−1
= 2
0
0
1
0
2
10
Cuadrados
y
At b̄ =
1 0
0 −1

1

1 0 
−1 = 1
0 1 0
3
2

Las ecuaciones normales (1.2) están dadas por
2
0
1
x1 =
1
0 x1
2
=
⇒
3
2 x2
3
x2 =
2
(1.3)
Buscando Ax̄ = ȳ

1
0

1
0
1
2
  


1
0
 3


−
−1
2 =  2



 
0 3
 1


1
 2
2


3
2

Ahora, sabemos por el planteamiento del problema que ȳ es el vector en
span(A) que minimiza la distancia a b̄. Verifiquemos



  
1/2
1/2
1
 1/2 
−1 3/2



 
(1.4)
kb̄ − ȳk = 
 0  − 1/2 = −1/2 = 1
1/2
3/2
2
Para asegurar que sea factible el problema, se tiene el siguiente resultado
que nos garantiza bajo qué condiciones existe la solución, antes veamos cómo
calcular el rango de una matriz que no es cuadrada.
Definición. Sea A ∈ Mm×n con m > n, se define el rango de A como el
número de columnas linealmente independientes.
Ejemplo 4. Sea A dada como se muestra

1
0
0
1

0
0

−1 1

−1 0
0 −1
a continuación:

0
0

1

0

1
1
un método práctico para verificar si tiene rango completo es diagonalizarla, al
final de proceso el número de columnas distintas de cero será el rango de la
11
Mı́nimos
matriz.

1
0
0
1

0
0

−1 1

−1 0
0 −1
 
0
1 0
0 1
0
 

1
 ≈ 0 0

0 
0 1
1 0 0
1
0 −1
 
0
1
0
0
 

1
 ≈ 0

0 
0
1 0
1
0
0
1
0
0
0
0
 
0
1
0
0
 

1
 ≈ 0

0 
0
1 0
1
0
0
1
0
0
0
0

0
0

1

0

0
0
Proposición 1. Sea A ∈ Mm×n con m > n, tal que Rango(A) = n, es decir,
de rango completo, entonces la matriz At A es definida positiva.
Demostración. Sea x̄t At Ax̄ para x̄ 6= 0̄, ahora
x̄t At Ax̄ = kAx̄k22 ≥ 0
de lo que se tiene dos opciones, kAx̄k22 > 0 o kAx̄k22 = 0, veamos que la segunda
opción no puede ser, ya que de ser cierta se tendrı́a kAx̄k22 = 0 por ser norma
Ax̄ = 0̄, ya que A es de rango completo se tiene x̄ = 0̄ pero x̄ 6= 0̄ por hipótesis.
Se tiene que cumplir kAx̄k22 > 0 ⇒ x̄t At Ax̄ > 0 con x̄ 6= 0. Por lo tanto
t
A A es definida positiva.
Observemos que también se tiene que la matriz At A cumple con ser simétrica.
Proposición 2. Sea At A con A ∈ Mm×n , m > n , entonces At A es simétrica.
Demostración. Sea B = At A, tenemos que B t = (At A)t = At (At )t = At A,
ası́ B = B t , es decir At A es simétrica.
Con el último teorema tenemos las condiciones necesarias para resolver el
sistema de las Ecuaciones Normales, las cuales tienen solución si Rango(A) = n,
además de ser At A definida positiva con lo que se puede aplicar la factorización
de Cholesky.
Entre los resultados que se probaron implı́citamente esta que el sistema en
1.2 tiene solución siempre y cuando el rango de A sea completo.
1.1.1.
Condición del Problema de Mı́nimos Cuadrados
Si A es de rango completo implica que la matriz At A es no singular, se define
la seudo inversa de A como
A+ = (At A)−1 At
∞.
Definimos Cond(A) = kAk2 kA+ k2 , si Rango(A) < n tenemos que Cond(A) =
12
Cuadrados
La condición de una matriz A mide “lo cerca que se está de tener un rango
deficiente”.
Dado el problema de hallar x̄ ∈ span(A) tal que minimice la distancia a b̄,
geométricamente podemos pensar, tomando θ como el ángulo que forman b̄ y ȳ,
si θ ≈ 0 el vector b̄ está cerca de span(A), es decir, se tiene un problema bien
condicionado.
De tener θ ≈ π/2, el vector b̄ “está lejos” de span(A), se tendrı́a un problema
mal condicionado. La Figura 1.5 muestra la idea geométrica.
kȳ − b̄k = krk
b̄
θ
ȳ = Ax̄
Span(A)
Figura 1.5: Ángulo formado entre kb̄k y kȳk.
Sea el sistema de ecuaciones normales dado por
At Ax̄ = At b̄
luego de calcular una solución para el sistema dada por x̃ se tiene a su vez b̃ las
cuales cumplen
At Ax̃ = At b̃
restando ambos sistemas
At A(x̃ − x̄) = At (b̃ − b̄)
At A(∆x̄) = At (∆b̄) multiplicando por (At A)−1
∆x̄ = (At A)−1 At ∆b̄
∆x̄ = A+ ∆b̄
k∆x̄k ≤ kA+ kk∆b̄k
k∆x̄k
k∆b̄k
≤ kA+ k
kx̄k
kx̄k
multiplicando por 1/kx̄k
13
Mı́nimos
el termino de la izquierda es el error en x̄, del lado derecho se multiplica por un
1 se tiene
k∆b̄k
k∆x̄k
≤ kA+ kkAk
kx̄k
kAkkx̄k
k∆x̄k
kb̄k k∆b̄k
≤ Cond(A)
kx̄k
kAkkx̄k kb̄k
(1.5)
Si observamos la Figura 1.5 podemos tomar a b̄ como la hipotenusa del
triángulo que se forma y a ȳ como el cateto adyacente, por las identidades
trigonométricas el coseno del ángulo que forman está dado por
kȳk2
= cos(θ)
kb̄k2
sustituyendo ȳ
cos(θ) =
kAx̄k2
kAkkx̄k2
≤
kb̄k2
kb̄k2
en la ecuación 1.5 se tiene el recı́proco del coseno, dando la desigualdad siguiente
1 k∆b̄k
k∆x̄k
≤ Cond(A)
kx̄k
cos(θ) kb̄k
en notación de los errores
Error(x̄) ≤ Cond(A)
1
Error(b̄)
cos(θ)
El inverso del coseno muestra que cuando el ángulo tiene a π/2 éste a infinito,
por lo que la condición del problema lo vuelve inestable.
1.2.
Métodos de Ortogonalización
Repitiendo las estrategias usadas cuando las matrices eran cuadradas para
encontrar la solución del sistema Ax̄ = b̄, podemos intentar el procedimiento,
véamos el siguiente ejemplo:
Ejemplo 5. Sea Ax̄ = b̄ con
Si diagonalizamos

1
0
A=
1
0

0
−1
:
0
1

1
−1

b̄ = 
0
2

14
Cuadrados
   
1 0
1
1 0 0
0 −1 −1  0 1 0
   

1 0  :  0  ∼ −1 0 1
0 1
2
0 0 0
 


1
1 0 0 0 1 0
0 1 0 0 0 −1 0
:


0 0 1 0 0 0  0
0
0 1 0 1 0 1

 

1 0
0 1 0
0 −1  0 1
0
:

0 1 0  −1 0
0 0
1 0 1
  
1
1
0 0 0
  
1 0 0
 −1 ∼ 0
0 1 0 −1 0
0
2
1 0 1
Trabajando con el sistema resultante

 

1 0 1
′
0 −1 x′1
 

 ′ = −1 ⇒ x′1 = 1
0 0  x2
−1
x2 = 1
0 0
1
Veamos que resultado nos da

1
0

1
0
Calculemos la distancia a b̄

 
1
0
−1
0
  ∼
0  0 
2
1
  
1
0
 
−1
 : −1
0  −1
1
0
0
0
1
0
Ax̄′ = ȳ ′
 

0 1
−1
1
−1


=
1
0 1
1
1
  
 
1
1
0
√
−1 −1
0
′
  
 
kȳ − b̄k = 
 1 − 0  =  1  = 2
1
2
−1
Lo cual es más grande lo obtenido en la ecuación 1.4. Ya que el sistema de
ecuaciones normales nos da la solución al problema de mı́nimos cuadrados.
Entre las cosas que ocurren a partir de la trinagulación de la matriz A por
una matrix M es que no se cumple necesariamente la conservación de la norma,
es decir,
Ax̄ = b̄ ⇒ M Ax̄ = M b̄
tomando R = M A matriz triangular superior se llega a
Rx̄ = M b̄
pero no necesariamente ocurre
kM b̄k = kb̄k
de hecho en la mayorı́a de los casos pasa lo opuesto. Vamos trabajar con transformaciones que preserven la norma para garantizar hallar el mı́nimo.
El método de las ecuaciones normales involucra la solución de un sistema
a resolver que se puede evitar utilizando una clase de matrices que conservan
norma y que tienen norma uno. Utilizaremos una reflexión y una rotación.
15
Mı́nimos
Definición. Sea Q ∈ Mn×n (R), se dice que Q es ortogonal si sus columnas
son ortogonales, es decir,
QQt = I
Proposición 3. Una matriz ortogonal preserva la norma:
kQb̄k22 = (Qb̄)t (Qb̄)
= b̄t Qt Qb̄
= b̄t b̄
= kb̄k22
Ejemplo 6. Sea Q reflexión dada por
−1 0
Q=
0 −1
ası́
Q
3
−1 0
3
−3
=
=
4
0 −1 4
−4
Ejemplo 7. Si a Q la vemos como sigue
cos(θ) − sin(θ)
Q=
sin(θ) cos(θ)
una matriz de rotación con θ el ángulo a rotar, ésta tiene norma uno y es
ortogonal.
Definición. Sea R ∈ Mm×n , con m > n una matriz, R es triangular superior
si
rij = 0, i > j
ası́

r11
0

 ..
 .

R=
0
0

 .
 ..
0
r12
r22
..
.
···
···
..
.
0
0
..
.
···
···
..
.
0
···

r1n
r2n 

.. 
. 

unn 

0 

.. 
. 
0
Ahora nos enfocaremos a buscar factorizaciones de la forma
A = QR
con Q ortogonal y R triangular superior.
16
Cuadrados
1.2.1.
Factorización Householder
La transformación de Householder está dada por
H =I −2
νν t
νtν
para ν 6= 0.
Propiedades:
1. H = H t
Demostración.
νν t
H = I − 2 t ⇒ Ht =
ν ν
νν t
I −2 t
ν ν
t
=I −2
νν t
νtν
2. H = H −1
Demostración.
νν t
νν t
HH = I − 2 t
I −2 t
ν ν
ν ν
t
t
t
νν νν
νν
=I −4 t +4 t t
ν ν
ν νν ν
νν t
νtν νt
= I − 4 t + 4ν t t
ν ν
ν νν ν
νν t
νν t
=I −4 t +4 t
ν ν
ν ν
=I
t
Dada H y ā ∈ Rn deseamos hallar ν tal que
 
α
0
 
Hā =  . 
 .. 
0
en otras palabras, ν ∈ Rn tiene que ser tal que anule todas las componentes
debajo de la primera entrada de ā y tal que conserve la norma. Primero encontremos una expresión para ν,
 
 
1
α
0
0
 
 
Hā =  .  = α  .  = αe1
 .. 
 .. 
0
0
17
Mı́nimos
partiendo de esta igualdad sustituyamos el valor de H,
αe1 = Hā
νν t
ā
= I −2 t
ν ν
νν t
= ā − 2 t ā
ν ν
ν t ā
= ā − 2ν t
ν ν
ν t ā
2ν t = ā − αe1 teniendo el escalar
ν ν
νtν
ν = t (ā − αe1 )
2ν ā
ν t ā
νtν
si sustituimos el valor de ν en H, tenemos
t
t
H =I − 2
H =I − 2
ν ν
ν ν
t
( 2ν
t ā (ā − αe1 ))( 2ν t ā (ā − αe1 ))
t
t
ν ν
t ν ν
( 2ν
t ā (ā − αe1 )) ( 2ν t ā (ā − αe1 ))
(ā − αe1 )(ā − αe1 )t
(ā − αe1 )t (ā − αe1 )
ya que el escalar se cancela, nos basta tomar
ν = ā − αe1
Como se queremos que se conserve la norma del vector ā bajo H, tenemos
que pedir
kHāk = kāk ⇒ kαe1 k = kāk ⇒ |α| = kāk
en otras palabras
α=
(
−
kāk si a1 < 0;
kāk si a1 > 0.
el signo de α lo elegiremos de tal forma que se eviten las restas, para no llegar
a una cancelación numérica.
Ejemplo 8. Sea ā = [2, 1, 2]t, primero calculemos la norma, kāk = 3, ya que
a1 = 2 > 0 se toma α = −3, ası́
     
2
−3
5
ν = ā − αe1 = 1 −  0  = 1
2
0
2
Teniendo ν se puede calcular H y luego realizar Hā
 
5
ν t ν = 5 1 2 1 = 30
2
18
Cuadrados
y

25
νν t =  5
10
se tiene

25 5
νν t
2 
5 1
H =I −2 t =I −
ν ν
30
10 2
Multiplicando Hā

5 10
1 2
2 4
 

10
−2/3 −1/3 −2/3
2  = −1/3 14/15 −2/15
4
−2/3 −2/15 11/15

   
−2/3 −1/3 −2/3
2
−3
Hā = −1/3 14/15 −2/15 1 =  0 
−2/3 −2/15 11/15
2
0
De manera equivalente y más sencillo
Hā = ā − 2ν
con
ν t ā = 5 1
se tiene
ν t ā
νtν
 
2
2 1 = 15
2
   
 
5
2
−3
15    
ν t ā  
1 = 0
Hā = ā − 2ν t = 1 − 2
ν ν
30
2
2
0
Ejemplo 9. Ax̄ = b̄ con


1 0
0 −1

A=
1 0  :
0 1
Tomamos ā1 y |α| = kā1 k =
Buscamos ν = ā1 − (−α)e1
calculamos


1
−1

b̄ = 
0
2
√
2. Como el signo de a11 > 0 elegimos −α.
 
√ 
  
1
1
1+ 2
0 √ 0  0 


  
ν=
1 + 2 0 =  0 
0
0
0
√
νtν = 4 + 2 2
19
Mı́nimos
y
finalmente
√

3+2 2

0√
νν t = 
1+ 2
0

1
0
νν t
H =I −2 t =
0
ν ν
0
simplificando

0 0
0 0
−
1 0
0 1
√

1+√2
− 2+
2

 0√
H =  1+ 2
− √
2+ 2
0
0
1
0
0
 √1
− 2
 0
H1 = 
− √1
2
0
Multiplicando H1 con A
 √1
− 2 0 − √12
 0
1
0
H1 A = 
− √1 0
√1
2
2
0
0
0
√
0 1+ 2
0
0
0
1
0
0

0
0

0
0
√

3+2 2

1
0√
√ 

1
+
2
2+ 2
0
√

1+√2
0 − 2+
0
2

1
0√
0

1+√2
0
0
2+ 2
0
0
1
0
1
0
0
− √12
0
√1
2
0
0
0
0
0
√
1+ 2
0
1
0

0
0

0
1
  √

0 1 0
− 2
0 −1  0
0
=

0 1 0   0
0
1 0 1

0
0

0
0
(1.6)

0
−1

0
1
Para continuar con el algoritmo tomamos el vector ā2 = [−1, 0, 1]t como a2
√
|α2 | = ka2 k = 2
√
y a22 < 0 tomamos α2 = ka2 k = 2.
Buscamos ν2 = ā2 − α2 e1 con e1 ∈ R3 .
 
  
√ 
−1
−(1 + 2)
√ 1

ν2 =  0  − 2 0 = 
0
1
0
1
calculamos
y
√
ν2t ν2 = 4 + 2 2
√
3+2 2
0√
ν2 ν2t = 
−(1 + 2)

0 −(1 +
0
0
0
1
√ 
2)

20
Cuadrados
finalmente
ν2 ν2t
ν2t ν2
√ 
√



0 −(1 + 2)
3+2 2
1 0 0
2

√ 
0
0
0
H2′ = 0 1 0 −
4
+
2 2 −(1 + √2) 0
0 0 1
1
√
√ 



3+2 2
1 0 0
0 −(1 + 2)
1

√ 
0√
0
0
H2′ = 0 1 0 −
2
+
2
0 0 1
−(1 + 2) 0
1
√ 

  3+2√√2
2)
√
0 − (1+
1 0 0
2+ 2
2+ 2


′
0√
0
0
H2 = 0 1 0 − 

2)
1√
0 0 1
√
0
− (1+
2+ 2
2+ 2
√
√ 
√
  (1+√2)

(1+
(1+ 2)
2)
√2
√
√
√
−
1 − 3+2
0
0
2+ 2
2+ 2
2+ 2
  2+ 2


′
0√
1
0
0√
1
0√ 
H2 = 
=
(1+ 2)
(1+ 2)
2)
√
√
√
0 1 − 2+1√2
0 (1+
2+ 2
2+ 2
2+ 2
H2′ = I − 2
simplificando
 √1
− 2
H2′ =  0
0
1
0
√1
2

√1
2
0
√1
2
Encajamos H2′ en una matriz identidad para multiplicar con A y no afectar la
estructura ganada en la anterior multiplicación


1
0
0 0
1
1
0 − √
0 √2 
2

H2 = 
0
0
1 0
0 √12
0 √12
Multiplicando H2 con H1 A

1
0
0 − √1
2
H2 H1 A = 
0
0
√1
0
2
0
0
1
0
 √
− 2
0
0  0
√1
0
2
0
√1  
2 
Hemos triangulado A, resultando en
H2 H1 A = R
donde Q =
H1t H2t ,
calculando Q
 √1
− 2

0
Q = H1t H2t = 
− √1
2
0
⇒
  √
− 2
0
 0
−1
=
0  0
1
0

√0
2

0 
0
A = QR
tenemos
0 − √12
1
0
0 √12
0
0

0 1
0
0

0 0
1 0
0
− √12
0
√1
2
0
0
1
0
0

√1 
2
0
√1
2
21
Mı́nimos
ası́
 1
− √2
 0

Q =  √1
− 2
0
0
− √12
0
√1
2
− √12
0
√1
2
0
0

√1 
2
y
0 
√1
2
 √

− 2 √0
 0
2

R=
 0
0 
0
0
Ya factorizada la matriz A procedemos a resolver el sistema:
⇒ Rx̄ = Qt b̄ = b̄′

 1
 
0
− √12
0 −√2 0 
− √2
1
√
1
1

 0
√

−1
− √2
0
x1

2
2  0




 √1
 x2 =  0 
√1
0
0
0
0

− 2
2
2
√1
√1
0
0
0
0
2
2


 √

0
− √12
0 1
− √12
− 2 √0 1

√1  −1
 0
0
− √2
0
2
2 

 x1 = 
 

 0
√1
0
0
0  x2
 0
− √12
2
1
1
2
√
√
0
0
0
0
QRx̄ = b̄
2
2
′
aplicando sustitución haci atrás resolvemos Rx̄ = b̄
 1 
 √

− √2
− 2 √0 
 0
3 √12 
x1 =

2

 x1 = 

⇒
 0
x2 =
0  x2
− √12 
0
0
√1
1
2
3
2
2
En general, si se desea hacer ceros en un vector de tamaño n debajo de la
k-ésima componente, ν está dado como
ν = ā − αek
con α = − Signo(ak )kāk2 .
Esquemáticamente veamos un ejemplo de una matriz de 5 × 3, dada por


× × ×
× × ×



A=
× × ×
× × ×
× × ×
construimos H1 con la estructura vista tal que haga cero debajo de la entrada
a11


α1 × ×
 0 × ×



H1 A = 
 0 × ×
 0 × ×
0 × ×
22
Cuadrados
una segunda H2 tal que haga cero debajo de a22 ,

α1
 0
1 0 
0
H2 (H1 A) =
0 H′ 
0
0
 
×
α1
0
×
 

×
=0

0
×
×
0
×
×
×
×
×
×
α2
0
0
0

×
×

×

×
×
una última matriz para hacer ceros debajo de a33

1
H3 (H2 H1 A) = 0
0

 α1
0 0 
0
1 0 
0
0 H ′′  0
0
×
α2
0
0
0
 
×
α1
0
×
 

×
=0

0
×
×
0
×
α2
0
0
0

×
×

α3 

0
0
Volviendo al problema Ax̄ = b̄, si se premultiplicar por las matrices Hk para
hacer ceros en la columna k-ésima de A, debajo de la componente akk , se tendrá
H1 Ax̄ = H1 b̄
H2 H1 x̄ = H2 H1 b̄
.. ..
.=.
Hn · · · H1 Ax̄ = Hn · · · H1 b̄
si
R = Hn · · · H1 A
matriz triangular superior y nombrando
Q−1 = Hn · · · H1 ⇒ R = Q−1 A
despejando Q tenemos la descomposición QR dada por
QR = A
con
Q = (Hn · · · H1 )−1
Q = H1−1 · · · Hn−1
ya que cada Hk es ortogonal
Q = H1 · · · H n
para
Hk = I − 2
νk νkt
νkt νk
23
Mı́nimos
Interpretación Geométrica de la Transformación Householder
Sea ν ∈ Rn y H dada por
H =I −2
νν t
νtν
Si tómamos ā ∈ Rn y aplicándole H:
νν t
ā
νtν
ν t ā
= ā − 2ν t
ν ν
= ā − 2λν
Hā = ā − 2
donde
ν t ā
νtν
la proyecci on ortogonal de ā sobre ν. La Figura 1.6 muestra gráficamente la
interpretación.
λ=
ā
ν
λν
Figura 1.6: Proyección Ortogonal de ā sobre ν.
Tomemos b̄ vector simétrico a ā con respecto al espacio que genera ν ⊥ , Figura
1.7 muestra la gráfica. Tenemos lo siguiente:
ā − λν = b̄ + λν
b̄ = ā − 2λν
b̄ = Hā
Es decir, H transforma a ā en el simétrico con respecto al espacio generado
por ν ⊥ .
√
Ejemplo 10. Sea ā = [−1, 2]t , tenemos α = ±kāk = ± 5, ν está dada como:
ν = ā − αe1
24
Cuadrados
ν⊥
ā
b̄
ν
−ν
−λν
λν
Figura 1.7: Proyección Ortogonal de ā sobre ν.
es decir
#
"
√ # "

−3.23
−1 − 5


≈

2
2



√
1
−1
ν=
− (± 5)
"
#
0 
2
√ # "


−1 + 5

1.23


≈

2
2
si + α
si − α
En la Figura 1.8 se muestran los posibles casos.
ν⊥
3
ν
2
ν
ā
1
ν⊥
−3
−2
−1
1
2
Figura 1.8: Ejemplo.
Por último se tiene el Algoritmo 1 para el método de la factorización QR
por la reflexión de Householder.
25
Mı́nimos
Algoritmo 1: Factorización QR Householder
Input: A matriz rectangular.
1 for k = 1 → n do
p
2
αk = − Signo(akk ) a2kk + · · · + a2mk
3
νk = [0, · · · , 0, akk , · · · , amk ]t − αk ek
4
βk = νkt νk
5
if βk = 0 then
6
continuar con la siguiente k
7
for j = k → n do
8
γj = νkt aj
9
aj = aj − (2γj /βk )νk
Output: Matriz Q
1.2.2.
Rotación de Givens
Una matriz de rotación está dada por:
c s
G=
−s c
con c = cos(θ), s = sin(θ), siendo θ en ángulo de rotación.
Sea ā = [a1 , a2 ]t deseamos hallar la transformación tal que rote el vector al
eje de las abscisas, planteando el siguiente sistema
c s a1
α
=
−s c a2
0
vamos a dar una equivalencia para el sistema anterior, para ello observemos que
c
a1 c + a2 s
c s a1
a
a2
=
= 1
a2 −a1 s
−a1 s + a2 c
−s c a2
cambiando el sistema
a1
a2
a2
−a1
c
α
=
s
0
diagonalizando
"
a1
0
a2
a22
− a1 − a 1
despejando s
s=−
# α
c
=
2
− αa
s
a1
αa2
a1
αa2
= 2
2
2
a1 −a2 − a1
a1 + a22
despejando de la ecuación a1 c + a2 s = α a c
c=
αa1
a21 + a22
26
Cuadrados
para encontrar el valor de α
1 =c2 + s2
α2 a21
α2 a22
+
(a21 + a22 )2
(a21 + a22 )2
α2 (a2 + a2 )
= 2 1 2 22
(a1 + a2 )
=
por lo que α =
p
a21 + a22 , ası́ quedan determinados los valores para c y s
a1
c= p 2
,
a1 + a22
a2
s= p 2
a1 + a22
Observando que en todo el proceso no se requiere saber de manera explı́cita
el ángulo θ.
Una forma alternativa del cáculo de c y s es la siguiente, consideremos
tan(θ) =
s
sin(θ)
⇒t=
cos(θ)
c
manipulando algebraicamente
t2 =
1 − c2
1
1
s2
=
= 2 − 1 ⇒ 1 + t2 = 2
2
c
c2
c
c
por lo tanto
c= √
1
1 + t2
con s = c ∗ t
con el motivo de tener estabilidad numérica a la hora de realizar el cociente, es
decir, si |a1 | > |a2 | se tiene
a2
t=
a1
para un vector ā = [a1 , a2 ]t .
Si se cumple |a2 | > |a1 | usamos la otro identidad trigonométrica
cot =
cos(θ)
c
⇒ τ=
sin(θ)
s
ası́,
τ2 =
por lo tanto
c2
1 − s2
1
1
=
= 2 − 1 ⇒ 1 + τ2 = 2
s2
s2
s
s
1
s= √
1 + τ2
con c = s ∗ τ
27
Mı́nimos
Propiedades de G
GGt =
c
−s
s
c
c
s
2
−s
c + s2
=
c
−sc + sc
−sc + sc
1 0
=
s2 + c2
0 1
es decir, G es ortogonal.
En general para un vector ā = Rn la estructura de G es la siguiente:


a1

 
 .. 
1 ···
0 ··· 0 ··· 0
a1


 ..
..
..
..   ..   . 
.




1
.
.
.  .   α 


0 · · ·
   . 
c · · · s · · · 0

  ai   .. 
 ..

..
..
..   ..  = 
.
  

.
1
.
.

  .  aj−1 
0 · · · −s · · · c · · · 0  aj   0 

  

.
 .  aj+1 
..
..
.. 
.


 ..



.
.
1
.
.
 . 
.

. 
0 ···
0 ··· 0 ··· 1 a
n
an
Se hace cero la componente aj tomando como “pivote” la componente ai ,
donde c y s están dadas, por extensión, como:
ai
,
c= q
2
ai + a2j
aj
s= q
2
ai + a2j
Ejemplo 11. Sea el sistema Ax̄ = b̄ dado por:

 

1
1 0
−1
0 −1

 
A=
1 0  : b̄ =  0 
2
0 1
Para la matriz A construiremos G1 rotación de Givens para que con la componente a11 como pivote haga cero en a31 ,ası́:
 √1

0 √12 0
2
 0
1
1
1 0 0

⇒ G1 = 
c= √ ; s= √
1

√
0 √12 0
−
2
2
2
0
0 0 1
haciendo G1 A

√1
2
 0
 1
− √
2
0
0
1
0
0
√1
2
0
√1
2
0

 √
0 1 0
2
0 −1  0
0

=
0 1 0   0
0
1 0 1

0
−1

0
1
28
Cuadrados
Para seguir triangulando la matriz G1 A tomamos la componente (2, 2) como
pivote para hacer cero en la componente (4, 2), ası́ c y s son:


1
0
0
0
√1 
0 − √1 0
1
1
2
2 
c = −√ ; s = √
⇒ G2 = 
0
0
1
0 
2
2
0 − √12 0 − √12
calculando G2 G1 A = R

1
0
0 − √1
2

0
0
0 − √12
0
0
1
0
ası́ tenemos
 √
 √
2
2 0
√1   0
  0
−1
2 
=
0  0
0  0
− √12
0
1
0
0

√0
2

0 
0
G2 G1 A = R ⇒ A = (Gt1 Gt2 )R
tomando (Gt1 Gt2 ) = Q tenemos la factorización buscada
A = QR
1
0
0 − √1
2
Q=
0
0
0 √12

0
0
1
0
0
  √1
2
− √12   0

0   √12
− √12
0
0
1
0
0
  √1
0
2
 0
0

=
0  √12
1
0
− √12
0
√1
2
0
0
− √12
0
√1
2
− √12
0
√1
2
sustituyendo en el sistema QRx̄ = b̄
 1
 √
 

√
0
− √12
0
2 √0 1
2
1
 0 − √1

−1
0
− √2   0
x1

2
2




 √1

 x2 =  0 
√1
0
0
0
0
 2

2
2
0
0
√1
0
0
− √12
2
despejando Rx̄ = Qt b̄
 1

√
√
2 √0 2
 0

 0
x

2
1


=  √1
 0
0  x2
− 2
0
0
0
despejando tenemos
√
2
 0

 0
0
√1
2
0
− √12
0
√1
0
2
0
− √12
 1 

√
√0  √32 



2 x1
=  √21 
0  x2
− 2 
0
− √12
x1 =
1
;
2
x2 =
3
2
0


1
√1  −1
2 


0  0 
2
− √12
0
0

− √12 


0 
− √12
29
Mı́nimos
Ejemplo 12. Sea A la siguiente matriz


1 −1
3 2 



A=
0 0 
0 0 
1 0
utilizar la transformación de Givens para volver A una matriz triangular superior.
En la primera iteración se toma a1 = 1 a2 = 3 por lo que
1
c= √ ,
10
√1
10
− √3

10

G1 A = 
 0
 0
0
√3
10
√1
10
0
0
0
0
0
1
0
0
0
0
0
1
0
3
s= √
10

  √10

√5
0 1 −1
10
10

 
√5 
0
 3 2   0
10 




0 0 0  =  0
0 

0 0 0   0
0 
1 1 0
1
0
√
a1 = 1/ 10, a5 = 1, con
Para la segunda iteración tomamos
r
10
1
c=
, s= √
11
11
q

  √10
 √10
10
√5
0 0 0 √111
10
10
 11

 010
 0

√5 
1 0 0
0 


 0
10 


 0
0
0
1
0
0
G2 G1 A = 
=
0
0  



 0
 0

0
0
1
0
0

0

q 
1
10
0
1
0
√
0 0 0
11
11
√5
10
√5
10
0
0
5
− √11∗10







Para el sistema Ax̄ = b̄, por cada componente que se quiera eliminar se tiene
que multiplicar por una Gi , ası́ luego de p pasos el sistema
Gp · · · G2 G1 Ax̄ = Gp · · · G1 b̄
donde Gp · · · G2 G1 A = R una matriz triangular superior, aplicando sustitución
hacia atrás se puede resolver el sistema. Si nombramos por Q−1 = Gp · · · G2 G1
a la multiplicación de matrices tendrı́amos
Q−1 A = R ⇒ A = QR
es decir, la factorización QR con Q = G1 G2 · · · Gp matriz ortogonal.
30
Cuadrados
Bibliografı́a
[1] Burden, Richard L, J. Douglas Faires. Análisis Numérico. International
Thomson Editores S.A. Sétima Edición, 2002.
[2] Heath, Michael T. Scientific Computing An Introductory Survey. University
of Ilinois at Urbana-Champaign. The McGraw-Hill Companies, 1997.
[3] Kahaner, D. Moler, C. Nash, S. Numerical Methods and Software. Prentice
Hall, Englewood Cliffs, New Jersey 07632, 1989.
[4] Kincaid, David & Cheney, Ward. Numerical Analysis Mathematics of Scientific Computing. The University of Texas Austin,
Brooks/ColePublishing Company, 1991.
[5] Overton, Michael L. Numerical Computing with IEEE Floating Point Arithmetic. Courant Institute of Mathematical Sciences, New York University,
New York, New York, 2001.
Descargar