stringtranslate.com

rotación jacobi

En álgebra lineal numérica , una rotación de Jacobi es una rotación , Q k , de un subespacio lineal bidimensional de un espacio producto interno de n dimensiones , elegido para poner a cero un par simétrico de entradas fuera de la diagonal de un real simétrico de n × n. matriz , A , cuando se aplica como una transformación de similitud :

Es la operación central del algoritmo de valores propios de Jacobi , que es numéricamente estable y adecuado para su implementación en procesadores paralelos [ cita requerida ] .

Sólo las filas k y ℓ y las columnas k y ℓ de A se verán afectadas, y A permanecerá simétrica. Además, rara vez se calcula una matriz explícita para Q k ; en cambio, se calculan los valores auxiliares y A se actualiza de forma eficiente y numéricamente estable. Sin embargo, como referencia, podemos escribir la matriz como

Es decir, Q k es una matriz identidad excepto por cuatro entradas, dos en la diagonal ( q kk y q ℓℓ , ambas iguales a c ) y dos colocadas simétricamente fuera de la diagonal ( q k y q k , igual a s y − s , respectivamente). Aquí c  = cos θ y s  ​​= sen θ para algún ángulo θ; pero para aplicar la rotación, no se requiere el ángulo en sí. Usando la notación delta de Kronecker , las entradas de la matriz se pueden escribir:

Supongamos que h es un índice distinto de k o ℓ (que deben ser distintos). Entonces la actualización de similitud produce, algebraicamente:

Cálculo numéricamente estable

Para determinar las cantidades necesarias para la actualización, debemos resolver la ecuación fuera de la diagonal para obtener cero (Golub y Van Loan 1996, §8.4). Esto implica que:

Establezca β en la mitad de esta cantidad:

Si a k ​​ℓ es cero podemos parar sin realizar una actualización, así nunca dividimos por cero. Sea t tan θ. Luego con algunas identidades trigonométricas reducimos la ecuación a:

Para la estabilidad elegimos la solución:

De esto podemos obtener c y s como:

Aunque ahora podríamos usar las ecuaciones de actualización algebraicas dadas anteriormente, puede ser preferible reescribirlas. Dejar:

de modo que ρ = tan(θ/2). Entonces las ecuaciones de actualización revisadas son:

Como se señaló anteriormente, nunca necesitamos calcular explícitamente el ángulo de rotación θ. De hecho, podemos reproducir la actualización simétrica determinada por Q k conservando solo los tres valores k , ℓ y t , con t establecido en cero para una rotación nula.

Ejemplo tridiagonal

Algunas aplicaciones pueden requerir múltiples entradas de ceros en una matriz de similitud , posiblemente en forma de matriz tridiagonal . [1] Dado que las rotaciones jacobianas pueden eliminar ceros de otras celdas que previamente fueron puestas a cero, generalmente no es posible lograr la tridiagonalización simplemente poniendo a cero cada celda fuera de la tridiagonal individualmente en una matriz de tamaño mediano a grande. Sin embargo, si se realizan rotaciones jacobianas repetidamente en la celda tridiagonal superior con el valor absoluto más alto usando una celda adyacente justo debajo o hacia la izquierda para rotar, entonces se espera que todas las celdas no triangulares converjan en cero después de varios iteraciones. En el siguiente ejemplo, hay una matriz de 5X5 que se va a tridiagonalizar en una matriz similar, .

Para tridiagonalizar una matriz en una matriz , las celdas fuera de la tridiagonal [1,3], [1,4], [1,5], [2,4], [2,5] y [3,5] deben continuar se pondrá a cero de forma iterativa hasta que el valor absoluto máximo de esas celdas esté por debajo de un umbral de convergencia aceptable. Este ejemplo utilizará 1.e-14.. Las celdas debajo de la diagonal se pondrán a cero automáticamente, debido a la naturaleza simétrica de la matriz. La primera rotación jacobiana estará en la celda fuera de la tridiagonal con el valor absoluto más alto, que por inspección es [1,4] con un valor de 11. Para que esta entrada sea cero, se debe cumplir la condición especificada en las ecuaciones anteriores para las coordenadas de celda que se van a poner a cero ( ) y para las coordenadas de rotación seleccionadas de ( ), y se reproducen a continuación para la primera iteración.

La primera iteración de rotación, produce una matriz con las celdas [1,4] y [4,1] puestas a cero, como se esperaba. Además, los valores propios y el determinante de son idénticos a los de y T1 también es simétrico, lo que confirma que la rotación jacobiana se realizó correctamente. La siguiente iteración seleccionará la celda [2,5] que contiene el valor absoluto más alto, 4.8001142, de todas las celdas que se van a poner a cero.

Después de 10 iteraciones de poner a cero la celda con el valor absoluto máximo usando rotaciones jacobianas en la celda justo debajo, el valor absoluto máximo de todas las celdas fuera de la tridiagonal es 2,6e-15. Suponiendo que este criterio de convergencia sea aceptablemente bajo para la aplicación para la que se realiza, a continuación se muestra una matriz triangular similar.

Dado que y tienen valores propios y determinantes idénticos y también son simétricos, y son matrices similares con tridiagonalización.

Ejemplo de valores propios

La rotación jacobiana se puede utilizar para extraer los valores propios de manera similar al ejemplo de triangulación anterior, pero poniendo a cero todas las celdas por encima de la diagonal, en lugar de la tridiagonal, y realizando la rotación jacobiana directamente en las celdas que se van a poner a cero, en lugar de una celda adyacente.

Comenzando con la misma matriz que el ejemplo tridiagonal,

La primera rotación jacobiana estará en la celda fuera de la diagonal con el valor absoluto más alto, que por inspección es [1,4] con un valor de 11, y la celda de rotación también será [1,4], en la ecuaciones anteriores. El ángulo de rotación es el resultado de una solución cuadrática, pero en la ecuación se puede ver que si la matriz es simétrica, entonces se asegura una solución real.

La primera iteración de rotación, produce una matriz con las celdas [1,4] y [4,1] puestas a cero, como se esperaba. Además, los valores propios y el determinante de son idénticos a los de y T1 también es simétrico, lo que confirma que la rotación jacobiana se realizó correctamente. La siguiente iteración seleccionará la celda [3,4] que contiene el valor absoluto más alto, 8.5794421, de todas las celdas que se pondrán a cero.

Después de 25 iteraciones de poner a cero la celda con el valor absoluto máximo usando rotaciones jacobianas en la celda justo debajo, el valor absoluto máximo de todas las celdas fuera de la diagonal es 9.0233029E-11. Suponiendo que este criterio de convergencia sea aceptablemente bajo para la aplicación para la que se realiza, a continuación se muestra una matriz diagonalizada similar.

Los valores propios ahora se muestran en diagonal y se pueden extraer directamente para usarlos en otros lugares.

Dado que y tienen valores propios y determinantes idénticos y también son simétricos, son matrices similares que se diagonalizan con éxito.

Ver también

Referencias

  1. ^ Kinayman, Noyan; Aksun, Michigan (2005). Circuitos de microondas modernos. 685 Canton Street, Norwood, MA, EE. UU.: Artech House, Inc. págs. 506, 507, 511. ISBN 1-58053-725-1.{{cite book}}: CS1 maint: date and year (link) CS1 maint: location (link)