Beruflich Dokumente
Kultur Dokumente
Los autovalores estn presentes en muchas cuestiones de orden prctico. As, por ejemplo, el rgimen de enfriamiento de un slido homogneo es proporcional al autovalor de mdulo ms pequeo del
operador Laplaciano en la regin dada por el volumen de dicho slido, o la frecuencia principal de vibracin de una estructura o de un
slido cualquiera viene dada por la raz cuadrada del autovalor de
mdulo ms pequeo del operador de Navier en la regin ocupada por el slido o estructura. El primer autovalor del operador de
Stokes da en ocasiones idea de para qu numero de Reynolds se
desestabiliza el ujo bsico de un uido. Los autovalores de estos
operadores se aproximan en la prctica mediante los autovalores de
matrices adecuadas. Estudiamos en esta leccin el clculo de los
autovalores de una matriz.
ndice
1. CUESTIONES DE REPASO
Introduccin . . . . . . .
El mtodo de la potencia
El mtodo de la potencia
La iteracin QR . . . . .
. . . . .
. . . . .
inversa
. . . . .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
4
4
9
11
3. CUESTIONES RELACIONADAS
17
4. CUESTIONES Y PROBLEMAS
20
17
18
1. CUESTIONES DE REPASO
Recuerde que un autovalor de una matriz A cuadrada es un escalar para el cual existe un
vector no nulo v de modo que
Av = v.
1
Dado un autovalor de una matriz A, todos los vectores v que verican la relacin anterior reciben el
nombre de autovectores de A asociados al autovalor . Asociados a un autovalor dado, hay innitos
autovectores (todos aqullos proporcionales a uno dado no nulo).
Si es autovalor, debe haber un autovector v no nulo que es solucin no nula del sistema
homogneo
( I A)v = 0,
y por tanto es obligado que det(I A) = 0 (en otro caso la nica solucin del sistema anterior
sera la nula y no sera autovalor). Los autovalores de una matriz A son entonces las races de su
polinomio caracterstico
pA (x) = det(xI A).
Eso asegura que el nmero de autovalores de A distintos es a los sumo es grado de pA (x) (m si A
es m m). Si pA (x) tiene races multiples, el nmero de autovalores distintos es estrictamente
menor que m. La multiplicidad de cada raz de pA se conoce como multiplicidad (algebraica) del
autovalor correspondiente. Un procedimiento para calcular los autovalores de una matriz es resolver
la ecuacin
pA (x) = 0,
aunque en la prctica slo es til para matrices 2 2.
Una matriz A de dimensiones m m se dice que es diagonalizable si hay una base de Rm (o
de Cm ) formada por autovectores de A. Es trmino "diagonalizable"proviene de que si v1 , . . . , vm
forman una base de Rm y
Avj = j vj ,
j = 1, . . . , m
la matriz m m
V = [v1 , . . . , vm ],
cuyas columnas son los vectores v1 , . . . , vm , satisface que
AV = V D
(o V 1 AV = D),
D=
1 0 0
...
0
0 2 0
...
0
.. . . . .
..
..
.
.
.
.
.
0 . . . 0 m1 0
0 ... 0
0
m
ya que
Los autovectores de una matriz A asociados a autovalores distintos son linealmente independientes, por tanto una matriz es diagonalizable si y solamente si cada autovalor tiene tantos autovectores independientes como indique su multiplicidad.
Recuerde sin embargo que no todas las matrices son diagonalizables. El ejemplo ms sencillo es
1 1
,
A=
0 1
cuyo polinomio caracterstico es pA (x) = det(xI A) = (x 1)2 y por tanto = 1 es su nico
autovalor (y es doble). Calculamos sus autovectores encontrando las soluciones independientes de
(A I)x = 0.
Puesto que
AI =
0 1
0 0
queda la ecuacin
x2 = 0,
cuyas soluciones son todas las proporcionales a
v=
1
0
V = [v1 , . . . , vm ],
cuyas columnas son dichos vectores, satisface que
AV = V B,
donde B es la matriz diagonal por bloques,
B1
O
B = ...
O
O
O O
B2 O
.. ..
.
.
...
...
O
O
3
...
...
..
.
Bk1
O
O
O
..
.
O
Bk
siendo k el nmero de autovalores de A distintos dos a dos, y si estos son 1 , . . . , k , cada bloque
Bj tiene por dimensin la multiplicidad del autovalor j , y adems j es el nico autovalor de Bj .
Hay una forma especial de elegir los vectores v1 , . . . , vm cuya matriz B resultante se conoce como
forma de Jordan de A. Pero, est Vd. tranquilo, que el clculo de autovectores generalizados y de la
forma de Jordan es un problema muy mal condicionado, y nadie en su sano juicio se ocupa de ello.
El mtodo de la potencia para el clculo del autovalor de mayor mdulo de una matriz.
El mtodo de la potencia inversa para el clculo del autovector asociado a un autovalor conocido.
La iteracin QR bsica para el clculo de todos los autovalores de una matriz. El comando
eig de Matlab implementa una versin de la iteracin QR excesivamente sosticada para
las pretensiones de este curso. Puede verse una descripcin del mismo en G. H. Golub & C. F.
Van Loan, Matrix Computations. Third Edition , The John Hopkins University Press, 1992.
Existen otras tcnicas ms modernas, pero no tan robustas y todava por desarrollar completamente.
Entre ellas, el conocido como mtodo de Arnoldi reiniciado implcitamente, creado en 1996 por
Sorensen y Lehoucq, que se utiliza en el comando eigs de Matlab. No veremos este tipo de
tcnicas pues se salen del alcance de este curso.
Explicamos aqu el fundamento del caso ms sencillo, que se da cuando la matriz es diagonalizable. Sea A una matriz m m y denotemos sus autovalores como 1 , . . . , m , notacin que
empleamos tras haberlos ordenado por tamao,
|1 | > |2 | . . . |m | .
Observe que slo se pide que el primer autovalor sea de mdulo estrictamente ms grande que los
dems . Entre los dems, puede haber autovalores mltiples, pero el primero debe ser simple1 .
Sean v1 , . . . , vm una base de autovectores asociados, esto es
Avj = j vj ,
j = 1, . . . , m.
x = 1 v1 + 2 v2 + + m vm ,
para ciertos escalares 1 , . . . , m . Por tanto,
n
A x=
1 n1 v1
2 n2 v2
+ +
m nm vm
lm 2
n1
lm
1 v1 + 2
v2 + + m
1
1
Por ello, para n sucientemente grande se tiene que
v2 + + m
= . . . = lm
An x n1 1 v1
n
m
vm .
(1)
= 0,
vm = 0.
An+1 x 1 An x.
y = An+1 x,
z = An x,
yj
.
zj
z x/ kxk .
1 El
mtodo de la potencia tambin produce resultado correctos si 1 es mltiple, siempre que tenga tantos
autovectores independientes asociados como su multiplicidad algebraica
2) Hasta que se repitan tantas cifras decimales en como nos interese2 , se repite lo siguiente
2.1) y Az
2.2) Si j es tal que |zj | = max1im |zi |
yj
,
zj
2.3) z y/ kyk
Tras realizar este proceso tendremos que
1 ,
v1
.
kv1 k
El propsito de dividir por kyk en el paso 2,3) es evitar el overow antes mencionado
1 0 1
A = 0 1 1 ,
1 1 0
x=rand(3,1); z=x/norm(x);
para crear un vector aleatorio de norma 1. A continuacin repetimos la siguiente lnea unas cuantas
veces,
lambda
lambda
lambda
lambda
lambda
lambda
lambda
lambda
lambda
lambda
lambda
lambda
lambda
lambda
lambda
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
1.6387
1.7587
1.8746
1.9268
1.9653
1.9807
1.9911
1.9951
1.9978
1.9988
1.9994
1.9997
1.9999
1.9999
2.0000
2 Dicho
de otro modo, hasta que dos aproximaciones consecutivas a disten menos que una tolerancia previamente
establecida
norm((A-lambda*eye(3))*z)
obteniendo la respuesta,
ans =
1.8706e-05
,
1 (n+1)
1 (n)
n .
1
1
1
(6)
(7)
(Compare por ejemplo los errores de las aproximaciones sexta 1 = 1,9807, sptima, 1 = 1,9911
(7)
y octava, 1 = 1,9951, que son, respectivamente, 0.0193, 0.0089, 0.0045). Este hecho se explica
a partir de la expresin (1), pues el trmino (asintticamente) ms grande despus del autovector
1 v1 es el correspondiende a v2 .
El hecho de que los errores decaigan como (2 /1 )n hace que en ocasiones se busquen los autovalores de la matriz A I , y luego se les sume a los autovalores encontrados para recuperar los
de A. El propsito no es otro que hacer que el cociente (2 )/(1 ) sea signicativamente ms
pequeo (en mdulo) que 2 /1 , y as efectuar menos iteraciones. Aunque no es de uso generalizado,
el mtodo de la potencia cuando se resta un mltiplo de la identidad para acelerar la convergencia
se conoce con el nombre de mtodo de la potencia trasladado .
(2)
1 =
1
1
1
1
> 2 =
. . . m1 =
m =
m
m1
2
m
se puede aplicar el mtodo de la potencia a la matriz A1 (cree Vd. que ser necesario calcular A1 ?)
Ejemplo (Cont.). Intentamos calcular el autovalor ms pequeo de la matriz del ejemplo anterior
1 0 1
A = 0 1 1 ,
1 1 0
(recuerde que los autovalores son 1 = 2, 2 = 1 y 3 = 1) aplicando el mtodo de la potencia
a A1 . Ejecutando
x=rand(3,1); z=x/norm(x);
7
a continuacin
[L,U]=lu(A);
y repitiendo la linea,
lambda
lambda
lambda
lambda
lambda
lambda
lambda
lambda
lambda
lambda
lambda
lambda
lambda
lambda
lambda
lambda
lambda
lambda
lambda
lambda
lambda
lambda
lambda
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
1.6239
1.1071
1.4120
0.8846
1.3157
1.2546
1.2865
1.2709
1.2787
1.2748
1.2768
1.2758
1.2763
1.2761
1.2762
1.2761
1.2762
1.2761
1.2761
1.2761
1.2761
1.2761
1.2761
y HORROR DE LOS HORRORES!. Nos ha ocurrido lo peor que nos puede ocurrir haciendo
clculos con ordendor: UNOS RESULTADOS ERRNEOS QUE PARECEN CORRECTOS! (Sabe Vd. por qu son errneos?).
Podemos comprobar que son errneos calculando la norma del vector (A I)v con el comando
norm((A-lambda*eye(3))*z)
obteniendo la respuesta,
ans =
3.9404e-01
valor mucho mayor que 104 , que es una cota superior del error absoluto con el que hemos calculado = 1,2761 (compare con el valor que obtuvimos en el caso anterior). Note entonces que la
comprobacin de calcular kAv vk conviene hacerla siempre para validar los resultados obtenidos.
8
Si ha reexionado sobre las preguntas que hemos ido haciendo se habr dado cuenta de que los
autovalores de A verican que |1 | > |2 | = |3 |, y esto contradice (2), que es la condicin que
garantiza la convergencia del mtodo de la potencia cuando se aplica a A1 .
Una posible solucin en estos casos puede ser cambiar los autovalores A mediante una traslacin
por un mltiplo de la identidad. As por ejemplo, dado que hemos calculado previamente 1 = 2,
podemos probar a aplicar el mtodo de la potencia a la inversa de A + 2I , cuyos autovalores son 4,
3 y 1. De este modo ejecutamos,
x=rand(3,1); z=x/norm(x);
a continuacin
[L,U]=lu(A+2*eye(3));
y repetimos la linea,
lambda = -0.6196
lambda = -0.6940
lambda = -1.1097
lambda = -1.0230
lambda = -1.0055
lambda = -1.0014
lambda = -1.0003
lambda = -1.0001
lambda = -1.0000
lambda = -1.0000
lambda = -1.0000
lambda = -1.0000
que es el valor correcto.
Advertencia. No saque la conclusin errnea de que con una simple traslacin se solucionan los
problemas de convergencia del mtodo de la potencia cuando se produce empate entre los mdulos
de los autovalores dominantes. Efectuar traslaciones a una matriz requiere un buen conocimiento
de los autovalores de la misma que es, en la prctica, circunstancia no muy frecuente.
b y/ kyk .
2) Hasta que se repitan tantas cifras decimales en b como nos interese3 , se repite lo siquiente
2.1) Se calcula la solucin x del sistema (A I)x = b.
2.3) b x/ kxk.
Al nalizar este proceso el vector b ser una aproximacin a un autovector v asociado a .
1 0 1
A = 0 1 1 ,
1 1 0
y=rand(3,1); b=y/norm(y);
a continuacin
[L,U]=lu(A-1.9999*eye(3));
y repetimos
x=U\(L\b); b=x/norm(x)
obteniendo
z =
0.5773
0.5774
0.5774
z =
0.5774
0.5774
0.5774
10
2.4. La iteracin QR
En Matlab, dada una matriz cuadrada A,
autovalores de A. Por ejemplo, para la matriz de
1
A= 0
1
0 1
1 1 ,
1 0
ans=
-1.0000
1.0000
2.0000
El comando eig tambin puede devolver las matrices V y D tales que
AV = V D
Para ello se debe ejecutar [V,D]=eig(A). Si lo hacemos para la matriz que nos ocupa obtenemos
V =
-0.4082 -0.7071 -0.5774
-0.4082
0.7071 -0.5774
0.8165
0.0000 -0.5774
D =
-1.0000
0
0
0 1.0000
0
0
0 2.0000
Las tres columnas de la matriz V son de norma 1 (Matlab siempre saca las columnas de la matriz V
con norma 1) y son proporcionales a los vectores
1
1
1
1 , 1 , 1 ,
2
0
1
respectivamente, vectores que se comprueba fcilmente que son autovectores de A.
El procedimiento que utiliza Matlab para calcular los autovalores de la matriz se conoce como
iteracin QR (no confundir con la descomposicin QR). Es como sigue,
1) Repetir hasta obtener una matriz de autovalores calculables.
1.1) Hallar una descomposicin QR de A
A = QR
1.2) Multiplicar R por Q,
A RQ
11
13 5 2 2
3 11 6 6
A=
2 2 8 4 ,
2 2 4 8
[Q,R]=qr(A);A=R*Q
Tras repetir 14 veces esta lnea, obtenemos la respuesta
A =
20.0000
0.0000
0.0000
0.0000
0.0000
8.0000
0.0000
0.0000
4.0000
4.4721
8.0000
0.0000
0.0000
0.0001
0.0000
4.0000
matriz que es triangular superior, y que como vemos tiene los mismos autovalores que la matriz A
de la que hemos partido.
No explicaremos aqu por qu la iteracin QR converge a una matriz en la que se pueden calcular
fcilmente los autovalores. Sin embargo, debe saber lo siguiente:
i) Si A = QR es una descomposicin QR de A, entonces la matriz RQ es semejante a A, y, por
tanto, tiene los mismos autovalores. Esto es debido a que
Q1 AQ = Q1 (QR)Q = RQ.
ii) La matriz a la que converge el algoritmo QR no tiene por qu ser triangular superior como la
del ejemplo que hemos visto. En ocasiones, converger a una matriz triangular superior por
bloques, esto es, de la forma
B22 . . . B2k
T =
donde Bjj es 2 2 1 1, j = 1, . . . k.
(3)
.. ,
.
.
.
.
Bkk
(Vase el Ejercicio 5). Los autovalores de esta matriz son fciles de calcular pues su polinomio
caracterstico es
det(xI T ) = det(xI B11 )det(xI B22 ) . . . det(xI Bkk ),
y al ser los bloques diagonales Bjj de orden 1, u orden 2, los polinomios det(xI Bjj ) son
de grado 1 o de grado 2, y por lo tanto es sencillo calcular sus races. En otras palabras, los
autovalores de A son los de los bloques diagonales Bjj .
iii) En ocasiones ni siquiera converge la iteracin QR, aunque lo que ocurre es que a partir de un
iterante determinado se obtiene (salvo errores proporcionales a la unidad de redondeo) una
matriz con la estructura de T en (3), pero pudiendo cambiar las componentes de los bloques
diagonales Bjj de iteracin en iteracin (vase el Ejercicio 7).
12
iv) El algoritmo aqu explicado es la versin ms bsica. Lo que se programa en los ordenadores
(por ejemplo, lo que ejecuta el comando eig de Matlab) es un poco ms sosticado.
Factorizacin de Schur. La matriz T en (3) se conoce como forma de Schur (real) de A. De hecho
se tiene el siguiente teorema que es de fcil demostracin (Vanse por ejemplo o.c. Golub & Van
Loan, Theorem 7.1.3, o el Teorema 24.9 de L. N. Trefethen & D. Bau, III, Numerical Linear Algebra
SIAM, Philadelphia, 1997).
Teorema 1 Dada una matriz real A de dimensiones m m, existe una matriz ortogonal Q de igual
dimensin de modo que QT AQ = T , donde T es una matriz real con la forma y caractersticas
que se indican en (3). Si A tiene autovalores reales, entonces se puede elegir Q de modo que T sea
triangular superior. Por ltimo, tanto si A es real como compleja, existe una matriz compleja U
T
T
unitaria (U 1 = U ) de modo que U AU es matriz compleja m m triangular superior.
El comando schur de Matlab devuelve la forma de Schur real de una matriz si sta es real, o
compleja en caso contrario. Igual que el comando eig, se puede utilizar como T=schur(A) para
obtener slamente la matriz T , o bien como [Q,T]=schur(A) si adems se desea la matriz de
paso Q. El procedimiento de clculo que utiliza este comando no es otro que la iteracin QR.
Costo operativo. Cada paso de la iteracin QR requiere una factorizacin QR de una matriz mm.
Por razones de estabilidad numrica dicha factorizacin se lleva a cabo mediante transformaciones
de Householder. En cada paso de la iteracin QR, slamente la factorizacin QR requiere (segn lo
visto en la Leccin 2)
4 3
m ops.
3
Se trata por tanto de un mtodo costoso desde el punto de vista computacional.
Caso de matrices en forma de Hessenberg. Para atenuar el costo operativo de cada paso
0 h32 h33
.
.
.
h
3m
H=
.
.. . . . .
..
..
.
.
.
.
.
0 . . . 0 hm,m1 hm,m
Si la matriz H es de Hessenberg, calcular su factorizacin QR mediante transformaciones de Householder se puede hacer en O(m2 ) ops en vez de O(m3 ) ops.
Para entenderlo basta estudiar el primer paso de la factorizacin QR. Observe que si B es la
matriz 2 2 de Householder tal que
h11
b11 b21
=
,
h21
0
b21 b22
4 En
13
H1 =
B OT
O I
bT
H1 H =
,
0 H (2)
con H (2) de Hessenberg pues, dado que las m 2
m 2 ltimas las de H (2) son las de H .
Ejemplo. Para la matriz
3 5
4 0
H=
0 3
0 0
la matriz B es
1
B=
5
3 4
4
3
la matriz H1 es pues
1
5
pues
5
5
1
5
5
5
,
2
6
3 4
4
3
3
4
5
0
3 4 0 0
1 4
3 0 0
,
H1 =
0
0 5 0
5
0
0 0 5
3 4 0 0
3 5
1 4
3 0 0 4 0
H1 H =
0
0 5 0 0 3
5
0
0 0 5
0 0
5
5
1
5
5
5 3 7 7
5
= 0 4 1 1 .
2 0
3
1
2
6
0
0
5
6
Puesto que al multiplicar H1 H solo alteramos las dos primeras las de H , el costo de este producto
es de 4m ops.
Para seguir reduciendo H1 H a triangular superior, slo tendremos que operar en la matriz H (2) ,
que es de Hessenberg y de dimensin (m 1). Luego estamos en la situacin anterior pero con una
dimensin menor. Luego el costo en ops de los productos por las matrices de Householder para
llegar a la matriz R es
m2
X
(m j) = 2(m + 2)(m 1)
(m 1)r,
j=0
Q = H1 H2 . . . Hm2 .
14
Dado que las matrices Hj son la identidad excepto una caja 2 2 en algn punto de la diagonal, es
fcil ver que la construccin de Q se puede llevar a cabo con un costo aproximado de 2m(m 1)
ops. Pero, y an ms importante, es tambin fcil razonar que Q es de Hessenberg. Estudie si no
el siguiente ejemplo.
1 1 0 0
1
0
0 0
1 0
0
0
1 1 0 0 0
1 1 0
0
0
0 1
=
0
0 1 0
0 1 1 0
0 0
1 1
0
0 0 1
0
0
0 1
0 0 1 1
1 1
1 1
1 0
0
0
1 1
1 0
1 1
1 1
0
0
1 0
.
= 1 1
0 1
=
0 1 1 0 0 0
1
1 1 0 1 1
0 0 1 1
0
0 1 1
0
0
0 1
Por ltimo, note que si Q es de Hessenberg y R triangular superior, entonces el producto RQ es
de Hessenberg (recurdese la interpretacin del producto matricial en trminos de combinaciones
lineales de las columnas de la primera matriz o de las las de la segunda). Adems, no es difcil
deducir que el costo de efectuar el producto RQ es aproximadamente de 2m2 ops
En resumen, si H es de Hessenberg,
i) Si H = QR es una descomposicin QR de H , entonces la matriz Q es de Hessenberg.
ii) El producto RQ es de Hessenberg.
iii) El costo total de un paso de la iteracin QR es O(6m2 ) ops, y en el caso de matrices simtricas,
O(10m) ops. (Vase siguiente epgrafe).
fuerza es tridiagonal, con lo que la factorizacin QR y el producto RQ se puede hacer con un coste
total de 10m ops aproximadamente.
iteracin QR en el caso de una matriz en forma de Hessenberg, los algoritmos que implementan
la iteracin QR en una matriz A, transforman primero A en otra matriz H semejante a A (y por
tanto con los mismos autovalores que A) pero de Hessenberg.
El proceso de reduccin a forma de Hessenberg se hace mediante transformaciones de Householder, y es muy sencillo de entender. Escribamos la matriz A de orden m m como
dT
A = eT ,
b c B
con b, c, d, e Rm2 y B matriz (m 2) (m 2). Si fusemos a hallar la factorizacin QR
buscaramos una matriz de Householder que transformase la primera columna de A en un vector
proporcional al primer vector coordenado de Rm . Para reducir A a forma de Hessenberg, la idea es
la misma pero olvidndose de la primera la [, , dT ] de A, y procediendo como si buscsemos la
factorizacin QR de la matriz formada por las restantes las de A,
15
G
=
b
de Householder G de dimensiones (m 1)
1 0T
H1 =
0 G
es tambin de Householder y,
T
1 0
H1 A =
0 G
b
efectuando el producto
dT
dT
=
eT =
eT
G
G
G
c B
b
c
B
[ dT ]GT
dT
T
1
0
T
T
T
T
H1 AH1 = e
= [ e ]G =
0 GT
]GT
0 [ c B
0 c B
0 c
dT
eT
c B
dT
eT ,
esto es, no ha afectado a la primera columna de H1 A. Notemos entonces que la primera columna de
la matriz resultante corresponde a una matriz de Hessenberg. Ahora se repite lo que hemos hecho
en A pero en la matriz
eT
,
c B
tenga todas sus componentes nulas excepto la primera, y completamos G con el borde superior de
la identidad hasta una matriz H2 de tamao m m
1 0 0T
H2 = 0 1 0 T ,
0 0 H10
de modo que la matriz H2 (H1 AH1T ) tiene sus dos primeras columnas en forma de Hessenberg, y
como el producto (H2 (H1 AH1T ))H2T deja inalteradas las dos primeras columnas de (H2 (H1 AH1T )),
la matriz H2 H1 AH1T H2T tiene sus dos primeras columnas de Hessenberg. Siguiendo con este proceso,
pues, la matriz
T
Hm2 . . . H1 AH1T . . . Hm2
= (Hm2 . . . H1 )A(Hm2 . . . H1 )1
es de Hessenberg y semejante a A. Compruebe que ha comprendido este proceso haciendo el Ejercicio 11.
Si se cuenta el nmero de ops que se realizan en este proceso resulta ser de 10
m3 ops, y otros
3
4 3
m ops si se desea construir la matriz Q = Hm2 . . . H1 .
3
Matlab dispone del comando hess para obtener una matriz de hessemberg ortogonalmente
semejante a otra dada.
3. CUESTIONES RELACIONADAS
3.1. Localizacin de autovalores
Debe conocer el siguiente teorema, conocido como Teorema de los Crculos de Gershgorin, y que
proporciona informacin sobre dnde estn los autovalores de una matriz A. Note que si una matriz
es diagonal, sus autovalores son los elementos diagonales. El siguiente teorema nos indica que si
la matriz no es diagonal, los autovalores estn en crculos con centro en los elementos diagonales
(Vase por ejemplo, el Teorema 7.2.1 de la o.c. Golub & Van Loan, o el Ejercicio 24.2 de la o.c.
Trefethen & Bau).
donde
{z C | |z aii | ri },
i=1
ri =
|aij | ,
i = 1, . . . , m.
j6=i
Es ms, cada componente conexa de dicho conjunto contiene tantos autovalores (contados tantas
veces como indique su multiplicidad) como crculos la formen.
Ejemplo La matriz
5
0 1
2
1
A= 0
1 1
0
17
tiene sus autovalores en el conjunto formado por la unin de los crculos de centro 5 y radio 1, de
centro 2 y radio 1 y de centro 0 y radio 2.
La unin de estos crculos tiene dos componentes conexas, una de ellas formada por el crculo de
centro 5 y radio 1, que contiene 1 autovalor, 1 = 4,8063, y otra formada por la unin de los otros
dos crculos, que contiene dos autovalores, 2 = 1,0468 + 0,5033i, y 3 = 1,0468 0,5033i. Note que
no tiene por qu haber un autovalor dentro de cada crculo, pero que dentro de cada componente
conexa hay tantos autovalores como crculos la forman.
A = V DV 1
An = V Dn V 1 ,
Ejemplo.
A=
1
A =
2
1 1
1 1
2 1
1
2
3n 0
0 1n
1
=
2
1 1
1 1
1 1
1
1
3 0
0 1
3n
=
2
1 1
1
1
1 1
1
1
1
+
2
1 1
1 1
Ejemplo. La matriz
A=
1 1
0 1
como ya vimos en el repaso no es diagonalizable, pues 1 es autovalor doble y no hay otro autovector
que sea independiente de v = [1, 0]T , y
1 n
n
A =
.
0 1
18
La buena noticia es que las matrices no diagolizables no existen en la prctica; slo existen en
los primeros cursos para fastidiar a los alumnos. Bueno casi . La razn de que no existan en la
prctica es que basta una pequea perturbacin de la matriz para volverla diagonalizable. Para
tan pequeo como se quiera, cualquiera de las matrices
1
1
1 1
1+ 1
A=
,
A=
,
A=
,
0 1
1
0
1
es diagonalizable pues tiene autovalores distintos. Puesto que en la prctica cualquier clculo viene
afectado de error de redondeo, la matriz A, a la postre, ser diagonalizable en la prctica. Lo de
Bueno casi es porque estas matrices diagonalizables que estn cerca de una no diagonalizable
presentan los mismos problemas que las no diagonalizables. Por ello, en la prctica, s se tienen en
cuenta las matrices no diagonalizables, pues aunque sean irreproducibles en un ordenador, modelan
bien el comportamiento de las matrices diagonalizables pero cercanas.
As por ejemplo, efectuando clculos en Matlab se tiene que
1 100
1 106
1 0
100
106
1010
f l(A ) =
,
f l(A ) =
,
f l(A ) =
,
0 1
0 1
0 1
esto es, cuando n , f l(An ) coincide con la potencia n-sima de una matriz diagolizable con un
nico autovalor doble igual a 1, esto es, la identidad.
De hecho, si en Matlab ejecutamos
D =
1
0
0
1
ans =
1.0e-15 *
0
0
0.2220
0
esto es, D es una matriz diagonal con el nico autovalor doble en la diagonal, y las columnas de V
son autovectores de A salvo errores del tamao de la unidad de redondeo. Como en principio los
autovalores son todos proporcionales a v = [1, 0]T , las columnas V debe ser de la forma
1 2
,
format short e; V
la respuesta es
V =
19
1.0000e+00
0
-1.0000e+00
2.2204e-16
esto es, las columnas de V , siendo independientes, son casi paralelas. La matriz V 1 ser de tamao
grande (piense en su clculo por la Regla de Cramer), y por tanto la matriz V estar
muy mal
ans =
9.0072e+15
Ello explica que, aunque a efectos numricos A es una matriz diagonalizable con 1 como nico
autovalor (i.e., la identidad), sin embargo An no tiene dicho comportamiento salvo para n ,
pues
f l(An ) An
C cond(V ).
An
Las matrices que tienen una base de autovectores en la que hay al menos dos de ellos que,
siendo independientes, son casi paralelos, se dicen fuertemente no normales, puesto que las matrices
normales son aqullas que poseen una base ortonormal de autovectores Aparte de las matrices
simtricas, son tambin matrices normales las matrices antisimtricas y las matrices ortogonales.
La mala noticia es que las matrices fuertemente no normales existen, y estn acechndole para
complicarle la vida en algn momento de su vida profesional (tal vez cuando haga el proyecto de
n de carrera). Le complicarn la vida porque, como acabamos de ver, en las matrices fuertemente
no normales, el nmero de condicin tan alto de la matriz V de sus autovectores, hace irrelevante
cualquier informacin que se tenga sobre los autovalores de la misma. Esto suele plantear problemas,
por ejemplo, en Mecnica de Fluidos cuando el nmero de Reynolds es alto, o en problemas de
conveccin trmica ante fuertes corrientes convectivas. En fn, si tiene mala suerte, ya lo descubrir.5
4. CUESTIONES Y PROBLEMAS
CUESTIONES
Ejercicio 1 Calcule el polinomio caracterstico de la matriz
1 0 1
A = 0 1 1 ,
1 1 0
y obtenga sus autovalores y autovectores asociados.
5 Puede
encontrar ms informacin sobre este tema en L. N. Trefethen & D. Bau, III, Numerical Linear Algebra
SIAM, Philadelphia, 1997.
20
3 1
3
1
1
3
1
3
,
A=
3
1
3 1
1
3 1
3
1 1
1 1
A=
dos veces, la primera partiendo del vector [2, 0]T , y la segunda partiendo del vector [1, 1]T . Son
esperables los resultados? Estn mal las explicaciones que hemos dado en la leccin? Es esperable
un comportamiento similar en la prctica si se parte de un vector aleatorio?
Ejercicio 4 Determine los valores del parmetro para los que, partiendo de los vectores [1, 0]T
y [1, 1]T , converge el mtodo de la potencia cuando se aplica a la matriz
1
A=
,
1
Revise el ejercicio anterior.
2 0 0
A = 0 0 1 .
0 1 0
varias). Puede crear dichas matrices en Matlab con los comandos A=rand(4); A=(A-A')/2.
Convnzase de que la iteracin no converge pero, que a partir de un punto determinado podemos
obtener sus autovalores.
1 2
3 0
21
0
0 1
2
2 1 ,
4 3 0
5 6 4
2
A= 2 6
2 6
1
matriz
2 6 7
A = 1 5 0 .
1 1 0
Ejercicio 12 Es posible que cuando estudi ecuaciones diferenciales aprendiese que dado el polinomio p(x) = xm + m1 xm1 + + 1 x + 0 , se llama matriz compaera del mismo a
0
1
0
...
0
..
..
..
..
..
.
.
.
.
.
A = 0 ...
.
0
1
0
0 ...
0
0
1
0 . . . m3 m2 m1
3
0
2
A = 4 2
2
0
3
A=
22
Ejercicio 15 Demuestre que la matriz tridiagonal de orden n formada por cuatros en la diagonal
principal y unos en las dos subdiagonales es simtrica denida positiva y su determinante es menor
o igual que 6n .
Ejercicio 16 Para con valores 0 < 5, encuentre las matrices Q y T (con |t1,1 | |t2,2 | |t3,3 |
de la descomposicn de Schur A = QT QT de la matriz
4
0
4
A = 2 2 6 4 + 2
3/2
0
3
Ejercicio 17 Sea Q una matriz m n con m > n y tal que QT Q es la matriz identidad de orden
23
PROBLEMAS
Problema 1 Se considera la matriz
5 5
6 1
1 0 10 4 4
.
A=
8 5
2 1 1
5 5 10 7
1. Disee una funcin de Matlab que ejecute el mtodo de la potencia. Los argumentos de
entrada deben ser, adems de la matriz, el vector inicial, la toleracia T OL para la cual la
iteracin se detiene en el momento
en que dos aproximaciones sucesivas, (n) y (n+1) satisfa
(n+1)
(n)
(n+1)
< T OL, y el nmero mximo de iteraciones permitidas. Los
gan que
/
argumentos de salida deben ser el autovalor
y el ltimo valor de
/
2. Para un nmero mximo de iteraciones permitidas igual a 10, 20 y 30, aplique la funcin
diseada en el apartado anterior a la matriz A, con T OL = 106 y vector inicial [1, 1, 1, 1]T .
Idem con [1, 1, 0, 0]. Describa y justique las diferencias observadas.
3. Mediante el comando eig, calcule los autovalores de A 2I . Converger el mtodo de la
potencia con esta nueva matriz?
4. Repita el apartado 2 pero en lugar de tratar de aproximar el autovalor de mdulo mximo de A,
hgalo para el de mdulo mnimo de A 2I . Para ello, modique la funcin del apartado 1.
24
Problema 2 El mtodo de la potencia slo es efectivo cuando hay un autovalor de mdulo mayor
que los dems. Si en una matriz real el autovalor de mayor mayor mdulo es complejo, se puede
modicar el mtodo de la potencia para que proporcione una aproximacin a dicho autovalor.
A2 x + Ax + x = 0,
(4)
Nota: Para resolver el problema de mnimos cuadrados puede emplear la orden \ de Matlab.
3. Aplique la funcin desarrollada en el apartado anterior a la matriz
2,5 0,5 4 1
2,5
2,5 2 1
,
A=
1
2 1 1
0,5
0,5 1
4
con las siguientes especicaciones. el vector de partida es [1, 1, 1, 1]T , la tolerancia debe ser
menor que 106 , y el nmero mximo de iteraciones es 10, 20, 40. Escriba los valores obtenidos
de y de las iteraciones. Qu conclusiones se pueden sacar cuando el algoritmo devuelve un
valor de iteraciones igual al mximo permitido?
4. Qu ocurre si se repite el proceso anterior esta vez partiendo del vector [1, 1, 0, 1]T ?.
Describa y justique las diferencias observadas.
25
0 5 8
1
4 0
A=
1 1 5
5 5 10
3
3
,
3
6
5
1 1 1
1
5 1 1
.
M =
1 1
6
0
1 1
0
6
(5)
Dado un par de matrices cuadradas, A y M , se llama autovalor generalizado de dicho par a cualquier
escalar para el que existe un vector no nulo v tal que Av = M v . Los autovalores de una matriz
son un caso particular de autovalores generalizados (correspondientes al par (A, I)). Observe que
si M es invertible, entonces es autovalor generalizado del par (A, M ) si y slo si es autovalor de
M 1 A.
1. Disee una funcin de Matlab que calcule el autovalor generalizado de mayor mdulo de
un par (A, M ), mediante la aplicacin del mtodo de la potencia a una matriz adecuada.
Los argumentos de salida deben ser el autovalor y el nmero de iteraciones realizadas, y en
los de entrada deben estar A y M . Aplquelo al par (A, M ) dado en (5) con las siguientes
especicaciones: el vector de partida es [1, 2, 3, 4]T , la tolerancia (diferencia entre el valor
absoluto de dos estimaciones sucesivas del autovalor generalizado) debe ser menor que 106 ,
y el nmero mximo de iteraciones es 10, 20, 40. Escriba los valores obtenidos de y de
las iteraciones. Qu conclusiones se pueden sacar cuando el algoritmo devuelve un valor de
iteraciones igual al mximo permitido?
2. Qu ocurre si se repite el proceso anterior esta vez partiendo del vector [1, 1, 0, 0]T ?. Describa y justique las diferencias observadas.
3. Disee una funcin de Matlab similar a la del apartado 1 pero implementando el mtodo
de la potencia inversa para encontrar el autovalor generalizado de mdulo ms pequeo del
par (A, M ). Prubelo con el par (A 1,2M, M ). Cul es pues el autovalor generalizado de
mdulo ms pequeo de dicho par? Escriba tambin la funcin de Matlab diseada.
4. Calcule con 6 cifras decimales correctas el valor de
(N )
lm min ,
N
(N )
2 1
0 ... ...
0
4
.
.
..
1
1
2 1 . .
.
.. .. .. ..
.
.
.
.
.
1
0
.
0
(N )
,
M
=
A(N ) = N . .
.. . . . . . . . . . . .
6N ...
0
.
.
0
0
. 1
2 1
0 ... ...
0 1
2
0
0 ... ... 0
..
.
4 1 ..
.
.
.. .. .. ..
.
.
.
. ..
.. .. .. ..
.
.
.
. 0
..
.
1 4 1
... ... 0 1 4
w Av,
v T w,
v w/ kwk ,
(esta variante es equivalente a la explicada en el curso) hasta que el error relativo de dos valores de
consecutivos sea menor que una tolerancia jada de antemano o se supere un nmero de iteraciones
prejado, en la iteracin ortogonal para calcular los p autovalores de mayor mdulo se parte de una
matriz V de p columnas, ortogonales entre s y de norma 1 (por ejemplo, p columnas distintas de
la identidad) y se repite
W AV,
C V T W,
e autovalores de C ,
V Q,
donde W = QR es descomp. QR reduducida de W ,
hasta que el error relativo en la norma eucldea de dos valores consecutivos de e sea menor que una
tolerancia jada de antemano (o se supere el mximo de iteraciones prejado).
1. Disee una funcin de Matlab (o modique la hecha en su da para el mtodo de la potencia)
que implemente la iteracin ortogonal. Los argumentos de entrada deben ser la matriz A, la
matriz V inicial, la tolerancia T OL para la cual la iteracin se detiene
en el momento
en que
dos aproximaciones consecutivas, digamos e(n) y e(n1) , satisfagan que e(n) e(n1) /ke(n) k <
T OL, y el nmero mximo de iteraciones permitidas. Los argumentos de salida deben ser el
vector
de autovalores
calculado, el nmero de iteraciones realizadas y el ltimo valor de
(n) e (n1)
e e
/ke(n) k. Escriba el listado en la hoja de respuestas.
Nota. En cada iteracin, despus de calcular el vector e y antes de calcular el error, debe
5 5
6 1
0 10 4 4
.
A=
1 1
8 5
5 5 10 7
con T OL = 106 y matriz inicial igual a las p primeras columnas de la identidad, para p = 1
y p = 3. Escriba los autovalores obtenidos (bastan las cuatro primeras cifras signicativas) en
su hoja de respuestas.
3. Para J = 800, considere la matriz A simtrica de dimensiones (J 1)(J 1) cuyos elementos
son nulos salvo, por cada la, i = 1, . . . , J 1, ai,i50 = 1, ai,i = 1,3, ai,i+50 = 1. Calcule
con 6 cifras signicativas correctas los 50 de mayor mdulo, 1 2 . . . 50 , y escriba en
su hoja de respuestas nicamente el primero 1 y el 50 .
27
Problema 5 Muchos comandos de Matlab son lineales (su valor en una combinacin lineal de
vectores es la combinacin lineal de los valores de dicho comando en cada uno de los vectores). Por
eso, su valor es equivalente al producto por una matriz, esto es comando(x) y A x coinciden (salvo
cantidades del orden del error de redondeo), donde A es la matriz cuyas columnas son el valor de
comando en las columnas de la matriz identidad. Dicha matriz recibe el nombre de matriz asociada
al mencionado comando y sus autovaloresse denominan los autovalores del comando. Para vectores
x de longitud N , considere el siguiente comando:
real(fft(cumsum(x))) -sum(x))/sqrt(length(x))
1. Para N = 4, escriba los autovalores del comando anterior con tres cifras signicativas.
2. Para N = 4096, calcule el autovalor dominante del comando que nos ocupa con seis cifras
signicativas correctas.
Nota: No intente construir la matriz asociada al comando pues se quedar sin memoria.
A=
J rT
r T
donde = 10, r = [1, 1/2, ..., 1/(J 1)]T y T es la matriz (J 1) (J 1) cuyos elementos son
nulos salvo los que estn en torno a la diagonal principal que toman los valores
ti,i2 =
1 2
16
30
16
1
J , ti,i1 = J 2 , ti,i = J 2 , ti,i+1 = J 2 , ti,i+2 = J 2 ,
12
12
12
12
12
28