14

Inversión de matrices n n Método: similar al método de Gauss-Jordan

Embed Size (px)

DESCRIPTION

Inversión de matrices n n  Método: similar al método de Gauss-Jordan 1. Aumentar la matriz A con la matriz n n unidad, I :     - PowerPoint PPT Presentation

Citation preview

Inversión de matrices nn

Método: similar al método de Gauss-Jordan

1. Aumentar la matriz A con la matriz nn unidad, I :

2. Pivotar en los elementos de la matriz 11, 22, ... para generar combinaciones lineales de las líneas de la matriz aumentada, de forma que se reproduzca una matriz unidad en la posición original de A. La matriz resultante en la posición izquierda es la inversa de A :

si se encuentran ceros en los elementos de la diagonal, se permutan filas. Si no existen filas que poder permutar para poder convertir el elemento diagonal en diferente de cero, entonces la matriz A no tiene inversa.

Ejemplo:

1 1 3 1 0 0 r2 = r2 2r1 1 1 3 1 0 0 r2 = 1/3 r2 2 1 2 0 1 0 0 3 4 2 1 0 2 2 1 0 0 1 r2 = r3 + 2r1 0 4 7 2 0 1

1 1 3 1 0 0 r1 = r1 + r2 1 0 5/3 1/3 1/3 0 r3 = 3/5 r3 0 1 4/3 2/3 1/3 0 0 1 4/3 2/3 1/3 0 0 4 7 2 0 1 r3 = r3 + 4r2 0 0 5/3 2/3 4/3 1

1 0 5/3 1/3 1/3 0 r1 = r1 5/3 r3 1 0 0 1 1 1 0 1 4/3 2/3 1/3 0 0 1 0 6/5 7/5 4/5 0 0 1 2/5 4/5 3/5 r2 = r2 + 4/3 r3 0 0 1 2/5 4/5 3/5

j

Determinante de la matriz

A = ii

Sistema de valores y vectores propios de una matriz

Se definen los valores propios (i) y vectores propios (xi) de una matriz A nxn como aquellos que cumplen

A xi = i xi

Se pueden hallar, solucionando el polinomio de grado n definido por

A1=0donde 1 es la matriz unidad nxn.

La solución de los valores y vectores propios de una matriz es, en general, un problema complejo, al que hay dedicados varios paquetes profesionales (EISPACK,

NAG, ...). Casi todos están basados en las soluciones propuestas por Wilkinson & Reinsch en su “Handbook for Automatic Computation, Vol II, Linear Algebra”, Springer-Verlag (1971).

Debido a la complejidad del cálculo, se recomienda utilizar paquetes profesionales especializados en el tipo de matriz y resultados que se desean resolver. Por ejemplo, las matrices simétricas reales son más fáciles de resolver que las matrices complejas no-Hermitianas (las Hermitianas cumplen aij=a*

ji). También consume menos tiempo calcular sólo valores propios y no los vectores propios, o tan sólo calcular parte de ellos (como, por ejemplo, si se desa compactificar la base de datos utilizando el análisis de componentes principales PCA).

En esta sección discutiremos tan sólo métodos para encontrar los valores y vectores propios de las matrices simétricas reales.

Transformaciones de Jacobi para matrices simétricas reales

El método se basa en la propiedad que las transformaciones de similitud tienen de conservar los valores propios de una matriz. En general,

A P1 A P1 P2

A P2 ... D (diagonal)

Donde las transformaciones de Jacobi (como Ppq) son rotaciones de plano con el fin de eliminar alguno de los elementos pq no diagonales de la matriz A.

1 0 ... 0 0 1

...

0 0 ... c ... s 0 0 p ...

Ppq = 0 0 1 0 0

...

0 0 ... -s ... c ... 0 0 q ...

0 0 ... ... 0 1 n

1 2 p q n-1 n

Los valores propios de la matriz A son los elementos diagonales de la matriz diagonal resultante D, y cada unos de los vectores propios vienen dados por las columnas de la transformación acumulada al producir D finalmente.

X = P1 P2 ...

Este método funciona de forma eficiente (no demasiado lento) para n10, y habitualmente tan sólo produce una transformación aproximadamente diagonal. De hecho se debe de especificar una precisión en la diagonabilidad deseada.

Transformaciones de Jacobi para matrices simétricas reales

En concreto, para eliminar el elemento pq de la primera transformación, lo igualamos a 0, y obtenemos el ángulo de rotación,

cot 2 (c2 s2)/(2sc) = (aqqapp)/2apq

donde c=cos y s=sin. Haciendo t s/c, la definición de se puede reescribir como t2 2t1=0, de donde podemos calcular el cociente de los valores s,c necesarios para la transformación

t=sgn() 21

En el caso de que 2 llegue a ser demasiado grande para el cálculo numérico, se puede reemplazar t=(2)1, de lo que se deduce c=(t2+1)½, s=tc.

Para evitar errores de redondeo, se recomienda reescribir las ecuaciones de transformación como incrementos de los elementos no transformados:

app1 = app tapq aqq

1 = aqq + tapq

arp1 = arp s ( arq + arp) arq

1 = arq + s ( arp arp)

donde s/(1+c).

Los vectores propios se pueden calcular a cada paso inicializando una matriz V unidad y redefiniendo sus elementos a cada paso como

vrs1 = vrs vrp

1 = cvrp s vrq vrq1 = svrp + c vrq

o sus equivalentes en función de para minimizar errores de redondeo.

Se procede en orden para la eliminación de elementos, aunque óptimamente se debería eliminar el elemento no diagonal de mayor valor absoluto.

En el caso de que n>10, existen métodos más potentes. En Numerical Recipes (Press et al. ), se explican varios métodos de triangulación de matrices, tras los cuales se puede resolver el problema de valores y vectores propios mediante el algoritmo QR (o QL).