domingo, 11 de diciembre de 2016

Método de Jacobi para Eigenvalores y Eigenvectores

Los eigenvalores y eigenvectores, o también llamados valores y vectores propios de una matriz, tienen representaciones útiles para la ingeniería civil, por ejemplo en el ámbito estructural.  Los eigenvalores y Eigenvectores representan respectivamente las frecuencias naturales de vibración y modos de vibrar de una estructura.

Las propiedades físico mecánicas de una estructura, en el método de elementos finitos pueden ser almacenadas en matrices cuadradas simétricas.  Luego de estas matrices pueden obtenerse los valores y vectores propios para el análisis dinámico de la estructura.
El método tradicional para obtener los valores propios de una matriz cuadrada es mediante el polinomio característico de la matriz.  Sin embargo este método es poco útil para matrices más grandes que 3x3.  Es por esto que se inventaron nuevos métodos iterativos para el cálculo de estos valores propios.

Uno de los métodos conocidos es el propuesto por Jacobi, el cual consiste en aplicar rotaciones estratégicas en ciertos puntos de la matriz cuadrada para diagonalizar la matriz.  Este método es análogo al utilizado para encontrar las inercias principales de una figura, o cuando deseamos encontrar los esfuerzos principales de un estado arbitrario de esfuerzos, con la única diferencia de que esta vez se lo realiza en un espacio multidimensional.
El algoritmo resumido de Jacobi para la obtención de los valores y vectores propios es el siguiente:



Donde:
[A] = Matriz que se desea diagonalizar
[U] = Triangular superior de la Matriz [A], haciendo cero todos los demás valores desde la diagonal hacia abajo, incluyendo la diagonal de [A]
m = Valor máximo absoluto de la triangular superior [U].
k,l = posiciones del valor m dentro de la matriz [U]
Toleracia = valor cercano a cero al que se quiere llegar para lograr la convergencia.  Cuando la matriz A va diagonalizándose en  cada iteración, los valores fuera de la diagonal de [A] van tendiendo a cero.  El método termina las iteraciones cuando se alcanza la precisión deseada. Digamos que la tolerancia puede escogerse con magnitudes del orden de 1E-8. (existen métodos para determinar esta tolerancia en función de los valores de la diagonal principal de la matriz A original)
Ø = ángulo de rotación aplicado a las filas k,l
[P]i = Matriz de rotación.  Se deben guardar todas las matrices i de cada iteración para encontrar la matriz [P] final
[P]= matriz que contiene en columnas, todos los vectores propios cuando se llegó a la convergencia
λ1, λ2, ….   = Eigenvalores o valores propios una vez alcanzada la convergencia


Nota: El algoritmo mostrado utiliza una matriz [A] de 10x10, sin embargo es aplicable a matrices cuadradas simétricas de cualquier dimensión.

1 comentario:

  1. En verdad, muy pero muy interesante tu blog con temas bien abordados y explicados. Te felicito. Me suscribo a tu canal de YT. Saludos

    ResponderEliminar