Tema 2. Algebra Lineal. Eliminación gaussiana, ortonormalización

Anuncio
Tema 2. Algebra Lineal.
Eliminación gaussiana, ortonormalización (Gram-Schmidt) y mı́nimos cuadrados.
Factorizaciones LU y QR.
Valores singulares, dinámica de errores y pivotaje parcial.
Ideas sobre métodos iterativos.
Referencias: [San98], Cap. 10; [Str80], Caps. 1, 3, 7.1
Nota histórica:
En los otros Temas de este programa aparece varias veces el nombre de Newton (1643-1727),
y en efecto la mayorı́a de las ideas clave expuestas en ellos, ya habı́an nacido en el siglo
XVII y se desarrollaron del todo en el XVIII, aunque la presencia de los ordenadores las haya
hecho más potentes y aplicables, y la Teorı́a de Conjuntos haya provocado muchos cambios
en nuestro modo de expresarlas.
En este Tema la historia es distinta: aunque las ideas básicas para resolver ecuaciones lineales
son aún más antiguas, el lenguaje del Algebra Lineal no se consolidó hasta comienzos del siglo
XX, tardó más que otro medio siglo en empezar a ser bagaje común de los cientı́ficos (un
proceso aún incompleto en muchos sentidos), y sólo ese lenguaje, una vez instalado, permitió
entender en profundidad lo que ocurre al resolver un SEL, o en general al calcular con matrices.
A partir de los años 1950, la presencia de los ordenadores (cuya potencia de cálculo ha crecido
en esas décadas por un factor > 109 ) ha hecho nacer en este campo muchas ideas nuevas,
y cambiar la relevancia de las ya conocidas, de modo que el juicio sobre “qué ideas sobre
el cálculo efectivo en Algebra Lineal es esencial entender” ha debido reformarse varias veces
recientemente, y parece que esto seguirá ocurriendo.
1. Producto de matrices y eliminación gaussiana
(Repaso de A.L., y un par de ideas clave.)
• El producto C = BA de dos matrices es la matriz de la composición de las funciones
x → Ax ,
y → By ,
y tiene sus columnas en Im(B) = L{columnas de B} , sus filas en L{filas de A} .
Si llamamos fi a las filas de A , Bi a las columnas!
de B , vistas ambas como matrices, cada producto
Bi fi tiene el tamaño de BA , y se tiene BA = i Bi fi .
• El único modo sensato de resolver un SEL Ax = b (con A ∈ Mm×n ), es decir, de hallar x = A−1 b
dados A, b , es la eliminación gaussiana:
usar operaciones de filas (que son reversibles) para llegar a un SEL triangular equivalente,
que se puede resolver por sustitución regresiva.
La razón es el coste en operaciones para n grande, que se suele medir en2 “f lops” = productos y
cocientes, porque todas las sumas y restas acompañan a un producto o cociente:
≈ n3 /3 f lops para la eliminación,
para una matriz llena.
≈ n2 /2 para la sustitución regresiva,
En comparación, la regla de Cramer y la idea de hallar A−1 usando determinantes, son dos disparates (salvo que los determinantes se calculen usando Gauss, y entonces ¡ya no hacen falta!).
Hará falta permutar filas, si sale un pivote nulo, pero supongamos de momento que eso no pasa.
! 2.1
1 Pero
mejor [Str98], Chap. 2, 4, 6, 9.
usual para floating point operations.
2 Abreviatura
1
2. Gauss como factorización A = LU .
Las operaciones de filas vistas como el resultado de operar por la izquierda con una matriz: todas
las que usan un mismo pivote di = aii se resumen en una sola matriz Mi , que resta a cada fila
k > i un múltiplo de la fila i . En el ejemplo






1 −1 2
1
1
 , M2 = 
,
1
A =  2 3 3  , son M1 =  −2 1
0 2 5
0
1
−0.4 1


1 −1 2
5 −1  .
y el resultado final es una matriz triangular superior: U = M2 M1 A = 
5.4
Observar cómo son las inversas Mi−1 , y por qué el producto L = M1−1 M2−1 es la “superposición”
de sus elementos %= 0 (cada Mi−1 del producto L opera con la fila i de I sobre la columna i , sin
tocar otras); eso no ocurre con M2 M1 , pero sı́ para una A arbitraria y sus correspondientes Mi−1 .
El algoritmo que resulta, y que produce los factores LU (si no sale ningún pivote ukk nulo), es:
Inicio: L = I .
Para k = 1, . . . , m , fila k de U = fila k de A ; y para cada fila i > k ,
•
lik = aik / akk ,
% los multiplicadores forman L
•
aij = aij − lik akj , para cada j > k.
% la fila i de A, modificada
Observaciones:
• El progreso del algoritmo en el paso k = 1 puede verse de este modo:
− toma la fila f1 de A como primera de U , y la columna A1 /a11 como columna L1 ,
− resta a A el producto L1 f1 , que tiene las mismas primera fila y columna que A , y
− recomienza con la matriz B de tamaño n − 1 que resulta al suprimir esas lineas de ceros.
Visto ası́, LU es un algoritmo recursivo, que “ejecuta el paso k = 1 y se llama de nuevo a sı́ mismo”.
• En el caso de una matriz n × n y regular 3 , las dos matrices L, U son cuadradas y triangulares.
El algoritmo trabaja igual con una matriz m × n (a condición de que no salgan “pivotes nulos”): L
es m × m y U es como A ; pero si rango(A) = r < m , las filas fi , i > r de U son ≡ 0 ; en tal caso
!r
LU = i=1 Li fi ,
y las restantes columnas de L y filas de U pueden suprimirse sin que el producto cambie; dicho de
otro modo: si tras el paso k = r se tiene A ≡ 0 bajo la fila r , la factorización ha concluido, y los
factores reducidos son de tamaño m × r , r × n .
! 2.2
PROPOSICION: La factorización A = LU , si existe, es única.
Prueba: La afirmación es que no puede haber otros vectores Li , fi que empiecen por i − 1 ceros
seguidos
!r de un 1 en la columna Li y seguidos de algún ci %= 0 en la fila fi , y que cumplan también
A = i=1 Li fi . (Que exista una tal igualdad implica que el bloque i, j ≤ k de A es regular para
cada k ≤ r , lo que a su vez garantiza que el algoritmo encontrará r pivotes %= 0).
Si para A invertible se tuviesen dos factorizaciones A = L1 U1 = L2 U2 , todas esas matrices serı́an
−1
regulares, y serı́a L−1
= I , debido al LEMA que se da más abajo.
2 L1 = U2 U1
La prueba en el caso general es ası́: como L1 empieza con un 1, f1 es la primera fila de A , y la
igualdad A = LU implica que L1 = A1 /a11 ; esto es !
todo lo que habı́a que probar si r = 1 .
r
Si r > 1 , sea B el bloque i, j > 1 de A − L1 f1 = i=2 Li fi ; si suprimimos en esos Li , fi su 0
inicial, los vectores que resultan dan una factorización LU de B , que es única por recurrencia.
LEMA: La clase de las matrices triangulares superiores es cerrada por productos e inversas; y
lo mismo vale para la de las triangulares inferiores que tengan además diagonal ≡ 1 .
Ser triangular superior equivale a dejar invariante cada subespacio Ek = L{e1 , . . . , ek } , lo que se
transmite a las composiciones e inversas; la clase de las triangulares inferiores es cerrada porque
son traspuestas de las superiores; es fácil ver que también se transmite la diagonal ≡ 1 .
3. Diferencias entre la vida real y los “ejemplos escolares” de SEL:
• en un ejemplo “de la vida real” los coeficientes no tienen por qué ser enteros pequeños, luego no
hay que ir “evitando denominadores”, las operaciones son entre números reales arbitrarios; por eso
no hay desventaja en que la L de A = LU tenga diagonal ≡ 1 .
3 Es
decir, una que tiene rango n ; dicho de otro modo, que es invertible; se las llama también no singulares.
2
• ejemplos de problemas que conducen a SEL muy grandes4 (ver Sección 1.6 de [Str80]); por eso
es tan importante medir el coste en operaciones, y por eso importa sólo el término principal:
≈ n3 /3 f lops para la eliminación, ≈ n2 para la sustitución adelante-y-atrás,
para una matriz llena. A veces las matrices de esos SEL tienen muchos ceros, lo que puede hacer
eficientes métodos que no lo son para una matriz llena (que no tenga esas “zonas de ceros”).
! 2.3
4. Gram-Schmidt, soluciones LS y seudoinversas.
• Orto-normalizar n ≤ m vectores vj de IRm , (algoritmo de Gram-Schmidt):
Sean Kk = L{v1 , . . . , vk }. Inicio: w1 = v1 = |w1 | q1 .
Para k = 2, . . . , n , sean wk = vk − pk = |wk | qk , donde pk es la proyección ortogonal de vk
sobre Kk−1 , que se calcula ası́ 5 :
pk =
& vk · wj
&
wj =
(vk · qj ) qj
wj · wj
j<k
j<k
• La ecuación Ax = b , con m ecuaciones y n incógnitas, no tiene solución si b ∈
/ Im(A) , lo que
puede ocurrir si rango(A) < m , en particular si m > n .
Eso se llama un SEL sobredeterminado, y la “solución” x que suele buscarse entonces es la que
minimiza |Ax − b| . Se la llama solución de mı́nimos cuadrados (least squares, LS), y equivale a:
encontrar x ∈ IRn tal que Ax = πA (b) , con πA = la proyección ortogonal sobre Im(A) ⊂ IRm ,
El ejemplo más simple y de uso más frecuente en toda clase de aplicaciones de las
Matemáticas es el de una recta de regresión: una ecuación y = a0 + a1 x que “aproxime
lo mejor posible” un gran número m de pares de datos xi , yi ; las incógnitas son en ese
caso a0 , a1 ; en el Tema 3 veremos una versión más general de esta misma idea.
Otro ejemplo muy relevante es el siguiente: por razones que se podrán entender tras el
punto 6. de este Tema, una matriz A muy grande suele parecer singular (desde el punto
de vista del calculo con precisión finita que está a nuestro alcance) aunque no lo sea; al
ordenador no le queda entonces más remedio que tratar el SEL Ax = b como si fuese
sobredeterminado; y eso es por lo tanto lo que hace en esa situación un programa como
Matlab : calcula la solución por mı́nimos cuadrados, como mejor aproximación a la
solución exacta que en teorı́a existe . . .
Queremos por lo tanto que sea (Ax − b) ⊥ Im(A) , es decir ,
De aquı́ despejamos x en vista de la siguiente
AT (Ax − b) = 0 , AT Ax = AT b .
PROPOSICION: Si A ∈ Mm×n tiene rango r = n < m , AT A es invertible.
Prueba:
Como AT A es n × n , basta probar que tiene rango n , probando que Ker(AT A) = Ker(A) ; pero
AT Ax = 0
⇒
|A(x)|2 = xT AT Ax = 0 ,
⇒
Ker(AT A) ⊂ Ker(A) .6
En consecuencia, la solución de mı́nimos cuadrados es:
x = (AT A)−1 AT b
.
DEFINICION: Llamamos a (AT A)−1 AT la seudo-inversa A[−1] de A , que cumple:
A[−1] A = I , AA[−1] b = b si b ∈ Im(A)
Cuando rango = número de filas, como le sucede a B = AT , también hay una inversa a un lado,
la matriz C = B T (BB T )−1 , que cumple BC = I .
En este caso, el SEL Bx = b sı́ tiene soluciones, pero x = Cb es la que tiene |x| mı́nimo posible.
Para ver por qué, observar que Cb ∈ (Ker B)⊥ = Im(B T ) , y que es solución: B(Cb) = b , luego
cualquier otra es x = Cb + u con u ∈ Ker B , y se tiene |x|2 = |Cb|2 + |u|2 .
! 2.4
4A
dı́a de hoy eso puede significar n > 104 .
el punto 3.: “a mano” son mejores los wj , pero en la “vida real” es más simple usar los qj .
6 El otro contenido es trivial; el argumento prueba que rango(AT A) = rango(A), aunque sea < n .
5 Recordar
3
5. Gram-Schmidt como A = QR . Ver este ejemplo:





1 −1 2
1 1 2
 2 3 3 
  w1 w2 w3  
1 1  , con wj = |wj |qj
A=
 0 2 5 =
1
1 1 4
es decir:
A = QR
, con Q = (qj ) , R = al otro factor con cada fila i multiplicada por |wi | .
Sean vj las columnas de A , y recordemos
Para k = 1, . . . , n ,
− para j < k!, rjk = vk · qj ,
− wk = vk − j<k rjk qj ,
− rkk = |wk | , qk = wk / rkk .
Como QT Q = I , si queremos hallar
que los denominadores no son problema; el algoritmo es:
% proyección de vk sobre cada qj , j < k
% wk es el resto ortogonal de vk ...
% ... que una vez normalizado, es qk
x = A−1 b
basta ahora
− resolver Qy = b haciendo y = Q b (coste = mn f lops),
− y a continuación Rx = y (sustitución regresiva, coste = n2 /2 f lops).
T
A lo que hay que sumar el coste ≈ n2 m de hallar los factores Q, R .
PROPOSICION:
La factorización A = QR de una matriz con rango = número de columnas, es casi única.
Prueba: Para cada k , L{q1 , . . . , qk } = Kk = L{v1 , . . . , vk } , luego cada columna qk de Q tiene la
dirección ortogonal a Kk−1 en Kk , sólo su signo es libre.
En el proceso usado (G-Sch), R resume los factores que convierten A en la ortogonal Q = (qj ) .
Pero se puede hacer al revés: usar factores ortogonales a la izquierda de A para irla convirtiendo
en triangular superior.
Eso es lo que hacen los factores Householder, usando la misma idea que ya vimos en el punto
2. para LU: la de un algoritmo recursivo al que basta “limpiar la primera columna”, y recomenzar
con tamaño n − 1 :
• H1 es una simetrı́a que transforma v1 en ±|v1 |e1 : H1 (x) = x − 2(u · x)/|u|2 , con u = v1 ± |v1 |e1 ;
(el signo se escoge para evitar que u sea una diferencia pequeña);
• Hk hace lo mismo con el bloque i, j ≥ k , dejando fijos los vectores e1 , . . . , ek−1 , de modo que los
ceros creados en las columnas anteriores permanecen.
Por lo tanto el producto R = Hn−1 · · · H1 A es triangular.
Si usamos este proceso para llegar a A = QR , la tarea de resolver Ax = b se reduce a:
− aplicar cada Hk a b para obtener y = QT b (no necesitamos escribir Q );
− resolver Rx = y (sustitución regresiva).
4
! 2.5
6. Dinámica de errores y SVD.
Para un problema que parte de unos datos a y busca una solución x = F (a) , definimos en B2:
κ(F, a) = sup
x
|δx| |δa|
:
= el peor valor posible para el cociente de los errores relativos
|x|
|a|
En el caso de ser F una función lineal B : IRn → IRm , añadimos otra (aún más pesismista)
DEFINICION: Llamamos κ(B) al “peor caso posible”: κ(B) = supa κ(B, a) .
Ejemplo 1:
B=
)
1
2
Como toda matriz simétrica, B tiene una
base ortonormal de autovectores
√ {ui } , Bui = λi ui ,
en este caso con λ1, 2 = 2 ± 5 .
2
3
*
3
2
1
0
La figura muestra el cı́rculo unidad y su imagen7 , que es una elipse
con semiejes de dirección ui y longitud |λi | = 4.24, 0.24 . !1
El peor caso posible para κ(B, a) es si a = u2 , con error δa!2 = cu1 ,
lo que da κ(B) = |λ1 /λ2 | = 17.94 .
!3
La idea es igual para cualquier simétrica B : IRn → IRn , y da!4
!3
!2
!1
0
1
2
3
κ(B) = |λ1 /λn |
si los autovalores se ordenan como aquı́ de mayor a menor tamaño.
Y el caso de una B cualquiera es en este sentido casi igual, pese a que, incluso si es n × n , puede
tener autovalores complejos, o no tener suficientes autovectores:
PROPOSICION:
Dada B : IRn → IRm hay una base ortonormal {vi } de IRn tal que los B(vi ) = σi ui ∈ IRm son
ortogonales.
Si tomamos los |ui | = 1 , matrices U, V con columnas ui , vi , y la matriz diagonal Σ con diagonal
σi , esto equivale a8
B = U ΣV T , V T V = I = U T U
y se llama a {σi } (que se toman por convenio en orden decreciente), los valores singulares de B ,
a la ecuación B = U ΣV T , su descomposición en valores singulares (SVD). El gráfico que
sigue muestra la de la matriz
)
* )
*)
*)
*
1 1
0.85 −0.53
1.62
0.53 0.85
B=
=
= U ΣV T
0 1
0.53
0.85
0.62
−0.85 0.53
1
0.8
0.6
0.4
0.2
0
!0.2
!0.4
!0.6
!0.8
!1
!1
!0.5
0
0.5
1
En el caso de B simétrica n × n, es U = V , σi = |λi | ; pero el significado geométrico es el mismo
en todos los casos: σi son los semiejes del hiperelipsoide B(D) , donde D es el disco unidad, y el
peor caso para κ(B, a) es como antes a = un , con error δa = cu1 , lo que da la
7 Se
han marcado también los puntos unidad ei y sus imágenes.
no dejarse confundir por el nombre U , que en LU significaba upper; larga es la Ciencia, y corto el alfabeto.
8 Ojo:
5
4
PROPOSICION:
κ(B) = σ1 /σn
Un modo de calcular la SVD para matrices m × 2 : los autovectores de A = B T B son vi ,
con λi = σi2 , como muestra la igualdad A = (U ΣV T )T U ΣV T = V Σ2 V T .
El mismo argumento permite probar en general la existencia9 de la SVD.
! 2.6
Observaciones:
• Nótese que el cambio a una base ortonormal, o la composición con una función ortogonal Q ,
conserva todo lo que se refiere a tamaños, aunque cambia o destruye los autovectores; por eso las
proposiciones anteriores vienen a decir que “todo funciona como si B fuese diagonal”.
• σ1 = supu |Bu|/|u| , a quien llamaremos la norma ||B|| ; si B −1 = A , los valores singulares de B
son inversos de los de A , y σn = 1/||A|| ; esto último es cierto también si A = B [−1] ;
• estamos tácitamente suponiendo σn > 0 , que no es posible si m < n ; en tal caso (y en general
si Ker(B) %= {0} , recordar el ejemplo B(a1 , a2 ) = a1 − a2 ) se tendrá κ(B) = ∞ , y lo único que
puede interesar es κ(B, a) ;
• si B = A−1 , entonces κ(A) = κ(B) es el peor κ posible del problema “hallar x tal que Ax = b”;
• si ese problema está sobredeterminado, lo que buscamos es la solución LS: x = A[−1] (b) , que
tiene Ker %= {0} , luego κ(A[−1] ) = ∞ ; pero podemos fijar b , y llamar y = πA (b) = A(x) :
|δx|
= ||A[−1] || ,
|δb|
max
|x|
|y| |x|
=
≥ c/||A||
|b|
|b| |A(x)|
con c = |y|/|b| = coseno del ángulo entre b y la Im(A) , y resulta para este problema:
[−1]
κ(A
, b) = max
δb
)
|δx| |δb|
:
|x|
|b|
*
≤
||A|| · ||A[−1] ||
c
que se alcanza si x es paralelo al v1 de la SVD de A , es decir, si πA (b) / A(v1 ) .
7. Pivotar en LU, y otros métodos estables.
En ejemplos tan inocentes como el giro A =
)
1
−1
*
se encuentra uno con un “pivote”= 0 .
No hay factorización A = LU : hay que cambiar el orden de las filas y llegar en su lugar a P A = LU .
Aun sin eso, usar pivotes pequeños puede ser desastroso para la estabilidad : si ε << 1 ,
)
* )
*)
*
ε −1
1
ε −1
A=
=
1 0
1/ε 1
1/ε
tiene κ(A) ≈ 1 pero cada factor tiene κ ≈ 1/ε2 .
Para ver las posibles consecuencias, supongamos ε = εm ; al buscar la solución de Ax = b con
+ ,
+
,
)
*+
,
1
1
1
1
b=
=A
, resolveremos primero b = Ly =
,
1
ε−1
1/ε 1
1 − 1/ε
+
,
)
*+
,
1
ε −1
0
y al redondear resulta ỹ =
= U x̃ =
,
−1/ε
1/ε
−1
la primera coordenada de la solución exacta x se ha perdido del todo.
El remedio es de nuevo: P A = LU .
! 2.7
Método que elude ese problema: usar en su lugar la factorización A = QR , calculada con factores
Householder, o con Gram-Schmidt-modificado10 .
9 Pero no conviene como método de cálculo: hallar los autovalores de una matriz grande no es posible “a mano”, y con
métodos de aproximación, éste es un cálculo inestable, porque κ(B T B) = κ(B)2 .
10 Ver ! 2.5. El Gram-Schmidt clásico también suele ser inestable.
6
8. Métodos iterativos
La idea del Tema 1 es aplicable a la ecuación lineal Ax = b : basta definir G(x) de modo que
en el punto x buscado sea G(x) = x , con ||G$ (x)|| < 1 para que sea un atractor.
(G$ , la matriz derivada)
Partiendo A en dos trozos A = S − T se tiene
Ax = b ⇔ Sx = b + T x , es decir, la iteración Sxk = b + T xk−1
pero hace falta:
− que esté definida S −1 , y ||S −1 T || sea lo menor posible, y
− que resolver Sx = c sea mucho menos costoso que resolver directamente Ax = b
.
Dos maneras clásicas de hacerlo, si aii %= 0 ∀i , son éstas: sean
D la matriz diagonal (aii ) , S la triangular inferior (aij ) , j ≤ i .
Resolver Dx = c sólo cuesta n f lops , resolver Sx = c , unos n2 /2 , frente a los n3 /3 de Ax = b .
Esto da, suponiendo que se cumpla la condición sobre ||DG|| , los métodos de
Jacobi :
Dxk = b − (A − D)xk−1
, y Gauss-Seidel
Sxk = b − (A − S)xk−1
Otra posibilidad es usar alguna media ponderada de esos vectores xk , xk−1 :
Sxk = w(b − (A − S)xk−1 ) + (1 − w)Sxk−1 = wb + (S − wA)xk−1
con la idea de escoger el w que haga lo menor posible la ||DG|| = ||I − wS −1 A|| . Por razones
mucho más largas de explicar, hay clases importantes de matrices para las que eso se logra con
algún w ∈ (1, 2) , es decir llegando “algo más allá de la siguiente iterada de Gauss-Seidel”; por eso
este método sufre el nombre de sobre-relajación (en inglés, succesive over-relaxation, SOR).
Una idea importante: pese a que estamos hablando (para simplificar la analogı́a con el caso dim = 1
visto en el Tema 1) de la norma ||DG|| , la cantidad que importa es el radio espectral: el tamaño
del menor autovalor de la matriz DG ; verlo en el ejemplo siguiente:
! 2.8
Y una pregunta: puesto que tenı́amos métodos directos 11 , que daban en un número fijo de pasos
un resultado potencialmente exacto, ¿por qué iterar para conseguir aproximaciones?
Respuestas:
• n3 /3 f lops es demasiado coste si n es muy grande: ¡la matriz misma sólo tiene n2 elementos!
• hay matrices A gigantescas para las que algún “truco” permite calcular Ax para x dado con
un coste pequeño, mientras que “manipular sus entradas” está fuera de nuestro alcance; para
ese caso hay métodos iterativos que usan A como una caja negra;
• muchas matrices A son “esencialmente singulares”, porque el cociente σk /σ1 de sus valores
singulares es desdeñable a partir de cierto k = r ; en ese caso, todo el “funcionamiento de A”
se reduce a lo que hace con el subespacio L{v1 , . . . , vr } ; hay métodos iterativos que tratan de
ir aproximando ese subespacio y calcular la solución buscada dentro de él;
• el otro gran problema del Algebra Lineal Numérica: hallar autovalores y autovectores de A ,
no admite métodos directos, porque supondrı́an hallar “exactamente” raı́ces de un polinomio
de grado arbitrario: por encima de n = 2 , lo único que podemos esperar para ese problema son
métodos iterativos, que suelen explotar la misma idea anterior: al iterar A se irá aproximando
el subespacio donde están sus mayores autovalores.
Intentaremos describir someramente alguno de los métodos basados en estas ideas.
11 Esos
métodos son desde luego lo que se usa para resolver Ax = b si A no es MUY grande.
7
Descargar