Vous êtes sur la page 1sur 28

MTODOS MATEMTICOS (Curso 2011-2012)

Tercer Curso de Ingeniera Aeronutica


Departamento de Matemtica Aplicada II. Universidad de Sevilla

LECCIN 4: CLCULO DE AUTOVALORES


Introduccin

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

2. MTODOS NUMRICOS PARA EL CLCULO DE AUTOVALORES Y AUTOVECTORES


4
2.1.
2.2.
2.3.
2.4.

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

3.1. Localizacin de autovalores . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .


3.2. Matrices no diagonalizables y matrices fuertemente no normales . . . . . . . . . . .

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),

donde D es la matriz diagonal

D=

1 0 0
...
0
0 2 0
...
0
.. . . . .
..
..
.
.
.
.
.
0 . . . 0 m1 0
0 ... 0
0
m

ya que

AV = A[v1 , . . . , vm ] = [Av1 , . . . , Avm ] = [1 v1 , . . . , vm ] = V D.


Otra manera de decir que A es diagonalizable es decir que A es semejante a una matriz diagonal. Recuerde que dos matrices A y B son semejantes si existe una matriz U invertible de modo
que A = U BU 1 , y que dos matrices semejantes tienen el mismo polinomio caracterstico (los
mismos autovalores con la misma multiplicidad, por tanto) aunque no necesariamente los mismos
autovectores.
2

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

y por tanto no hay dos autovectores de A independientes.


Recuerde que si A matriz m m es real y simtrica entonces, en primer lugar, todos sus
autovalores son reales , y, en segundo lugar, autovectores suyos asociados a autovalores distintos
no slo son independientes sino que adems son ortogonales entre s. An ms, si A es simtrica
siempre es diagonalizable , y adems se puede elegir la base de autovectores de manera que sea una
base ortonormal (vectores ortogonales entre s y de norma 1). La matriz Q = [q1 , . . . , qm ] cuyas
columnas son los elementos de dicha base es por tanto una matriz ortogonal (QT Q = I ). Esta
propiedad es tan importante que se la resumimos a continuacin.
A matriz m m es simtrica

Q con Q1 = QT y D diagonal tt. qq. A = QDQT .

Por ltimo recuerde que cuando una matriz A de dimensiones m m no es diagonalizable,


se puede encontrar una base de Rm , cuyos elementos v1 , . . . , vm se conocen como autovectores
generalizados de modo que la matriz

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.

2. MTODOS NUMRICOS PARA EL CLCULO DE AUTOVALORES Y AUTOVECTORES


2.1. Introduccin
El problema de calcular los autovalores de una matriz est hoy da bien resuelto desde el punto
de vista numrico, siempre que se trate de matrices cuyas dimensiones no sean exageradamente
grandes y que no tengan autovalores con autovectores asociados que, siendo independientes, sean
casi paralelos.
El gran avance en clculo de los autovalores de una matriz lo produjo la invencin de la iteracin QR (OJO: no confundir con la descomposicin QR, que una cosa es la descomposicin y
otra la iteracin). Dicha iteracin QR fue inventada independientemente en 1961 por J.G. F. Francis
y V. N. Kublanovskaya, y las mayores aportaciones para su compresin y desarrollo se deben a J.
H. Willkinson, y estn recogidas en su obra The Algebraic Eigenvalue Problem (Clarendon Press,
Oxford, 1965).
Tres son los mtodos que estudiaremos en esta leccin.

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.

2.2. El mtodo de la potencia


El conocido como mtodo de la potencia sirve para calcular el autovalor de mdulo ms grande
de una matriz real. Slo es vlido (converge) cuando dicho autovalor de mdulo ms grande es real
y es simple, o, en caso de ser mltiple, tiene asociados tantos autovectores independientes como
indique su multiplicidad.

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.

Para un vector x IRm , tendremos que

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

Ahora bien, puesto que




2

< 1, . . . , m < 1
1
1
de donde se sigue que

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.

Por tanto, si denotamos

y = An+1 x,

z = An x,

para cualquier componente zj 6= 0 de z tenemos

yj
.
zj

En la prctica, no es conveniente calcular An x, pues si hay autovalores de mdulo mayor que


uno, An x puede tener componentes muy grandes y, eventualmente, producir overow"(el sistema
de coma de otante del ordenador no puede almacenar un nmero tan grande). Por ello, el algoritmo
del mtodo de la potencia es como sigue.
1) Tomando x IRm cualquiera, se hace

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

Ejemplo. Para la matriz

1 0 1
A = 0 1 1 ,
1 1 0

cuyos autovalores son 1 = 2, 2 = 1 y 3 = 1, ejecutamos el mtodo de la potencia en Matlab.


Para ello ejecutamos primero,

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,

y=A*z; [zm,j]=max(abs(z)); lambda=y(j)/z(j); z=y/norm(y); lambda


El resultado es

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

Podemos comprobar que lo encontrado es una aproximacin a un autovalor y su correspondiente


autovector calculando la norma del vector A v , y viendo que sale una cantidad del orden del
error obtenido en (en este caso, inferior a 104 ). Ejecutamos pues

norm((A-lambda*eye(3))*z)
obteniendo la respuesta,

ans =
1.8706e-05

que es, efectivamente, un valor pequeo.


El ejemplo anterior muestra tambin otro detalle importante del mtodo de la potencia. Si
(n)
llamamos 1 a la aproximacin a 1 en el paso n-simo del mtodo de la potencia, se tiene que el
error satisface que

,
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 .

Autovalor de mdulo ms pequeo. Tambin es posible encontrar el autovalor de mdulo ms


pequeo si se satisface

|1 | |2 | . . . |m1 | > |m | > 0.

(2)

pues dado que los autovalores de A1 son

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,

y=U\(L\z); [zm,j]=max(abs(z)); mu=y(j)/z(j); z=y/norm(y); lambda=1/mu


el resultado es

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,

y=U\(L\z); [zm,j]=max(abs(z)); mu=y(j)/z(j); z=y/norm(y); lambda=1/mu-2


obteniendo

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.

2.3. El mtodo de la potencia inversa


Si se tiene una aproximacin a un autovalor de una matriz A, el procedimiento conocido
como mtodo de la potencia inversa para el clculo de un autovector asociado se basa en que A I
tiene como autovalor a que es de mdulo muy pequeo, y por lo tanto en la matriz (AI)1 el
autovalor 1 = 1/( ) dominar extraordinariamente sobre los dems (i.e., el cociente 2 /1 ser
extraordinariamente pequeo, por lo que el mtodo de la potencia aplicado a (A I)1 converger
rpido.
El mtodo de la potencia inversa es pues como sigue.
9

1) Se toma y IRm cualquiera, y se hace

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 .

Ejemplo. Para la misma matriz que ya hemos utilizado

1 0 1
A = 0 1 1 ,
1 1 0

(de autovalores 1 = 2, 2 = 1 y 3 = 1) ejecutamos el mtodo de la motencia inversa en Matlab,

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

esto es, en dos iteraciones hemos


p obtenidoT una aproximacin con al menos 4 cifras decimales correctas al autovector v1 = (1/ (3))[1, 1, 1] asociado al autovalor 1 = 2.
Quiz lo ms destacado del mtodo de la potencia inversa es que si es una buena aproximacin
a , la matriz A I est muy mal condicionda, por ser casi singular. Sin embargo, los errores que
se producen trabajan a nuestro favor.
3 Dicho de otro modo, hasta que dos valores consecutivos de x disten en norma menos que una tolerancia previamente establecida

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

el comando eig(A) devuelve un vector con los


los ejemplos de la seccin anterior,

0 1
1 1 ,
1 0

(con autovalores 1 = 2, 2 = 1 y 3 = 1) ejecutando este comando devuelve,

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

Ejemplo 7. Tomemos la matriz

13 5 2 2
3 11 6 6

A=
2 2 8 4 ,
2 2 4 8

cuyos autovalores son 1 = 20, 2 = 3 = 8, y 4 = 4, y empezemos a repetir

[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

B11 B12 . . . B1k

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

de la iteracin QR, en la prctica, se transforma la matriz A en otra semejante H con forma de


Hessenberg. Una matriz H se dice que tiene forma de Hessenberg4 (o que es de Hessenberg) si es
nula por debajo de su primera subdiagonal, esto es, es de la forma

h11 h12 h13


...
h1m
h21 h22 h23
...
h2m

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

rigor, de Hessenberg superior.

13

entonces la matriz H1 m m dada por

H1 =

B OT
O I

es tambin de Householder, y al ser la primera columna de H nula a partir de su tercera componente,


se tiene que

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

ltimas las de H1 son las de la identidad, las

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

donde r es el costo en ops de calcular una raz cuadrada. Adems la matriz Q es

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).

Caso de matrices simtricas. Si H es una matriz de Hessenberg y adems es simtrica, por

fuerza es tridiagonal, con lo que la factorizacin QR y el producto RQ se puede hacer con un coste
total de 10m ops aproximadamente.

Reduccin a forma de Hessenberg. Vista la reduccin del costo operativo en un paso de la

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

Siguiendo esta idea, buscamos entonces la matriz


(m 1), tal que

G
=
b

de Householder G de dimensiones (m 1)

Entonces la matriz H1 de dimensin m m dada por

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

y dado que H11 = H1T = H1 , la matriz H1 AH1T es semejante a A (por lo que


autovalores) y es de la forma

[ 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

tiene los mismos

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

de Householder de dimensiones (m 2) (m 2) de modo que G


c
esto es, buscamos una matriz G

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.

Resumen. En la prctica pues, la iteracin QR se lleva a cabo


16

1) Reduciendo primero A a forma de Hessenberg, con un coste de O( 10


m3 ) ops.
3
2) Aplicando la iteracin QR a la matriz de Hessenberg resultante, con un coste de O(6m2 ) ops
por paso, o de O(10m) en el caso en A sea simtrica y, por tanto, su forma de Hessenberg
tridiagonal.
En la prctica no es sta la nica desviacin sobre el algoritmo QR bsico explicado al principio
de la leccin. Tambin se efectan traslaciones para acelerar la convergencia. Un paso con traslacin
sera como sigue
1) Calcular la descomposicin QR de H I , esto es, H I = QR
2) Efectuar H RQ + I
Cmo elegir el factor de traslacin queda fuera del mbito de este curso. Puede encontrar informacin en la bibliografa citada al principio de la leccin. Debe saber sin embargo, que en cada paso
se elige en funcin de las componentes de la subdiagonal de la matriz H , y cambia de paso en
paso.

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).

Teorema 2 Si A es una matriz de dimensiones m m, los autovalores de A estn en el conjunto


m
[

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.

3.2. Matrices no diagonalizables y matrices fuertemente no normales


Mencionamos en la introduccin que no trataramos el caso de matrices no diagonalizables. Tenemos una buena noticia y una mala que darle. Recordar del primer curso lo tedioso que era calcular
las potencias de estas matrices. Recuerde que si A era diagonalizable y V era una matriz formada
por los autovalores de A, y D la matriz diagonal con los autovalores a los que estn asociados,

A = V DV 1

An = V Dn V 1 ,

esto es las componentes de An son combinaciones de las potencias de sus autovalores.

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

En cambio para matrices no diagonalizables (aparte de ms engorroso el clculo de autovectores


generalizados y la matriz reducida por bloques o forma de Jordan), en la potencia n-sima de A
aparecen tambin potencias de n del orden de la multiplicidad de los autovalores menos uno.

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

A=[1 1;0 1];[V,D]=eig(A);D A*V-V*D


las respuestas son

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
,

para del tamao de la unidad de redondeo. De hecho, ejecutando

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

acondicionada. Si calculamos una estimacin de su nmero de condicin, cond(V ) = kV k V 1 ,

format short; condest(V)


la respuesta es

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

Ejercicio 2 Sabiendo que los autovalores de la matriz simtrica

3 1
3
1
1
3
1
3
,
A=
3
1
3 1
1
3 1
3

son 1 = 2, 2 = 2, y 3 = 4 = 6, encuentre la matriz ortogonal Q de modo que QT AQ sea


diagonal.

Ejercicio 3 Aplique el mtodo de la potencia a la matriz

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.

Ejercicio 5 Aplique la iteracin QR a la matriz

2 0 0
A = 0 0 1 .
0 1 0

Converger la sucesin de iterantes a una matriz triangular superior? Qu autovalores tiene A?

Ejercicio 6 Por qu en los ejemplos de la leccin, cuando aplicamos el mtodo de la potencia a la


matriz inversa resolvemos sistemas en vez de calcular la inversa? Pr qu en esos mismos ejemplos
hacemos primero una descomposicin LU y luego en cada paso resolvemos sistemas con L y con U
en lugar de resolver sistemas directamente con la matriz A?

Ejercicio 7 Aplique la iteracin QR a matrices aleatorias antisimtricas de orden 4 (pruebe con

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.

Ejercicio 8 Obtenga la factorizacin de Schur de la matriz

1 2
3 0
21

Ejercicio 9 Idem con la matriz

0
0 1
2
2 1 ,
4 3 0

sabiendo que su polinomio caracterstico es (x + 1)(x 2)(x 1).

Ejercicio 10 Sabiendo que los autovalores de

5 6 4
2
A= 2 6
2 6
1

son 1 = 9, 2 = 6 y 3 = 3, calcule una descomposicin de Schur A = QT QT de la matriz A que


satisfaga que |t11 | |t22 | |t33 | .

Ejercicio 11 Obtenga mediante transformaciones de Householder la forma de Hessenberg de la

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

a) Utilizando el procedimiento de induccin, demuestre que el polinomio caracterstico de A es p(x).


b) Pruebe tambin que si es una raz de dicho polinomio, entonces el vector v = [1, , . . . , m1 ]T
es autovector asociado.
c) Pruebe que si es raz de p, entonces A I siempre tiene rango m 1, y por tanto, si p tiene
races mltiples, la matriz A nunca es diagonalizable.
Ejercicio 13 (Junio 2009) Para con valores 0 < 1, encuentre las matrices Q y T (con
|t1,1 | |t2,2 | |t3,3 | de la descomposicn de Schur A = QT QT de la matriz

3
0
2
A = 4 2
2
0
3

Ejercicio 14 Para > 0 y IR, calcular la forma de Hessenberg de la matriz

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

n. Calcule los autovalores y autovectores de QQT .

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

calculado y el nmero de iteraciones realizadas,


(n+1)
(n) (n+1)

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.

1. Pruebe que si es autovalor complejo de A, x un autovector asociado y el polinomio real


p(t) = t2 + t + tiene por races y su conjugada entonces se satisface que

A2 x + Ax + x = 0,

(4)

y que si y es autovector no nulo de A asociado a otro autovalor 6= entonces A2 y+Ay+y 6=


0.
2. Basndose en (4), se tiene el siguiente algoritmo para una matriz A de dimensiones m m
partiendo de u(0) Rm ,
para n = 0, 1, . . . ,
v (n) = Au(n) ,
w(n) = Av (n) .
Obtener la solucin x(n) = [ (n) , (n) ]T R2 del problema de mnimos cuadrados
B (n) x(n) = w(n) ,
donde B (n) es la matriz de dimensiones m 2 cuyas dos columas son v (n) y u(n) ,
B (n) = [v (n) , u(n) ].
(n) =raiz de p(t) = t2 + (n) t + (n) con parte imaginaria de signo opuesto a (n) .

u(j+1) = w(n) /w(n) .


Si y tienen mdulo estrictamente mayor que el resto de los autovalores de A, entonces
(n) cuando n .
Elabore una funcin de Matlab que ejecute este algoritmo. Los argumentos de salida deben
ser el autovalor y el nmero de iteraciones realizadas, y los de entrada deben ser A, el vector
inicial u(0) , el nmero mximo de iteraciones a realizar, y la tolerancia T OL para la que la
iteracin se detiene si dos estimaciones consecutivas del autovalor distan menos que T OL.

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

Problema 3 Se consideran el par de matrices (A, M ) donde

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 )

donde min es el autovalor generalizado de mdulo ms pequeo


AN y BN son las matrices tridiagonales de orden N 1,

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

del par (A(N ) , B (N ) ) donde

0 ... ... 0
..
.
4 1 ..
.
.
.. .. .. ..
.
.
.
. ..
.. .. .. ..
.
.
.
. 0
..
.
1 4 1
... ... 0 1 4

Describa cmo lo ha hecho y las instrucciones de Matlab empleadas.


26

Problema 4 (Septiembre 2009) La iteracin ortogonal es una generalizacin del mtodo de la


potencia y sirve para calcular los autovalores de mayor mdulo de una matriz. Si en el mtodo de
la potencia se parte de un vector v de norma 1, y se repite

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

ordenar las componentes de e con el comando e=sort(e,'descend'). La descomposicin


QR reducida de una matriz rectangular W se calcula con el comando [Q,R]=qr(W,0). Las
p primeras columnas de la identidad de tamao m se obtienen con el comando eye(m,p).
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

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

4. Repita el punto anterior pero con J = 2400.

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.

Problema 6 Considere la matriz A simtrica de dimensiones J J dada por (J > 1)

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

para cada i = 1, ..., J 1.


1. Para J = 103 , 104 , 105 , calcule la solucin de Ax = b donde b es un vector de unos y escriba
las ocho primeras cifras signicativas de xJ/2 .
2. Para J = 103 , 104 , 105 , calcule con ocho cifras signicativas correctas el autovalor de mdulo
ms pequeo de A.

28