stringtranslate.com

Rotación de 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 de producto interno n- dimensional , elegido para poner a cero un par simétrico de entradas fuera de la diagonal de una matriz simétrica real n × n , A , cuando se aplica como una transformación de similitud :

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

Solo las filas k y ℓ y las columnas k y ℓ de A se verán afectadas, y A permanecerá simétrico. Además, rara vez se calcula una matriz explícita para Q k ℓ ; en cambio, se calculan valores auxiliares y se actualiza A de una manera 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 simétricamente ubicadas fuera de la diagonal ( q k y q k , iguales 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:

Computación numéricamente estable

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

Establezca β en la mitad de esta cantidad:

Si a k ​​ℓ es cero podemos detenernos sin realizar una actualización, por lo que 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 utilizar las ecuaciones de actualización algebraicas dadas anteriormente, puede ser preferible reescribirlas. Sea:

De modo que ρ = tan(θ/2). 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 cero en una matriz de similitud , posiblemente en forma de una matriz tridiagonal . [1] Dado que las rotaciones jacobianas pueden eliminar ceros de otras celdas que se pusieron a cero previamente, por lo general no es posible lograr la tridiagonalización simplemente poniendo a cero cada celda fuera de la tridiagonal individualmente en una matriz mediana a grande. Sin embargo, si las rotaciones jacobianas se realizan repetidamente en la celda tridiagonal anterior con el valor absoluto más alto utilizando una celda adyacente justo debajo o a la izquierda para rotar, entonces se espera que todas las celdas fuera de la tridiagonal converjan en cero después de varias iteraciones. En el siguiente ejemplo, es una matriz 5X5 que se va a tridiagonalizar en una matriz similar, .

Para tridiagonalizar la matriz en la matriz , las celdas fuera de la tridiagonalidad [1,3], [1,4], [1,5], [2,4], [2,5] y [3,5] deben continuar siendo puestas a cero iterativamente 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 será 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 hacer que esta entrada sea cero, la condición especificada en las ecuaciones anteriores debe cumplirse para que las coordenadas de la celda se pongan a cero ( ) y para las coordenadas de rotación seleccionadas de ( ), y se reproducen a continuación para la primera iteración.

Para forzar que las celdas [1,4] y [4,1] sean 0 rotando en la celda [1][3]:

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 para seleccionará la celda [2,5] que contiene el valor absoluto más alto, 4.8001142, de todas las celdas que se pondrán a cero.

Después de 10 iteraciones de poner a cero la celda con el valor absoluto máximo utilizando rotaciones jacobianas en la celda justo debajo, el valor absoluto máximo de todas las celdas no tridiagonales es 2,6e-15. Suponiendo que este criterio de convergencia es aceptablemente bajo para la aplicación para la que se está realizando, la matriz triangularizada similar se muestra a continuación.

Dado que y tienen valores propios y determinantes idénticos y también son simétricos, y son matrices similares al estar tridiagonalizadas.

Ejemplo de valores propios

La rotación jacobiana se puede utilizar para extraer los valores propios de una 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 en una celda adyacente.

Comenzando con la misma matriz que el ejemplo tridiagonal,

La primera rotación jacobiana se realizará 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 las ecuaciones anteriores. El ángulo de rotación es el resultado de una solución cuadrática, pero se puede ver en la ecuación que si la matriz es simétrica, entonces se asegura una solución real.

Para forzar que las celdas [1,4] y [4,1] sean 0 rotando en la celda [1][4]:

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 para 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 utilizando 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 es aceptablemente bajo para la aplicación para la que se está realizando, la matriz diagonalizada similar se muestra a continuación.

Los valores propios ahora se muestran en diagonal y pueden extraerse directamente para su uso en otro lugar.

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

Véase también

Referencias

  1. ^ Kinayman, Noyan; Aksun, MI (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)