Вы находитесь на странице: 1из 10

Captulo 4 Diagonalizacin de matrices

El problema de diagonalizacin de matrices consiste en, dada una matriz cuadrada A, de dimension n n, encontrar una aplicacin lineal S que reduzca A a la forma diagonal mediante la transformacin similar S1 AS, es decir S1 AS = donde es una matriz diagonal. El algebra elemental da la siguiente prescripcin para encontrar dicha transformacin lineal: 1. Resolver la ecuacin caracterstica dada por la anulacin del determinante de A I: |A I| = 0 donde I es la matriz identidad y una variable. Si la matriz A es diagonalizable, dicha ecuacin caracterstica toma la forma c0 + c1 + + cn n = 0

y tiene n soluciones, no necesariamente distintas. 2. Construir la matriz de la aplicacin lineal S tomando como columnas los vectores propios vk correspondientes a los valores propios k , normalizados a la unidad, obtenidos como solucin de los n sistemas de ecuaciones (indeterminadas) Avk = k vk o lo que es lo mismo (A k I)vk = 0

En el caso de races mltiples, se toma una base ortogonal del subespacio propio denido por el valor propio mltiple, que se obtiene mediante el mtodo de ortogonalizacin de Schmidt. Si un valor propio j tiene multiplicidad n j , el subspacio propio correspondiente tiene dimensin n j . 3. La matriz diagonal tiene como elementos de la diagonal los valores propios k . Cada valor propio aparece repetido un nmero de veces igual a su multiplicidad. Los algoritmos numricos basados en esta receta no son ecientes. De hecho, el primer paso, consistente en calcular las races de la ecuacin caracterstica (por cualquiera de los mtodos 55

56

CAPTULO 4. DIAGONALIZACIN DE MATRICES

estudiados en el captulo 2 o similares), es mucho ms lento que los mtodos ms ecientes de diagonalizacin numrica, hasta el punto de que uno de los mtodos ms ecientes de encontrar races de polinomios es buscar una matriz cuya ecuacin caracterstica sea el polinomio cuyas races se desea calcular, y diagonalizar dicha matriz por mtodos numricos de diagonalizacin ecientes. Los mtodos de diagonalizacin de una matriz arbitraria son relativamente complejos. Uno de los casos ms frecuentes es el de matrices simtricas. En este caso, existen mtodos mucho ms sencillos que el mtodo general. El mtodo ms eciente es reducir la matriz a la forma tridiagonal mediante el mtodo de Hoserholder y reducir esta matriz a la forma diagonal mediante el mtodo QR. Este es el mtodo que se utiliza en la librera TNT empleada en las prcticas. Vamos a ver a continuacin el mtodo de Jacobi. Aunque este mtodo no es interesante como algoritmo nmrico para grandes matrices, es particularmente intuitivo y pedaggico, y utiliza el conceptos de eliminacin sucesiva de elementos que utilizan tambin los mtodos ms ecientes. Para matrices pequeas y medias, realiza la diagonalizacin en unas pocas iteraciones y es un mtodo robusto.

4.1. Mtodo de Jacobi


Este es un mtodo de diagonalizacin de matrices simtricas especialmente diseado para realizar los clculos manualmente o con calculadora, aunque cuando se programa en un ordenador es un mtodo robusto y relativamente eciente. La idea del mtodo de Jacobi es realizar rotaciones, de forma que se anule el elemento ms grande fuera de la diagonal. Una rotacin es una transformacin similar mediante una matriz ortogonal. Como la inversa y la transpuesta de una matriz ortogonal coinciden, cada paso del mtodo de Jacobi consiste en realizar la transformacin An = OT An1 On n

donde On es la matriz de rotacin del paso nsimo y An1 es el resultado de las n 1 rotaciones precedentes. Para jar ideas, antes de estudiar el caso general vamos a ver el efecto de una rotacion en los ejes x e y sobre una matriz de tres dimensiones. Podemos escribir la matriz de rotacin como cos sin 0 O = sin cos 0 0 0 1

4.1. MTODO DE JACOBI y el resultado de la rotacin es


cos sin OT AO = sin cos 0 0 cos sin 0 sin cos 0 0 0 1 a13 cos sin 0 a23 sin cos 0 = a33 0 0 1 a11 cos a12 sin a12 cos + a11 sin a13 a12 cos a22 sin a22 cos +a sin a23 = a13 a23 a33 a12 a22 a23 cos2 + a
11 sin 2

57

0 a11 0 a12 1 a13

Si deseamos que se anule el elemento a12 debemos de elegir el ngulo de rotacion que cumple a12 (cos2 sin2 ) + (a11 a22 ) sin cos = 0 que da sin cos a12 = 2 sin2 ) a22 a11 (cos = cot 2 = a22 a11 2a12 (4.2)

a12 (cos2 sin2 ) + (a11 a22 ) sin cos a13 cos a23 sin

a11 cos2 + a22 sin2 2a12 sin cos

a12 (cos2 sin2 ) + (a11 a22 ) sin cos a13 cos a23 sin a22 + 2a12 sin cos

a23 cos + a13 sin

a23 cos + a13 sin (4.1) a33

Podemos expresar esta igualdad en funcin del ngulo doble como (4.3)

Vemos que no es necesario invocar funciones trigonmetricas para calcular cot 2. A n de economizar tiempo de clculo tambin es conveniente calcular sin y cos sin invocar funciones trigonomtricas. Denominando al valor de cot 2 dado por la ecuacin 4.3, y teniendo en cuenta que (cos2 sin2 ) 1 tan2 = cot 2 = 2 sin cos 2 tan podemos escribir la siguiente ecuacin de segundo orden para tan tan2 + 2 tan 1 = 0 cuyas soluciones son tan = 2 + 1 La experiencia indica que el mtodo converge ms rpido si siempre se coge la rotacin de menos de 45 , que corresponde a la raz ms pequea. Dicha raz ms pequea se puede escribir en funcin del signo de como tan = + sig() 2 + 1 (4.4)

Los valores de sin y cos los podemos determinar a partir de tan mediante frmulas que no precisan el uso de funciones trigonomtricas.

58

CAPTULO 4. DIAGONALIZACIN DE MATRICES

donde, deniendo

Pasemos ahora a considerar el mtodo de Jacobi en el caso general. En cada etapa buscamos el elemento mayor en valor absoluto fuera de la diagonal, que tomamos como a pq . Realizamos una rotacin que anule dicho elemento. La matriz de rotacin correspondiente tendr 1 en la diagonal y 0 fuera de la diagonal salvo en los elementos O pp , Oqq , O pq y Oqp . La podemos escribir como como 1 0 0 0 1 0 0 0 . . . . . . . . . . . .. . .. . . . . . . . . . . . . . . . . . . . . . . . . . . 0 O pp O pq 0 0 cos sin 0 . . . . . . . . (4.5) . . . . = . . .. .. . . . . . . . . . . O= . . . . . . . . . . . . . . 0 O Oqq 0 0 sin cos 0 qp . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 0 0 0 1 0 0 0 1 aqq a pp 2a pq la anulacin de a pq nos proporciona las siguientes relaciones para sin , cos y tan = tan = + sig() 2 + 1 1 cos = tan 2 + 1 sin = tan cos (4.6)

(4.7)

Mediante esta rotacin, denominando s = sin , c = cos y t = tan , y teniendo en cuenta la ecuacin 4.1, los elementos de la matriz A se transforman como a pp = c2 a pp + s2 aqq 2sca pq aqq = caqq + s2 a pp + 2sca pq arp = carp sarq arq = carq + sarp a pq = (c2 s2 )a pq + sc(a pp aqq ) (4.8)

donde r indica todos los ndices distintos de p y q. Todos los dems elementos quedan inalterados. Estas relaciones se pueden escribir de forma an ms compacta, teniendo en cuenta la anulacin de a pq , como: a pp = a pp ta pq aqq = aqq + ta pq arp = arp s(arq + arp ) arq = arq + s(arp arq ) (4.9)

4.1. MTODO DE JACOBI donde

59

s = (4.10) 2 1+c Esta es la relacin que debe de utilizarse en la programacin del algoritmo para actualizar A en cada iteracin, ya que por un lado ahorra algunas operaciones y por otro expresa el elemento actualizado como el elemento inicial ms un valor de actualizacin, evitando cancelaciones de trminos similares (underows). La demostracin de estas ltimas relaciones es como sigue: de las relaciones trigonomtricas del ngulo doble y de la anulacin de a pq obtenemos = tan 2 sin2 2 2 sin2 + cos2 cos2 2 2 2 2 = 1c = 1c = s s s(1 + c) 1 + c 2 sin cos 2 2

tan = 2

2 sin cos 2 2

c2 s2 a pq sc con lo que las ecuaciones 4.8 de actualizacin de A quedan como: a pp aqq = arp = carp sarq = arp + (c 1)arp sarq = arp s(arq + arq = carq + sarp = arq + (c 1)arq + sarp = arq + s( a pp = a pp + s
2 2 2c s

c1 arq + arp ) = arq + s(arp arq ) s = a pp + (c2 1)a pp + s2 aqq 2sca pq = a pp s2 (a pp aqq ) 2sca pq = sc a pq 2sca pq = a pp ta pq c2 s2 a pq + 2sca pq = aqq + ta pq sc

1c arp ) = arp s(arq + arp ) s

aqq = aqq + s2 a pp + (c2 1)aqq + 2sca pq = aqq + s2

Si a pp = aqq , entonces es nulo. En este caso se toma = 45 y t = 1. Si el mtodo converge en m iteraciones, los vectores propios sern las columnas la matriz V obtenida como producto de las m transformaciones realizadas: V = O1 O2 Om La matriz V se puede actualizar en cada iteracin mediante V = VO que da las relaciones: vrs = vrs r = p, s = q v pr = cv pr + svqr vqr = sv pr + cvqr que se obtienen de la forma de O dada por la ecuacin 4.5. Notemos que en cada iteracin anulamos un elemento a pq , pero que este elemento vuelve a reaparecer, aunque con menos intensidad, en la siguiente rotacin. En este sentido, el mtodo

(4.11)

60

CAPTULO 4. DIAGONALIZACIN DE MATRICES

de Jacobi es un mtodo innito, es decir ha,cen falta innitas iteraciones para llegar a la matriz diagonalizada exacta. Esto coloca al mrtodo de Jacobi en desventaja, por lo menos terica, con los mtodos de Givens y Hauserholder, que obtienen la matriz diagonal en un nmero nito de iteraciones. Sin embargo, el mtodo de Jacobi es robusto, de indudable valor pedaggico, y para pequeas matrices el tiempo de clculo es como mucho el doble del necesario por los mtodos mencionados. El mtodo tal y como lo acabamos de exponer es conveniente para el clculo manual o con calculadora, pero en la prctica, en el caso de matrices de grandes dimensiones, la bsqueda del elemento de mayor valor absoluto fuera de la diagonal es muy costosa en tiempo de clculo, tanto o ms que los clculos de la iteracin en s,1 por lo que es ms conveniente anular los elementos fuera de la diagonal mediante ciclos sistemticos o barridos. El mtodo de Jacobi converge, en el sentido que dado un arbitrariamente pequeo, despus de un nmero de rotaciones sucientemente elevado se cumple = a2 < (4.12) rs
r<s 2 2 De hecho, de las ecuaciones 4.8 se obtiene fcilmente que para r = p, q se cumple arq + arp = a2 + a2 , con lo que la nica disminucin de es debida a la anulacin de a pq , por lo que el rq rp efecto de una rotacin sobre es = a2 (4.13) pq

Como podemos anular el a pq que deseemos, es obvio que el mtodo es convergente. Cuando se programa el algoritmo, se ja la tolerancia que es el valor de para el que se paran las iteraciones. Cuando se aplica el mtodo de Jacobi por ciclos, despus de algunos ciclos hay elementos que se hacen muy pequeos. Es conveniente denir un umbral , de forma que si un elemento cumple a2 < entonces se salta la rotacin para dicho elemento. Se puede jar pq como por ejemplo la mitad del valor promedio de a2 cuando se alcanza la tolerancia : pq = 1 2 2 n(n 1) n2

Resumen: La manera ms adecuada de programar el mtodo de diagonalizacin de Jacobi es realizar ciclos de iteraciones, anulando por ejemplo a12 al comienzo del ciclo y an1n al nal del mismo. En cada iteracion se calcula y de aqu t, c y s mediante las ecuaciones ?? y seguidamente mediante la ecuacin 4.10. A continuacin se procede a la actualizacin de A y de los
n(n 1) ele2 N(N 1) mentos (la matriz tiene n2 elementos y n en la diagonal y adems es simtrica), lo que implica = 2 (n + 1)n(n 1)(n 2) comparaciones, mientras que actualizar la matriz despus de una iteracin implica ac8 tualizar 2n 2 elementos. Sea tcompar el tiempo de CPU requerido para comparar dos elementos y tactual el tiempo promedio necesario para actualizar un elemento. Si n es sucientemente grande para que se cumpla (n + 1)n(n 1)(n 2)tcompar > 16(n 1)tactual , entonces la determinacin del mayor elemento cuesta ms tiempo que el resto de la iteracin. Cuando n es enorme, (n + 1)n(n 2)tcompar n3tcompar puede ser muchas veces mayor que 16tactual , y en este caso la realizacin de barridos es ampliamente ventajoso.
1 Determinar

el elemento de mayor valor absoluto fuera de la diagonal implica comparar N =

4.2. MATRICES HERMTICAS

61

Realizar una iteracin del mtodo de Jacobi. 1 Anulamos a12 lo que da = 0. Tomamos por lo tanto t = 1, = , lo que da s = c = y 4 2 s 1 y actualizamos A y V : = = 1+c 1+ 2 a11 = a11 ta12 = 2 + 1 = 3 a12 = 0 a22 = a22 + ta12 = 2 1 = 1

vectores propios mediante las ecuacion es 4.9 y 4.11. Finalmente, se verica si se ha alcanzado la convergencia deseada calculando el valor de dado por 4.12 (mediante la ecuacin 4.13) y comparndolo con la tolerancia especicada . Ejemplo: Sea A dada por 2 1 0 A = 1 2 1 0 1 2

1 1 1 0) = a13 = a13 s(a23 + a13 ) = 0 (1 + 2 1+ 2 2 1 1+ 2 1 )= a23 = a23 + s(a13 a23 ) = 1 + (0 + 2 1+ 2 2+ 2 v13 = v23 = v31 = v32 = 0; v33 = 1; 1 1 v11 = cv11 sv12 = ; v12 = sv11 + cv12 = 2 2 1 1 v21 = cv21 sv22 = ; v22 = sv21 + cv22 = 2 2 Observamos que = a2 + a2 + a2 ha pasado de = 2 para la matriz inicial a 12 13 23 1 3+2 2 = 1 = a2 = + 12 2 6+4 2 despus de la primera iteracin. En la segunda iteracin anulamos a13 y procedemos anlogamente.

4.2. Matrices hermticas


Una matriz H es hermtica si es igual a la matriz compleja conjugada de su transpuesta denotada por H H = H Las matrices hermticas son las anlogas de las simtricas en el campo complejo, en el sentido de que todos sus valores propios son reales. El mtodo de Jacobi se puede aplicar a matrices

62

CAPTULO 4. DIAGONALIZACIN DE MATRICES

hermticas. En vez de una rotacin se realiza una transformacin unitaria que se puede expresar convenientemente de la forma cos exp(i) sin exp(i) 0 sin cos 0 U = 0 0 1 que actuando sobre A da:
U AU

donde en la ltima matriz hemos remplazado s = sin y c = cos .

cos exp(i) sin exp(2i) 0 cos exp(i) sin 0 a11 a12 a13 sin exp(i) sin cos 0 cos 0 a12 a22 a23 a a a33 0 0 1 0 0 1 13 23 cos exp(i) sin 0 a11 cos exp(i) a12 sin a12 cos + a11 sin exp(i) a13 cos exp(i) a sin sin exp(i) sin exp(i) cos 0 a12 a22 cos + a12 a23 = 22 0 0 1 a cos exp(i) a sin a sin exp(i) + a cos a33 13 23 13 23 a11 c2 + a22 s2 2csRe[a12 exp(i)] a12 c2 exp(i) a s2 exp(i) + (a11 a22 )cs a13 c exp(i) a23 s 12 2 + a s2 + 2csRe[a exp(i)] a c2 exp(i) a12 s2 exp(i) + (a11 a22 )cs a22 c a23 c + a13 s exp(i) 11 12 12 a c exp(i) a s a c + a s exp(i) a33 13 23 23 13

La condicin de anulacin de a12 es a12 cos2 exp(i) a sin2 exp(i) + (a11 a22 ) sin cos = 0 12 que, separando partes real e imaginaria, queda como (cos2 sin2 )Re[a12 exp(i)] + (a11 a22 ) sin cos = 0 (cos2 + sin2 )Im[a12 exp(i)] = 0 De la expresin a12 exp(i) = (aR + iaI )(cos i sin ) = aR cos + aI sin + i(aI cos aR sin ) 12 12 12 12 12 12 obtenemos que las condiciones que deben cumplir los ngulos y son: tan = = tan 2 = = aI 12 aR 12

2(aR cos + aI sin ) 12 12 a22 a11 De estas expresiones se procede anlogamente al caso real al clculo de t, s, c, exp(i) mediante operaciones puramente algebricas y seguidamente la actualizacin de la matriz A. Tenemos z exp(i) = (cos i sin ) = 1 1 + 2 i 1 + 2

4.2. MATRICES HERMTICAS t = + sig() + 1, 1 c= , t2 + 1 s = tc

63

a pp = c2 a pp + s2 aqq 2scRe[za pq ] aqq = c2 a pp + s2 aqq + 2scRe[za pq ] a pr = cza pr saqr que se pueden escribir de la forma mas compacta a pp = a pp tRe[za pq ] aqq = aqq + tRe[za pq ] a pr = za pr s(aqr + za pr ) aqr = zaqr + s(a pr zaqr ) con = tan . 2 Al igual que en caso real se cumple
2 2 a pr + aqr = a2 + a2 pr qr

a pq = 0 r = p, q aqr = caqr + sza pr

En el caso de matrices de pequea dimensin se elimina el elemento de fuera de la diagonal de mayor mdulo. Para grandes dimensiones se realiza una eliminacin por ciclos. Otra posibilidad es plantear el problema de diagonalizar una matriz compleja de n dimensiones como el de diagonalizar una matriz real de 2n dimensiones. Podemos escribir una matriz hermtica como H = A + iB donde A y B son matrices reales que cumplen AT = A BT = B El problema de encontrar los valores propios correspondientes a los vectores propios (complejos) x = u + iv lo podemos plantear como Hx = x que se se puede expresar como Au Bv + i(Av + Bu) = (u + iv)

64

CAPTULO 4. DIAGONALIZACIN DE MATRICES

Este problema es equivalente al siguiente problema en 2n dimensiones: A B B A donde matriz extendida u v A B B A = u v

es obviamente simtrica. Los valores propios de la matriz H aparecen repetidos dos veces, con vectores propios (u, v) y (v, u). En general, en compiladores ecientes, la utilizacin de la clase complex permite resolver el problema en el campo complejo ms rpidamente que el problema asociado en el campo real, aunque el factor de velocidad nunca llegue a 2 (lo cual slo se consigue prescindiendo de la clase complex y programando las operaciones de complejos en aritmtica real). La diagonalizacin de matrices hermticas es un problema ubiquo en Mecnica Cuntica y todas las disciplinas que la utilizan (Fsica Nuclear, Fsica Atmica,. . . ).

Вам также может понравиться