Los algoritmos de autovalores de divide y vencerás son una clase de algoritmos para matrices simétricas hermíticas o reales que recientemente (alrededor de la década de 1990) se han vuelto competitivos en términos de estabilidad y eficiencia con algoritmos más tradicionales como el algoritmo QR . El concepto básico detrás de estos algoritmos es el enfoque de divide y vencerás de la informática . Un problema de autovalores se divide en dos problemas de aproximadamente la mitad del tamaño, cada uno de ellos se resuelve recursivamente y los autovalores del problema original se calculan a partir de los resultados de estos problemas más pequeños.
Este artículo aborda la idea básica del algoritmo tal como lo propuso originalmente Cuppen en 1981, la cual no es numéricamente estable sin mejoras adicionales.
Fondo
Como ocurre con la mayoría de los algoritmos de valores propios para matrices hermíticas, el método de divide y vencerás comienza con una reducción a la forma tridiagonal . Para unmatriz, el método estándar para esto, a través de las reflexiones de Householder , tomaoperaciones de punto flotante, oSi también se necesitan los autovectores . Existen otros algoritmos, como la iteración de Arnoldi , que pueden funcionar mejor para ciertas clases de matrices; no los analizaremos aquí con más detalle.
En ciertos casos, es posible descomponer un problema de valores propios en problemas más pequeños. Consideremos una matriz diagonal por bloques.
Los valores propios y los vectores propios deson simplemente los deyY casi siempre será más rápido resolver estos dos problemas más pequeños que resolver el problema original de una sola vez. Esta técnica puede utilizarse para mejorar la eficiencia de muchos algoritmos de autovalores, pero tiene especial relevancia para la estrategia de divide y vencerás.
Para el resto de este artículo, asumiremos que la entrada al algoritmo de divide y vencerás es unamatriz tridiagonal simétrica realEl algoritmo puede modificarse para matrices hermíticas.
Dividir
La parte de división del algoritmo de divide y vencerás surge de la constatación de que una matriz tridiagonal es "casi" diagonal por bloques.
El tamaño de la submatrizllamaremos, y luegoes. es casi diagonal de bloques independientemente de cómose elige. Para mayor eficiencia, normalmente elegimos.
Escribimoscomo una matriz diagonal por bloques, más una corrección de rango 1 :
La única diferencia entreyes que la entrada inferior derechaenha sido reemplazado pory de manera similar, enla entrada superior izquierdaha sido reemplazado por.
El resto del paso de división consiste en resolver para los valores propios (y si se desea, los vectores propios) dey, es decir, encontrar las diagonalizacionesyEsto se puede lograr con llamadas recursivas al algoritmo de divide y vencerás, aunque las implementaciones prácticas a menudo cambian al algoritmo QR desplazado implícitamente para submatrices suficientemente pequeñas. [ 1 ]
Conquistar
La parte de conquista del algoritmo es la menos intuitiva. Dadas las diagonalizaciones de las submatrices, calculadas anteriormente, ¿cómo hallamos la diagonalización de la matriz original?
Primero, defina, dóndees la última fila deyes la primera fila deAhora es elemental demostrar que
La tarea restante se ha reducido a encontrar los valores propios de una matriz diagonal más una corrección de rango uno. Antes de mostrar cómo hacerlo, simplifiquemos la notación. Buscamos los valores propios de la matriz, dóndees diagonal con entradas distintas yes cualquier vector con entradas distintas de cero. En este caso.
El caso de una entrada cero es simple, ya que si w i es cero, (,d i ) es un par propio (está en la base estándar) dedesde .
Sies un valor propio, tenemos:
dóndees el vector propio correspondiente. Ahora
Ten en cuenta quees un escalar distinto de cero.nison cero. Sisi fueran cero,sería un vector propio deporSi ese fuera el caso,contendría solo una posición distinta de cero ya quees diagonal distinta y por lo tanto el producto internoDespués de todo, no puede ser cero. Por lo tanto, tenemos:
o escrita como una ecuación escalar,
Esta ecuación se conoce como la ecuación secular . Por lo tanto, el problema se ha reducido a hallar las raíces de la función racional definida por el lado izquierdo de esta ecuación.
La resolución de la ecuación secular no lineal se puede realizar utilizando una técnica iterativa, como el método de Newton-Raphson . Sin embargo, cada raíz se puede encontrar en O (1) iteraciones, cada una de las cuales requierefracasos (para un-función racional de grado), lo que hace que el costo de la parte iterativa de este algoritmo. El método multipolar rápido también se ha empleado para resolver la ecuación secular enoperaciones. [ 2 ] [ 1 ]
Análisis
W utilizará el teorema maestro para recurrencias de divide y vencerás para analizar el tiempo de ejecución. Recuerda que arriba dijimos que elegimosPodemos escribir la relación de recurrencia :
En la notación del teorema maestro,y por lo tanto. Claramente,, así que tenemos
Anteriormente, señalamos que reducir una matriz hermitiana a forma tridiagonal requierefallos. Esto empequeñece el tiempo de ejecución de la parte de divide y vencerás, y en este punto no está claro qué ventaja ofrece el algoritmo de divide y vencerás sobre el algoritmo QR (que también tomaflops para matrices tridiagonales).
La ventaja de dividir y conquistar se presenta cuando también se necesitan los autovectores. Si este es el caso, la reducción a la forma tridiagonal toma, pero la segunda parte del algoritmo tomaTambién. Para el algoritmo QR con una precisión objetivo razonable, esto es, mientras que para la estrategia de divide y vencerás es. La razón de esta mejora es que en divide y vencerás, elparte del algoritmo (multiplicandomatrices) es independiente de la iteración, mientras que en QR, esto debe ocurrir en cada paso iterativo. Agregar lafracasos para la reducción, la mejora total es deafracasos.
El uso práctico del algoritmo de divide y vencerás ha demostrado que, en la mayoría de los problemas de valores propios realistas, el algoritmo en realidad funciona mejor que esto. La razón es que muy a menudo las matricesy los vectoresSuelen ser numéricamente dispersos , lo que significa que tienen muchas entradas con valores menores que la precisión de punto flotante , lo que permite la deflación numérica , es decir, dividir el problema en subproblemas desacoplados.
Variantes e implementación
El algoritmo que se presenta aquí es la versión más sencilla. En muchas implementaciones prácticas, se utilizan correcciones de rango 1 más complejas para garantizar la estabilidad; algunas variantes incluso utilizan correcciones de rango 2.
Existen técnicas especializadas para encontrar raíces de funciones racionales que pueden superar al método de Newton-Raphson en rendimiento y estabilidad. Estas técnicas pueden utilizarse para mejorar la parte iterativa del algoritmo de divide y vencerás.
El algoritmo de divide y vencerás se puede paralelizar fácilmente , y los paquetes de cálculo de álgebra lineal , como LAPACK, contienen implementaciones paralelas de alta calidad.
Referencias
- 1 2 Demmel, James W. (1997). Álgebra lineal numérica aplicada (PDF) . Sociedad de Matemáticas Industriales y Aplicadas. págs. 216–228 . ISBN 9780898713893.
- ↑ Livne, Oren E.; Brandt, Achi. "N raíces de la ecuación secular en O(N) operaciones" . SIAM Journal on Matrix Analysis and Applications . 24 (2): 439– 453. doi : 10.1137/S0895479801383695 . ISSN 0895-4798 .
- Demmel, James W. (1997), Álgebra lineal numérica aplicada , Filadelfia, PA: Society for Industrial and Applied Mathematics , ISBN 0-89871-389-7, MR 1463942 .
- Cuppen, JJM (1981). "Un método de divide y vencerás para el problema propio tridiagonal simétrico". Matemática numérica . 36 (2): 177– 195. doi : 10.1007/BF01396757 . S2CID 120504744 .
- Álgebra lineal numérica
- Algoritmos de divide y vencerás

