28
QR A λ v Av = λv.

MÉTODOSMATEMÁTICOS(Curso2011-2012) - UNIVERSIDAD DE … · Recuerde que un autovalor de una matriz A cuadrada es un escalar ... Entre ellas, el conocido como método de Arnoldi

  • Upload
    haxuyen

  • View
    212

  • Download
    0

Embed Size (px)

Citation preview

MÉTODOS MATEMÁTICOS (Curso 2011-2012)Tercer Curso de Ingeniería Aeronáutica

Departamento de Matemática Aplicada II. Universidad de SevillaLECCIÓN 4: CÁLCULO DE AUTOVALORES

IntroducciónLos autovalores están presentes en muchas cuestiones de orden prác-tico. Así, por ejemplo, el régimen de enfriamiento de un sólido ho-mogéneo es proporcional al autovalor de módulo más pequeño deloperador Laplaciano en la región dada por el volumen de dicho sóli-do, o la frecuencia principal de vibración de una estructura o de unsólido cualquiera viene dada por la raíz cuadrada del autovalor demódulo más pequeño del operador de Navier en la región ocupa-da por el sólido o estructura. El primer autovalor del operador deStokes da en ocasiones idea de para qué numero de Reynolds sedesestabiliza el �ujo básico de un �uido. Los autovalores de estosoperadores se aproximan en la práctica mediante los autovalores dematrices adecuadas. Estudiamos en esta lección el cálculo de losautovalores de una matriz.

Índice1. CUESTIONES DE REPASO 1

2. MÉTODOS NUMÉRICOS PARA EL CÁLCULO DE AUTOVALORES Y AU-TOVECTORES 42.1. Introducción . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42.2. El método de la potencia . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42.3. El método de la potencia inversa . . . . . . . . . . . . . . . . . . . . . . . . . . . . 92.4. La iteración QR . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11

3. CUESTIONES RELACIONADAS 173.1. Localización de autovalores . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 173.2. Matrices no diagonalizables y matrices fuertemente no normales . . . . . . . . . . . 18

4. CUESTIONES Y PROBLEMAS 20

1. CUESTIONES DE REPASORecuerde que un autovalor de una matriz A cuadrada es un escalar λ para el cual existe un

vector no nulo v de modo queAv = λv.

1

Dado un autovalor λ de una matriz A, todos los vectores v que veri�can la relación anterior reciben elnombre de autovectores de A asociados al autovalor λ. Asociados a un autovalor dado, hay in�nitosautovectores (todos aquéllos proporcionales a uno dado no nulo).

Si λ es autovalor, debe haber un autovector v no nulo que es solución no nula del sistemahomogéneo

(λ I − A)v = 0,

y por tanto es obligado que det(λI − A) = 0 (en otro caso la única solución del sistema anteriorsería la nula y λ no sería autovalor). Los autovalores de una matriz A son entonces las raíces de supolinomio característico

pA(x) = det(xI − A).

Eso asegura que el número de autovalores de A distintos es a los sumo es grado de pA(x) (m si Aes m × m). Si pA(x) tiene raíces multiples, el número de autovalores distintos es estrictamentemenor que m. La multiplicidad de cada raíz de pA se conoce como multiplicidad (algebraica) delautovalor correspondiente. Un procedimiento para calcular los autovalores de una matriz es resolverla ecuación

pA(x) = 0,

aunque en la práctica sólo 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 término "diagonalizable"proviene de que si v1, . . . , vm

forman una base de Rm yAvj = λjvj, j = 1, . . . , m

la matriz m×mV = [v1, . . . , vm],

cuyas columnas son los vectores v1, . . . , vm, satisface que

AV = V D (o V −1AV = D),

donde D es la matriz diagonal

D =

λ1 0 0 . . . 00 λ2 0 . . . 0... . . . . . . . . . ...0 . . . 0 λm−1 00 . . . 0 0 λm

.

ya queAV = A[v1, . . . , vm] = [Av1, . . . , Avm] = [λ1v1, . . . , λvm] = V D.

Otra manera de decir que A es diagonalizable es decir que A es semejante a una matriz diago-nal. Recuerde que dos matrices A y B son semejantes si existe una matriz U invertible de modoque A = UBU−1, y que dos matrices semejantes tienen el mismo polinomio característico (losmismos autovalores con la misma multiplicidad, por tanto) aunque no necesariamente los mismosautovectores.

2

Los autovectores de una matriz A asociados a autovalores distintos son linealmente independi-entes, por tanto una matriz es diagonalizable si y solamente si cada autovalor tiene tantos autovec-tores independientes como indique su multiplicidad.

Recuerde sin embargo que no todas las matrices son diagonalizables. El ejemplo más sencillo es

A =

[1 10 1

],

cuyo polinomio característico es pA(x) = det(xI − A) = (x − 1)2 y por tanto λ = 1 es su únicoautovalor (y es doble). Calculamos sus autovectores encontrando las soluciones independientes de

(A− λI)x = 0.

Puesto queA− I =

[0 10 0

]

queda la ecuaciónx2 = 0,

cuyas soluciones son todas las proporcionales a

v =

[10

],

y por tanto no hay dos autovectores de A independientes.Recuerde que si A matriz m × m es real y simétrica entonces, en primer lugar, todos sus

autovalores son reales , y, en segundo lugar, autovectores suyos asociados a autovalores distintosno sólo son independientes sino que además son ortogonales entre sí. Aún más, si A es simétricasiempre es diagonalizable, y además se puede elegir la base de autovectores de manera que sea unabase ortonormal (vectores ortogonales entre sí y de norma 1). La matriz Q = [q1, . . . , qm] cuyascolumnas son los elementos de dicha base es por tanto una matriz ortogonal (QT Q = I). Estapropiedad es tan importante que se la resumimos a continuación.

A matriz m×m es simétrica ⇔ ∃Q con Q−1 = 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 autovectoresgeneralizados de modo que la matriz

V = [v1, . . . , vm],

cuyas columnas son dichos vectores, satisface queAV = V B,

donde B es la matriz diagonal por bloques,

B =

B1 O O . . . OO B2 O . . . O... . . . . . . . . . ...O . . . O Bk−1 OO . . . O O Bk

,

3

siendo k el número de autovalores de A distintos dos a dos, y si estos son λ1, . . . , λk, cada bloqueBj tiene por dimensión la multiplicidad del autovalor λj, y además λj es el único autovalor de Bj.Hay una forma especial de elegir los vectores v1, . . . , vm cuya matriz B resultante se conoce comoforma de Jordan de A. Pero, esté Vd. tranquilo, que el cálculo de autovectores generalizados y de laforma de Jordan es un problema muy mal condicionado, y nadie en su sano juicio se ocupa de ello.

2. MÉTODOS NUMÉRICOS PARA EL CÁLCULO DE AU-TOVALORES Y AUTOVECTORES

2.1. IntroducciónEl problema de calcular los autovalores de una matriz está hoy día bien resuelto desde el punto

de vista numérico, siempre que se trate de matrices cuyas dimensiones no sean exageradamentegrandes y que no tengan autovalores con autovectores asociados que, siendo independientes, seancasi paralelos.

El gran avance en cálculo de los autovalores de una matriz lo produjo la invención de la ite-ración QR (OJO: no confundir con la descomposición QR, que una cosa es la descomposición yotra la iteración). Dicha iteración QR fue inventada independientemente en 1961 por J.G. F. Francisy V. N. Kublanovskaya, y las mayores aportaciones para su compresión y desarrollo se deben a J.H. Willkinson, y están recogidas en su obra The Algebraic Eigenvalue Problem (Clarendon Press,Oxford, 1965).

Tres son los métodos que estudiaremos en esta lección.

El método de la potencia para el cálculo del autovalor de mayor módulo de una matriz.

El método de la potencia inversa para el cálculo del autovector asociado a un autovalor cono-cido.

La iteración QR básica para el cálculo de todos los autovalores de una matriz. El comandoeig de Matlab implementa una versión de la iteración QR excesivamente so�sticada paralas pretensiones de este curso. Puede verse una descripción del mismo en G. H. Golub & C. F.Van Loan, Matrix Computations. Third Edition, The John Hopkins University Press, 1992.

Existen otras técnicas más modernas, pero no tan robustas y todavía por desarrollar completamente.Entre ellas, el conocido como método de Arnoldi reiniciado implícitamente, creado en 1996 porSorensen y Lehoucq, que se utiliza en el comando eigs de Matlab. No veremos este tipo detécnicas pues se salen del alcance de este curso.

2.2. El método de la potenciaEl conocido como método de la potencia sirve para calcular el autovalor de módulo más grande

de una matriz real. Sólo es válido (converge) cuando dicho autovalor de módulo más grande es realy es simple, o, en caso de ser múltiple, tiene asociados tantos autovectores independientes comoindique su multiplicidad.

4

Explicamos aquí el fundamento del caso más sencillo, que se da cuando la matriz es diago-nalizable. Sea A una matriz m × m y denotemos sus autovalores como λ1, . . . , λm, notación queempleamos tras haberlos ordenado por tamaño,

|λ1| > |λ2| ≥ . . . ≥ |λm| .

Observe que sólo se pide que el primer autovalor sea de módulo estrictamente más grande que losdemás . Entre los demás, puede haber autovalores múltiples, pero el primero debe ser simple1.

Sean v1, . . . , vm una base de autovectores asociados, esto es

Avj = λjvj, j = 1, . . . , m.

Para un vector x ∈ IRm, tendremos que

x = α1v1 + α2v2 + · · ·+ αmvm,

para ciertos escalares α1, . . . , αm. Por tanto,

Anx = α1λn1v1 + α2λ

n2v2 + · · ·+ αmλn

mvm = λn1

(α1v1 + α2

(λ2

λ1

)n

v2 + · · ·+ αm

(λm

λ1

)n

vm

). (1)

Ahora bien, puesto que∣∣∣∣λ2

λ1

∣∣∣∣ < 1, . . . ,

∣∣∣∣λm

λ1

∣∣∣∣ < 1 ⇒ lımn→∞

(λ2

λ1

)n

= . . . = lımn→∞

(λm

λ1

)n

= 0,

de donde se sigue quelım

n→∞

(α2

(λ2

λ1

)n

v2 + · · ·+ αm

(λm

λ1

)n

vm

)= 0.

Por ello, para n su�cientemente grande se tiene que

Anx ≈ λn1α1v1 ⇒ An+1x ≈ λ1A

nx.

Por tanto, si denotamos

y = An+1x, z = Anx, para cualquier componente zj 6= 0 de z tenemos λ1 ≈ yj

zj

.

En la práctica, no es conveniente calcular Anx, pues si hay autovalores de módulo mayor queuno, Anx puede tener componentes muy grandes y, eventualmente, producir �over�ow"(el sistemade coma de �otante del ordenador no puede almacenar un número tan grande). Por ello, el algoritmodel método de la potencia es como sigue.1) Tomando x ∈ IRm cualquiera, se hace

z ← x/ ‖x‖ .

1El método de la potencia también produce resultado correctos si λ1 es múltiple, siempre que tenga tantosautovectores independientes asociados como su multiplicidad algebraica

5

2) Hasta que se repitan tantas cifras decimales en λ como nos interese2, se repite lo siguiente2.1) y ← Az2.2) Si j es tal que |zj| = max1≤i≤m |zi|

λ ← yj

zj

,

2.3) z ← y/ ‖y‖Tras realizar este proceso tendremos que

λ ≈ λ1, z ≈ v1

‖v1‖ .

El propósito de dividir por ‖y‖ en el paso 2,3) es evitar el �over�ow� antes mencionadoEjemplo. Para la matriz

A =

1 0 10 1 11 1 0

,

cuyos autovalores son λ1 = 2, λ2 = 1 y λ3 = −1, ejecutamos el método 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 continuación repetimos la siguiente línea unas cuantasveces,

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

El resultado eslambda = 1.6387lambda = 1.7587lambda = 1.8746lambda = 1.9268lambda = 1.9653lambda = 1.9807lambda = 1.9911lambda = 1.9951lambda = 1.9978lambda = 1.9988lambda = 1.9994lambda = 1.9997lambda = 1.9999lambda = 1.9999lambda = 2.0000

2Dicho de otro modo, hasta que dos aproximaciones consecutivas a λ disten menos que una tolerancia previamenteestablecida

6

Podemos comprobar que lo encontrado es una aproximación a un autovalor y su correspondienteautovector calculando la norma del vector A − λv, y viendo que sale una cantidad del orden delerror obtenido en λ (en este caso, inferior a 10−4). Ejecutamos pues

norm((A-lambda*eye(3))*z)

obteniendo la respuesta,ans =

1.8706e-05

que es, efectivamente, un valor pequeño.

El ejemplo anterior muestra también otro detalle importante del método de la potencia. Sillamamos λ

(n)1 a la aproximación a λ1 en el paso n-ésimo del método de la potencia, se tiene que el

error satisface que ∣∣λ1 − λ(n+1)1

∣∣ ≈ λ2

λ1

∣∣λ1 − λ(n)1

∣∣, n →∞.

(Compare por ejemplo los errores de las aproximaciones sexta λ(6)1 = 1,9807, séptima, λ

(7)1 = 1,9911

y octava, λ(7)1 = 1,9951, que son, respectivamente, 0.0193, 0.0089, 0.0045). Este hecho se explica

a partir de la expresión (1), pues el término (asintóticamente) más grande después del autovectorα1v1 es el correspondiende a v2.

El hecho de que los errores decaigan como (λ2/λ1)n hace que en ocasiones se busquen los auto-

valores de la matriz A− µI, y luego se les sume µ a los autovalores encontrados para recuperar losde A. El propósito no es otro que hacer que el cociente (λ2−µ)/(λ1−µ) sea signi�cativamente máspequeño (en módulo) que λ2/λ1, y así efectuar menos iteraciones. Aunque no es de uso generalizado,el método de la potencia cuando se resta un múltiplo de la identidad para acelerar la convergenciase conoce con el nombre de método de la potencia trasladado.Autovalor de módulo más pequeño. También es posible encontrar el autovalor de módulo máspequeño si se satisface

|λ1| ≥ |λ2| ≥ . . . ≥ |λm−1| > |λm| > 0. (2)pues dado que los autovalores de A−1 son

µ1 =1

λm

> µ2 =1

λm−1

≥ . . . ≥ µm−1 =1

λ2

≥ µm =1

λm

se puede aplicar el método de la potencia a la matriz A−1 (¾cree Vd. que será necesario calcular A−1?)Ejemplo (Cont.). Intentamos calcular el autovalor más pequeño de la matriz del ejemplo anterior

A =

1 0 10 1 11 1 0

,

(recuerde que los autovalores son λ1 = 2, λ2 = 1 y λ3 = −1) aplicando el método de la potenciaa A−1. Ejecutando

x=rand(3,1); z=x/norm(x);

7

a continuación

[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 eslambda = 1.6239lambda = 1.1071lambda = 1.4120lambda = 0.8846lambda = 1.3157lambda = 1.2546lambda = 1.2865lambda = 1.2709lambda = 1.2787lambda = 1.2748lambda = 1.2768lambda = 1.2758lambda = 1.2763lambda = 1.2761lambda = 1.2762lambda = 1.2761lambda = 1.2762lambda = 1.2761lambda = 1.2761lambda = 1.2761lambda = 1.2761lambda = 1.2761lambda = 1.2761

y ½HORROR DE LOS HORRORES!. Nos ha ocurrido lo peor que nos puede ocurrir haciendocálculos con ordendor: ½UNOS RESULTADOS ERRÓNEOS QUE PARECEN CORREC-TOS! (¾Sabe Vd. por qué son erróneos?).

Podemos comprobar que son erróneos 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 10−4, que es una cota superior del error absoluto con el que hemos calcu-lado λ = 1,2761 (compare con el valor que obtuvimos en el caso anterior). Note entonces que lacomprobación de calcular ‖Av − λv‖ conviene hacerla siempre para validar los resultados obtenidos.

8

Si ha re�exionado sobre las preguntas que hemos ido haciendo se habrá dado cuenta de que losautovalores de A veri�can que |λ1| > |λ2| = |λ3|, y esto contradice (2), que es la condición quegarantiza la convergencia del método de la potencia cuando se aplica a A−1.

Una posible solución en estos casos puede ser cambiar los autovalores A mediante una traslaciónpor un múltiplo de la identidad. Así por ejemplo, dado que hemos calculado previamente λ1 = 2,podemos probar a aplicar el método 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 continuación

[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

obteniendolambda = -0.6196lambda = -0.6940lambda = -1.1097lambda = -1.0230lambda = -1.0055lambda = -1.0014lambda = -1.0003lambda = -1.0001lambda = -1.0000lambda = -1.0000lambda = -1.0000lambda = -1.0000

que es el valor correcto.Advertencia. No saque la conclusión errónea de que con una simple traslación se solucionan losproblemas de convergencia del método de la potencia cuando se produce empate entre los módulosde los autovalores dominantes. Efectuar traslaciones a una matriz requiere un buen conocimientode los autovalores de la misma que es, en la práctica, circunstancia no muy frecuente.

2.3. El método de la potencia inversaSi se tiene una aproximación µ a un autovalor λ de una matriz A, el procedimiento conocido

como método de la potencia inversa para el cálculo de un autovector asociado se basa en que A−µItiene como autovalor a λ−µ que es de módulo muy pequeño, y por lo tanto en la matriz (A−µI)−1 elautovalor σ1 = 1/(λ−µ) dominará extraordinariamente sobre los demás (i.e., el cociente σ2/σ1 seráextraordinariamente pequeño, por lo que el método de la potencia aplicado a (A−µI)−1 convergerárápido.

El método de la potencia inversa es pues como sigue.

9

1) Se toma y ∈ IRm cualquiera, y se hace

b ← y/ ‖y‖ .

2) Hasta que se repitan tantas cifras decimales en b como nos interese3, se repite lo siquiente2.1) Se calcula la solución x del sistema (A− µI)x = b.2.3) b ← x/ ‖x‖.

Al �nalizar este proceso el vector b será una aproximación a un autovector v asociado a λ.Ejemplo. Para la misma matriz que ya hemos utilizado

A =

1 0 10 1 11 1 0

,

(de autovalores λ1 = 2, λ2 = 1 y λ3 = −1) ejecutamos el método de la motencia inversa enMatlab,

y=rand(3,1); b=y/norm(y);

a continuación

[L,U]=lu(A-1.9999*eye(3));

y repetimos

x=U\(L\b); b=x/norm(x)

obteniendoz =

0.57730.57740.5774

z =0.57740.57740.5774

esto es, en dos iteraciones hemos obtenido una aproximación con al menos 4 cifras decimales co-rrectas al autovector v1 = (1/

√(3))[1, 1, 1]T asociado al autovalor λ1 = 2.

Quizá lo más destacado del método de la potencia inversa es que si µ es una buena aproximacióna λ, la matriz A− µI está muy mal condicionda, por ser casi singular. Sin embargo, los errores quese producen trabajan a nuestro favor.

3Dicho de otro modo, hasta que dos valores consecutivos de x disten en norma menos que una tolerancia previa-mente establecida

10

2.4. La iteración QR

En Matlab, dada una matriz cuadrada A, el comando eig(A) devuelve un vector con losautovalores de A. Por ejemplo, para la matriz de los ejemplos de la sección anterior,

A =

1 0 10 1 11 1 0

,

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

-1.00001.00002.0000

El comando eig también 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.57740.8165 0.0000 -0.5774

D =-1.0000 0 0

0 1.0000 00 0 2.0000

Las tres columnas de la matriz V son de norma 1 (Matlab siempre saca las columnas de la matriz Vcon norma 1) y son proporcionales a los vectores

−1−1

2

,

−1

10

,

111

,

respectivamente, vectores que se comprueba fácilmente que son autovectores de A.El procedimiento que utiliza Matlab para calcular los autovalores de la matriz se conoce como

iteración QR (no confundir con la descomposición QR). Es como sigue,1) Repetir hasta obtener una matriz de autovalores calculables.

1.1) Hallar una descomposición QR de A

A = QR

1.2) Multiplicar R por Q,

A ← RQ

11

Ejemplo 7. Tomemos la matriz

A =

13 5 2 23 11 6 62 2 8 42 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 línea, obtenemos la respuesta

A =20.0000 0.0000 4.0000 0.00000.0000 8.0000 4.4721 0.00010.0000 0.0000 8.0000 0.00000.0000 0.0000 0.0000 4.0000

matriz que es triangular superior, y que como vemos tiene los mismos autovalores que la matriz Ade la que hemos partido.

No explicaremos aquí por qué la iteración QR converge a una matriz en la que se pueden calcularfácilmente los autovalores. Sin embargo, debe saber lo siguiente:

i) Si A = QR es una descomposición QR de A, entonces la matriz RQ es semejante a A, y, portanto, tiene los mismos autovalores. Esto es debido a que

Q−1AQ = Q−1(QR)Q = RQ.

ii) La matriz a la que converge el algoritmo QR no tiene por qué ser triangular superior como ladel ejemplo que hemos visto. En ocasiones, convergerá a una matriz triangular superior porbloques, esto es, de la forma

T =

B11 B12 . . . B1k

B22 . . . B2k

. . . ...Bkk

, donde Bjj es 2× 2 ó 1× 1, j = 1, . . . k. (3)

(Véase el Ejercicio 5). Los autovalores de esta matriz son fáciles de calcular pues su polinomiocaracterístico 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) sonde grado 1 o de grado 2, y por lo tanto es sencillo calcular sus raíces. En otras palabras, losautovalores de A son los de los bloques diagonales Bjj.

iii) En ocasiones ni siquiera converge la iteración QR, aunque lo que ocurre es que a partir de uniterante determinado se obtiene (salvo errores proporcionales a la unidad de redondeo) unamatriz con la estructura de T en (3), pero pudiendo cambiar las componentes de los bloquesdiagonales Bjj de iteración en iteración (véase el Ejercicio 7).

12

iv) El algoritmo aquí explicado es la versión más básica. Lo que se programa en los ordenadores(por ejemplo, lo que ejecuta el comando eig de Matlab) es un poco más so�sticado.

Factorización de Schur. La matriz T en (3) se conoce como forma de Schur (real) de A. De hechose tiene el siguiente teorema que es de fácil demostración (Véanse por ejemplo o.c. Golub & VanLoan, Theorem 7.1.3, o el Teorema 24.9 de L. N. Trefethen & D. Bau, III, Numerical Linear AlgebraSIAM, Philadelphia, 1997).

Teorema 1 Dada una matriz real A de dimensiones m×m, existe una matriz ortogonal Q de igualdimensión de modo que QT AQ = T , donde T es una matriz real con la forma y característicasque se indican en (3). Si A tiene autovalores reales, entonces se puede elegir Q de modo que T seatriangular superior. Por último, tanto si A es real como compleja, existe una matriz compleja U

unitaria (U−1 = UT ) de modo que U

TAU 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, ocompleja en caso contrario. Igual que el comando eig, se puede utilizar como T=schur(A) paraobtener sólamente la matriz T , o bien como [Q,T]=schur(A) si además se desea la matriz depaso Q. El procedimiento de cálculo que utiliza este comando no es otro que la iteración QR.Costo operativo. Cada paso de la iteración QR requiere una factorización QR de una matriz m×m.Por razones de estabilidad numérica dicha factorización se lleva a cabo mediante transformacionesde Householder. En cada paso de la iteración QR, sólamente la factorización QR requiere (según lovisto en la Lección 2)

4

3m3 �ops.

Se trata por tanto de un método costoso desde el punto de vista computacional.Caso de matrices en forma de Hessenberg. Para atenuar el costo operativo de cada pasode la iteración QR, en la práctica, se transforma la matriz A en otra semejante H con forma deHessenberg. Una matriz H se dice que tiene forma de Hessenberg4 (o que es de Hessenberg) si esnula por debajo de su primera subdiagonal, esto es, es de la forma

H =

h11 h12 h13 . . . h1m

h21 h22 h23 . . . h2m

0 h32 h33 . . . h3m... . . . . . . . . . ...0 . . . 0 hm,m−1 hm,m

.

Si la matriz H es de Hessenberg, calcular su factorización QR mediante transformaciones de House-holder se puede hacer en O(m2) �ops en vez de O(m3) �ops.

Para entenderlo basta estudiar el primer paso de la factorización QR. Observe que si B es lamatriz 2× 2 de Householder tal que

[b11 b21

b21 b22

] [h11

h21

]=

[α0

],

4En rigor, de Hessenberg superior.

13

entonces la matriz H1 m×m dada por

H1 =

[B OT

O I

],

es también de Householder, y al ser la primera columna de H nula a partir de su tercera componente,se tiene que

H1H =

[α bT

0 H(2)

],

con H(2) de Hessenberg pues, dado que las m − 2 últimas �las de H1 son las de la identidad, lasm− 2 últimas �las de H(2) son las de H.Ejemplo. Para la matriz

H =

3 5 5 54 0 5 50 3 1 20 0 5 6

,

la matriz B es

B =1

5

[ −3 −4−4 3

], pues 1

5

[ −3 −4−4 3

] [34

]=

[ −50

],

la matriz H1 es pues

H1 =1

5

−3 −4 0 0−4 3 0 0

0 0 5 00 0 0 5

,

y

H1H =1

5

−3 −4 0 0−4 3 0 0

0 0 5 00 0 0 5

3 5 5 54 0 5 50 3 1 20 0 5 6

=

−5 −3 −7 −70 −4 −1 −10 3 1 20 0 5 6

.

Puesto que al multiplicar H1H solo alteramos las dos primeras �las de H, el costo de este productoes de 4m �ops.

Para seguir reduciendo H1H a triangular superior, sólo tendremos que operar en la matriz H(2),que es de Hessenberg y de dimensión (m− 1). Luego estamos en la situación anterior pero con unadimensión menor. Luego el costo en �ops de los productos por las matrices de Householder parallegar a la matriz R es

4m−2∑j=0

(m− j) = 2(m + 2)(m− 1) + (m− 1)r,

donde r es el costo en �ops de calcular una raíz cuadrada. Además la matriz Q es

Q = H1H2 . . . Hm−2.

14

Dado que las matrices Hj son la identidad excepto una caja 2× 2 en algún punto de la diagonal, esfácil ver que la construcción de Q se puede llevar a cabo con un costo aproximado de 2m(m − 1)�ops. Pero, y aún más importante, es también fácil razonar que Q es de Hessenberg. Estudie si noel siguiente ejemplo.

1 −1 0 0−1 −1 0 0

0 0 1 00 0 0 1

1 0 0 00 1 −1 00 −1 −1 00 0 0 1

1 0 0 00 1 0 00 0 1 −10 0 −1 −1

=

=

1 −1 1 0−1 −1 1 0

0 −1 −1 00 0 0 1

1 0 0 00 1 0 00 0 1 −10 0 −1 −1

=

1 −1 1 −1−1 −1 1 −1

0 −1 −1 10 0 −1 −1

.

Por último, note que si Q es de Hessenberg y R triangular superior, entonces el producto RQ esde Hessenberg (recuérdese la interpretación del producto matricial en términos de combinacioneslineales de las columnas de la primera matriz o de las �las de la segunda). Además, no es difícildeducir que el costo de efectuar el producto RQ es aproximadamente de 2m2 �opsEn resumen, si H es de Hessenberg,

i) Si H = QR es una descomposición 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 iteración QR es O(6m2) �ops, y en el caso de matrices simétricas,O(10m) �ops. (Véase siguiente epígrafe).

Caso de matrices simétricas. Si H es una matriz de Hessenberg y además es simétrica, porfuerza es tridiagonal, con lo que la factorización QR y el producto RQ se puede hacer con un costetotal de 10m �ops aproximadamente.Reducción a forma de Hessenberg. Vista la reducción del costo operativo en un paso de laiteración QR en el caso de una matriz en forma de Hessenberg, los algoritmos que implementanla iteración QR en una matriz A, transforman primero A en otra matriz H semejante a A (y portanto con los mismos autovalores que A) pero de Hessenberg.

El proceso de reducción a forma de Hessenberg se hace mediante transformaciones de House-holder, y es muy sencillo de entender. Escribamos la matriz A de orden m×m como

A =

α γ dT

β δ eT

b c B

,

con b, c, d, e ∈ Rm−2 y B matriz (m − 2) × (m − 2). Si fuésemos a hallar la factorización QRbuscaríamos una matriz de Householder que transformase la primera columna de A en un vectorproporcional al primer vector coordenado de Rm. Para reducir A a forma de Hessenberg, la idea esla misma pero olvidándose de la primera �la [α, γ, dT ] de A, y procediendo como si buscásemos lafactorización QR de la matriz formada por las restantes �las de A,

15

Siguiendo esta idea, buscamos entonces la matriz de Householder G de dimensiones (m − 1) ×(m− 1), tal que

G

[βb

]=

[β0

].

Entonces la matriz H1 de dimensión m×m dada por

H1 =

[1 0T

0 G

]

es también de Householder y, efectuando el producto

H1A =

[1 0T

0 G

]

α γ dT

β δ eT

b c B

=

α γ dT

G

[βb

]G

[δc

]G

[eT

B

] =

α γ dT

β δ eT

0 c B

y dado que H−11 = HT

1 = H1, la matriz H1AHT1 es semejante a A (por lo que tiene los mismos

autovalores) y es de la forma

H1AHT1 =

α γ dT

β δ eT

0 c B

[1 0T

0 GT

]=

α [ γ dT ]GT

β [ δ eT ]GT

0 [ c B ]GT

=

α γ dT

β δ eT

0 c B

,

esto es, no ha afectado a la primera columna de H1A. Notemos entonces que la primera columna dela matriz resultante corresponde a una matriz de Hessenberg. Ahora se repite lo que hemos hechoen A pero en la matriz [

δ eT

c B

],

esto es, buscamos una matriz G de Householder de dimensiones (m− 2)× (m− 2) de modo que Gctenga todas sus componentes nulas excepto la primera, y completamos G con el borde superior dela identidad hasta una matriz H2 de tamaño m×m

H2 =

1 0 0T

0 1 0T

0 0 H ′1

,

de modo que la matriz H2(H1AHT1 ) tiene sus dos primeras columnas en forma de Hessenberg, y

como el producto (H2(H1AHT1 ))HT

2 deja inalteradas las dos primeras columnas de (H2(H1AHT1 )),

la matriz H2H1AHT1 HT

2 tiene sus dos primeras columnas de Hessenberg. Siguiendo con este proceso,pues, la matriz

Hm−2 . . . H1AHT1 . . . HT

m−2 = (Hm−2 . . . H1)A(Hm−2 . . . H1)−1

es de Hessenberg y semejante a A. Compruebe que ha comprendido este proceso haciendo el Ejer-cicio 11.

Si se cuenta el número de �ops que se realizan en este proceso resulta ser de 103m3 �ops, y otros

43m3 �ops si se desea construir la matriz Q = Hm−2 . . . H1.Matlab dispone del comando hess para obtener una matriz de hessemberg ortogonalmente

semejante a otra dada.Resumen. En la práctica pues, la iteración QR se lleva a cabo

16

1) Reduciendo primero A a forma de Hessenberg, con un coste de O(103m3) �ops.

2) Aplicando la iteración QR a la matriz de Hessenberg resultante, con un coste de O(6m2) �opspor paso, o de O(10m) en el caso en A sea simétrica y, por tanto, su forma de Hessenbergtridiagonal.

En la práctica no es ésta la única desviación sobre el algoritmo QR básico explicado al principiode la lección. También se efectúan traslaciones para acelerar la convergencia. Un paso con traslaciónsería como sigue

1) Calcular la descomposición QR de H − µI, esto es, H − µI = QR

2) Efectuar H ← RQ + µI

Cómo elegir el factor de traslación µ queda fuera del ámbito de este curso. Puede encontrar infor-mación en la bibliografía citada al principio de la lección. Debe saber sin embargo, que en cada pasoµ se elige en función de las componentes de la subdiagonal de la matriz H, y cambia de paso enpaso.

3. CUESTIONES RELACIONADAS3.1. Localización de autovalores

Debe conocer el siguiente teorema, conocido como Teorema de los Círculos de Gershgorin, y queproporciona información sobre dónde están los autovalores de una matriz A. Note que si una matrizes diagonal, sus autovalores son los elementos diagonales. El siguiente teorema nos indica que sila matriz no es diagonal, los autovalores están en círculos con centro en los elementos diagonales(Véase 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 están en el conjuntom⋃

i=1

{z ∈ C | |z − aii| ≤ ri}, donde ri =∑

j 6=i

|aij| , i = 1, . . . , m.

Es más, cada componente conexa de dicho conjunto contiene tantos autovalores (contados tantasveces como indique su multiplicidad) como círculos la formen.

Ejemplo La matriz

A =

5 0 −10 2 11 −1 0

17

tiene sus autovalores en el conjunto formado por la unión de los círculos de centro 5 y radio 1, decentro 2 y radio 1 y de centro 0 y radio 2.

0 520 2

La unión de estos círculos tiene dos componentes conexas, una de ellas formada por el círculo decentro 5 y radio 1, que contiene 1 autovalor, λ1 = 4,8063, y otra formada por la unión de los otrosdos círculos, que contiene dos autovalores, λ2 = 1,0468+0,5033i, y λ3 = 1,0468− 0,5033i. Note queno tiene por qué haber un autovalor dentro de cada círculo, pero que dentro de cada componenteconexa hay tantos autovalores como círculos la forman.

3.2. Matrices no diagonalizables y matrices fuertemente no normalesMencionamos en la introducción que no trataríamos el caso de matrices no diagonalizables. Tene-

mos una buena noticia y una mala que darle. Recordará del primer curso lo tedioso que era calcularlas potencias de estas matrices. Recuerde que si A era diagonalizable y V era una matriz formadapor los autovalores de A, y D la matriz diagonal con los autovalores a los que están asociados,

A = V DV −1 ⇒ An = V DnV −1,

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

A =

[2 −1

−1 2

]=

1

2

[1 1

−1 1

] [3 00 1

] [1 −11 1

],

yAn =

1

2

[1 1

−1 1

] [3n 00 1n

] [1 −11 1

]=

3n

2

[1 −1

−1 1

]+

1

2

[1 11 1

].

En cambio para matrices no diagonalizables (aparte de más engorroso el cálculo de autovectoresgeneralizados y la matriz reducida por bloques o forma de Jordan), en la potencia n-ésima de Aaparecen también potencias de n del orden de la multiplicidad de los autovalores menos uno.Ejemplo. La matriz

A =

[1 10 1

]

como ya vimos en el repaso no es diagonalizable, pues 1 es autovalor doble y no hay otro autovectorque sea independiente de v = [1, 0]T , y

An =

[1 n0 1

].

18

La buena noticia es que las matrices no diagolizables no existen en la práctica; sólo existen enlos primeros cursos para fastidiar a los alumnos. Bueno casi . La razón de que no existan en lapráctica es que basta una pequeña perturbación de la matriz para volverla diagonalizable. Para εtan pequeño como se quiera, cualquiera de las matrices

A =

[1 10 1− ε

], A =

[1 1ε 1

], A =

[1 + ε 1

0 1

],

es diagonalizable pues tiene autovalores distintos. Puesto que en la práctica cualquier cálculo vieneafectado de error de redondeo, la matriz A, a la postre, será diagonalizable en la práctica. Lo de�Bueno casi� es porque estas matrices diagonalizables que están cerca de una no diagonalizablepresentan los mismos problemas que las no diagonalizables. Por ello, en la práctica, sí se tienen encuenta las matrices no diagonalizables, pues aunque sean irreproducibles en un ordenador, modelanbien el comportamiento de las matrices diagonalizables pero cercanas.

Así por ejemplo, efectuando cálculos en Matlab se tiene que

fl(A100) =

[1 1000 1

], f l(A106

) =

[1 106

0 1

], f l(A1010

) =

[1 00 1

],

esto es, cuando n →∞, fl(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 ejecutamosA=[1 1;0 1];[V,D]=eig(A);D A*V-V*D

las respuestas son

D =1 00 1

ans =1.0e-15 *

0 0.22200 0

esto es, D es una matriz diagonal con el único autovalor doble en la diagonal, y las columnas de Vson autovectores de A salvo errores del tamaño de la unidad de redondeo. Como en principio losautovalores son todos proporcionales a v = [1, 0]T , las columnas V debe ser de la forma

[ ±√1− ε2

±ε

],

para ε del tamaño de la unidad de redondeo. De hecho, ejecutandoformat short e; V

la respuesta es

V =

19

1.0000e+00 -1.0000e+000 2.2204e-16

esto es, las columnas de V , siendo independientes, son casi paralelas. La matriz V −1 será de tamañogrande (piense en su cálculo por la Regla de Cramer), y por tanto la matriz V estará muy malacondicionada. Si calculamos una estimación de su número de condición, cond(V ) = ‖V ‖

∥∥V −1∥∥,

format short; condest(V)

la respuesta es

ans =9.0072e+15

Ello explica que, aunque a efectos numéricos A es una matriz diagonalizable con 1 como únicoautovalor (i.e., la identidad), sin embargo An no tiene dicho comportamiento salvo para n → ∞,pues ∥∥fl(An)− An

∥∥∥∥An

∥∥ ≤ Ccond(V ).

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 matricesnormales son aquéllas que poseen una base ortonormal de autovectores Aparte de las matricessimétricas, son también matrices normales las matrices antisimétricas y las matrices ortogonales.

La mala noticia es que las matrices fuertemente no normales existen, y están acechándole paracomplicarle la vida en algún momento de su vida profesional (tal vez cuando haga el proyecto de�n de carrera). Le complicarán la vida porque, como acabamos de ver, en las matrices fuertementeno normales, el número de condición tan alto de la matriz V de sus autovectores, hace irrelevantecualquier información que se tenga sobre los autovalores de la misma. Esto suele plantear problemas,por ejemplo, en Mecánica de Fluidos cuando el número de Reynolds es alto, o en problemas deconvección térmica ante fuertes corrientes convectivas. En fín, si tiene mala suerte, ya lo descubrirá.5

4. CUESTIONES Y PROBLEMASCUESTIONES

Ejercicio 1 Calcule el polinomio característico de la matriz

A =

1 0 10 1 11 1 0

,

y obtenga sus autovalores y autovectores asociados.5Puede encontrar más información 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 simétrica

A =

3 −1 3 1−1 3 1 3

3 1 3 −11 3 −1 3

,

son λ1 = 2, λ2 = −2, y λ3 = λ4 = 6, encuentre la matriz ortogonal Q de modo que QT AQ seadiagonal.

Ejercicio 3 Aplique el método de la potencia a la matriz

A =

[1 11 1

],

dos veces, la primera partiendo del vector [−2, 0]T , y la segunda partiendo del vector [1,−1]T . ¾Sonesperables los resultados? ¾Están mal las explicaciones que hemos dado en la lección? ¾Es esperableun comportamiento similar en la práctica si se parte de un vector aleatorio?

Ejercicio 4 Determine los valores del parámetro α para los que, partiendo de los vectores [1, 0]T

y [1, 1]T , converge el método de la potencia cuando se aplica a la matriz

A =

[α 11 α

],

Revise el ejercicio anterior.

Ejercicio 5 Aplique la iteración QR a la matriz

A =

2 0 00 0 10 1 0

.

¾Convergerá la sucesión de iterantes a una matriz triangular superior? ¾Qué autovalores tiene A?

Ejercicio 6 ¾Por qué en los ejemplos de la lección, cuando aplicamos el método de la potencia a lamatriz inversa resolvemos sistemas en vez de calcular la inversa? ¾Pór qué en esos mismos ejemploshacemos primero una descomposición LU y luego en cada paso resolvemos sistemas con L y con Uen lugar de resolver sistemas directamente con la matriz A?

Ejercicio 7 Aplique la iteración QR a matrices aleatorias antisimétricas de orden 4 (pruebe convarias). Puede crear dichas matrices en Matlab con los comandos A=rand(4); A=(A-A')/2.Convénzase de que la iteración no converge pero, que a partir de un punto determinado podemosobtener sus autovalores.

Ejercicio 8 Obtenga la factorización 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 característico es (x + 1)(x− 2)(x− 1).

Ejercicio 10 Sabiendo que los autovalores de

A =

5 6 −42 6 2

−2 6 1

son λ1 = 9, λ2 = 6 y λ3 = −3, calcule una descomposición de Schur A = QTQT de la matriz A quesatisfaga que |t11| ≥ |t22| ≥ |t33| .Ejercicio 11 Obtenga mediante transformaciones de Householder la forma de Hessenberg de lamatriz

A =

2 6 71 5 01 1 0

.

Ejercicio 12 Es posible que cuando estudió ecuaciones diferenciales aprendiese que dado el poli-nomio p(x) = xm + αm−1x

m−1 + · · ·+ α1x + α0, se llama matriz compañera del mismo a

A =

0 1 0 . . . 0... . . . . . . . . . ...0 . . . 0 1 00 . . . 0 0 1−α0 . . . −αm−3 −αm−2 −αm−1

.

a) Utilizando el procedimiento de inducción, demuestre que el polinomio característico de A es p(x).b) Pruebe también que si ξ es una raíz de dicho polinomio, entonces el vector v = [1, ξ, . . . , ξm−1]T

es autovector asociado.c) Pruebe que si ξ es raíz de p, entonces A− ξI siempre tiene rango m− 1, y por tanto, si p tiene

raíces múltiples, 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 descomposicón de Schur A = QTQT de la matriz

A =

3 0 2α 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 diagonalprincipal y unos en las dos subdiagonales es simétrica de�nida positiva y su determinante es menoro 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 descomposicón de Schur A = QTQT de la matriz

A =

4 0 42− 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 ordenn. Calcule los autovalores y autovectores de QQT .

23

PROBLEMAS

Problema 1 Se considera la matriz

A =1

2

5 −5 6 10 10 −4 4

−1 −1 8 5−5 −5 10 7

.

1. Diseñe una función de Matlab que ejecute el método de la potencia. Los argumentos deentrada deben ser, además de la matriz, el vector inicial, la toleracia TOL para la cual laiteración se detiene en el momento en que dos aproximaciones sucesivas, λ(n) y λ(n+1) satisfa-gan que

∣∣λ(n+1) − λ(n)∣∣/

∣∣λ(n+1)∣∣ < TOL, y el número máximo de iteraciones permitidas. Los

argumentos de salida deben ser el autovalor calculado y el número de iteraciones realizadas,y el último valor de

∣∣λ(n+1) − λ(n)∣∣/

∣∣λ(n+1)∣∣

2. Para un número máximo de iteraciones permitidas igual a 10, 20 y 30, aplique la funcióndiseñada en el apartado anterior a la matriz A, con TOL = 10−6 y vector inicial [1, 1, 1, 1]T .Idem con [−1, 1, 0, 0]. Describa y justi�que las diferencias observadas.

3. Mediante el comando eig, calcule los autovalores de A − 2I. Convergerá el método de lapotencia con esta nueva matriz?

4. Repita el apartado 2 pero en lugar de tratar de aproximar el autovalor de módulo máximo de A,hágalo para el de módulo mínimo de A− 2I. Para ello, modi�que la función del apartado 1.

24

Problema 2 El método de la potencia sólo es efectivo cuando hay un autovalor de módulo mayorque los demás. Si en una matriz real el autovalor de mayor mayor módulo es complejo, se puedemodi�car el método de la potencia para que proporcione una aproximación a dicho autovalor.

1. Pruebe que si λ es autovalor complejo de A, x un autovector asociado y el polinomio realp(t) = t2 + βt + γ tiene por raíces λ y su conjugada λ entonces se satisface que

A2x + βAx + γx = 0, (4)y que si y es autovector no nulo de A asociado a otro autovalor µ 6= λ entonces A2y+βAy+γy 6=0.

2. Basándose 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 solución x(n) = [β(n), γ(n)]T ∈ R2 del problema de mínimos cuadradosB(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 módulo estrictamente mayor que el resto de los autovalores de A, entoncesλ(n) → λ cuando n →∞.Elabore una función de Matlab que ejecute este algoritmo. Los argumentos de salida debenser el autovalor y el número de iteraciones realizadas, y los de entrada deben ser A, el vectorinicial u(0), el número máximo de iteraciones a realizar, y la tolerancia TOL para la que laiteración se detiene si dos estimaciones consecutivas del autovalor distan menos que TOL.Nota: Para resolver el problema de mínimos cuadrados puede emplear la orden \ deMatlab.

3. Aplique la función desarrollada en el apartado anterior a la matriz

A =

2,5 −0,5 4 −1−2,5 2,5 2 −1

1 2 1 −10,5 0,5 1 4

,

con las siguientes especi�caciones. el vector de partida es [1, 1, 1, 1]T , la tolerancia debe sermenor que 10−6, y el número máximo de iteraciones es 10, 20, 40. Escriba los valores obtenidosde λ y de las iteraciones. ¾Qué conclusiones se pueden sacar cuando el algoritmo devuelve unvalor de iteraciones igual al máximo permitido?

4. ¾Qué ocurre si se repite el proceso anterior esta vez partiendo del vector [1,−1, 0,−1]T ?.Describa y justi�que las diferencias observadas.

25

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

A =

0 −5 8 3−1 4 0 3−1 −1 5 3−5 −5 10 6

, M =

5 1 −1 −11 5 −1 −1

−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 cualquierescalar λ para el que existe un vector no nulo v tal que Av = λMv. Los autovalores de una matrizson un caso particular de autovalores generalizados (correspondientes al par (A, I)). Observe quesi M es invertible, entonces λ es autovalor generalizado del par (A,M) si y sólo si λ es autovalor deM−1A.

1. Diseñe una función de Matlab que calcule el autovalor generalizado de mayor módulo deun par (A,M), mediante la aplicación del método de la potencia a una matriz adecuada.Los argumentos de salida deben ser el autovalor y el número de iteraciones realizadas, y enlos de entrada deben estar A y M . Aplíquelo al par (A,M) dado en (5) con las siguientesespeci�caciones: el vector de partida es [1, 2, 3, 4]T , la tolerancia (diferencia entre el valorabsoluto de dos estimaciones sucesivas del autovalor generalizado) debe ser menor que 10−6,y el número máximo de iteraciones es 10, 20, 40. Escriba los valores obtenidos de λ y delas iteraciones. ¾Qué conclusiones se pueden sacar cuando el algoritmo devuelve un valor deiteraciones igual al máximo permitido?

2. ¾Qué ocurre si se repite el proceso anterior esta vez partiendo del vector [−1, 1, 0, 0]T ?. Des-criba y justi�que las diferencias observadas.

3. Diseñe una función de Matlab similar a la del apartado 1 pero implementando el métodode la potencia inversa para encontrar el autovalor generalizado de módulo más pequeño delpar (A,M). Pruébelo con el par (A − 1,2M, M). ¾Cuál es pues el autovalor generalizado demódulo más pequeño de dicho par? Escriba también la función de Matlab diseñada.

4. Calcule con 6 cifras decimales correctas el valor de

lımN→∞

λ(N)min,

donde λ(N)min es el autovalor generalizado de módulo más pequeño del par (A(N), B(N)) donde

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

A(N) = N

2 −1 0 . . . . . . 0

−1 2 −1. . . ...

0. . . . . . . . . . . . ...

... . . . . . . . . . . . . 0

0. . . −1 2 −1

0 . . . . . . 0 −1 2

, M (N) =1

6N

4 1 0 . . . . . . 0

1 4 1. . . ...

0. . . . . . . . . . . . ...

... . . . . . . . . . . . . 0

0. . . 1 4 1

0 . . . . . . 0 1 4

.

Describa cómo lo ha hecho y las instrucciones de Matlab empleadas.

26

Problema 4 (Septiembre 2009) La iteración ortogonal es una generalización del método de lapotencia y sirve para calcular los autovalores de mayor módulo de una matriz. Si en el método dela potencia se parte de un vector v de norma 1, y se repite

w ← Av, λ ← vT w, v ← w/ ‖w‖ ,

(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 número de iteracionespre�jado, en la iteración ortogonal para calcular los p autovalores de mayor módulo se parte de unamatriz V de p columnas, ortogonales entre sí y de norma 1 (por ejemplo, p columnas distintas dela 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 euclídea de dos valores consecutivos de e sea menor que unatolerancia �jada de antemano (o se supere el máximo de iteraciones pre�jado).

1. Diseñe una función de Matlab (o modi�que la hecha en su día para el método de la potencia)que implemente la iteración ortogonal. Los argumentos de entrada deben ser la matriz A, lamatriz V inicial, la tolerancia TOL para la cual la iteración se detiene en el momento en quedos aproximaciones consecutivas, digamos e(n) y e(n−1), satisfagan que

∥∥e(n) − e(n−1)∥∥ /‖e(n)‖ <

TOL, y el número máximo de iteraciones permitidas. Los argumentos de salida deben ser elvector e de autovalores calculado, el número de iteraciones realizadas y el último valor de∥∥e(n) − e(n−1)

∥∥ /‖e(n)‖. Escriba el listado en la hoja de respuestas.Nota. En cada iteración, después de calcular el vector e y antes de calcular el error, debeordenar las componentes de e con el comando e=sort(e,'descend'). La descomposiciónQR reducida de una matriz rectangular W se calcula con el comando [Q,R]=qr(W,0). Lasp primeras columnas de la identidad de tamaño m se obtienen con el comando eye(m,p).

2. Para un número máximo de iteraciones permitidas igual a 10, 20 y 30, aplique la funcióndiseñada en el apartado anterior a la matriz

A =

5 −5 6 10 10 −4 4

−1 −1 8 5−5 −5 10 7

.

con TOL = 10−6 y matriz inicial igual a las p primeras columnas de la identidad, para p = 1y p = 3. Escriba los autovalores obtenidos (bastan las cuatro primeras cifras signi�cativas) ensu hoja de respuestas.

3. Para J = 800, considere la matriz A simétrica de dimensiones (J−1)×(J−1) cuyos elementosson nulos salvo, por cada �la, i = 1, . . . , J − 1, ai,i−50 = −1, ai,i = 1,3, ai,i+50 = −1. Calculecon 6 cifras signi�cativas correctas los 50 de mayor módulo, λ1 ≥ λ2 ≥ . . . ≥ λ50, y escriba ensu 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 combinación lineal devectores es la combinación lineal de los valores de dicho comando en cada uno de los vectores). Poreso, su valor es equivalente al producto por una matriz, esto es comando(x) y A∗x coinciden (salvocantidades del orden del error de redondeo), donde A es la matriz cuyas columnas son el valor decomando en las columnas de la matriz identidad. Dicha matriz recibe el nombre de matriz asociadaal mencionado comando y sus autovaloresse denominan los autovalores del comando. Para vectoresx 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 signi�cativas.

2. Para N = 4096, calcule el autovalor dominante del comando que nos ocupa con seis cifrassigni�cativas correctas.Nota: No intente construir la matriz asociada al comando pues se quedará sin memoria.

Problema 6 Considere la matriz A simétrica 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 sonnulos salvo los que están en torno a la diagonal principal que toman los valores

ti,i−2 =1

12J2, ti,i−1 = −16

12J2, ti,i =

30

12J2, ti,i+1 = −16

12J2, ti,i+2 =

1

12J2,

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

1. Para J = 103, 104, 105, calcule la solución de Ax = b donde b es un vector de unos y escribalas ocho primeras cifras signi�cativas de xJ/2.

2. Para J = 103, 104, 105, calcule con ocho cifras signi�cativas correctas el autovalor de módulomás pequeño de A.

28