El algoritmo de Lanczos es un método iterativo ideado por Cornelius Lanczos que es una adaptación de los métodos de potencia para encontrar elautovalores y autovectores "más útiles" (que tienden a los valores más altos/más bajos extremos) de unMatriz hermitiana , dondesuele ser, pero no necesariamente, mucho más pequeño que. [ 1 ] Aunque computacionalmente eficiente en principio, el método tal como se formuló inicialmente no fue útil, debido a su inestabilidad numérica .
En 1970, Ojalvo y Newman demostraron cómo hacer que el método fuera numéricamente estable y lo aplicaron a la solución de estructuras de ingeniería muy grandes sometidas a carga dinámica. [ 2 ] Esto se logró utilizando un método para purificar los vectores de Lanczos (es decir, reortogonalizando repetidamente cada vector recién generado con todos los generados previamente) [ 2 ] a cualquier grado de precisión, lo que, cuando no se realizaba, producía una serie de vectores que estaban altamente contaminados por aquellos asociados con las frecuencias naturales más bajas.
En su trabajo original, estos autores también sugirieron cómo seleccionar un vector inicial (es decir, usar un generador de números aleatorios para seleccionar cada elemento del vector inicial) y sugirieron un método determinado empíricamente para determinar, el número reducido de vectores (es decir, debe seleccionarse para que sea aproximadamente 1,5 veces el número de autovalores precisos deseados). Poco después, su trabajo fue seguido por Paige, quien también proporcionó un análisis de errores. [ 3 ] [ 4 ] En 1988, Ojalvo produjo una historia más detallada de este algoritmo y una prueba de error de autovalores eficiente. [ 5 ]
El algoritmo
- Introduzca una matriz hermitianade tamañoy, opcionalmente, un número de iteraciones(por defecto, deje).
- Estrictamente hablando, el algoritmo no necesita acceso a la matriz explícita, sino solo a una función.que calcula el producto de la matriz por un vector arbitrario. Esta función se llama como máximoveces.
- Salida ymatrizcon columnas ortonormales y una matriz simétrica real tridiagonalde tamaño. Si, entonceses unitario y.
- Advertencia: La iteración de Lanczos es propensa a la inestabilidad numérica. Al ejecutarla con aritmética no exacta, se deben tomar medidas adicionales (como se describe en secciones posteriores) para garantizar la validez de los resultados.
- Dejarsea un vector arbitrario con norma euclidiana.
- Paso de iteración inicial abreviado:
- Dejar.
- Dejar.
- Dejar.
- Parahacer:
- Dejar(también norma euclidiana ).
- Si, entonces deja,
- de lo contrario, elija comoun vector arbitrario con norma euclidianaque es ortogonal a todo.
- Dejar.
- Dejar.
- Dejar.
- DejarSea la matriz con columnas. Dejar.
- Notapara.
En principio, existen cuatro maneras de escribir el procedimiento de iteración. Paige y otros trabajos demuestran que el orden de operaciones anterior es el más estable numéricamente. [ 6 ] [ 7 ] En la práctica, el vector inicialpuede tomarse como otro argumento del procedimiento, cony la inclusión de indicadores de imprecisión numérica como condiciones adicionales para la terminación del bucle.
Sin contar la multiplicación matriz-vector, cada iteración haceoperaciones aritméticas. La multiplicación matriz-vector se puede realizar enoperaciones aritméticas dondees el número promedio de elementos distintos de cero en una fila. La complejidad total es, por lo tanto,, osiEl algoritmo de Lanczos puede ser muy rápido para matrices dispersas. Los métodos para mejorar la estabilidad numérica suelen evaluarse en función de este alto rendimiento.
Los vectoresse denominan vectores de Lanczos . El vectorno se utiliza despuésse calcula y el vectorno se utiliza despuésse calcula. Por lo tanto, se puede usar el mismo almacenamiento para los tres. Del mismo modo, si solo la matriz tridiagonalSi se busca, entonces no se necesita la iteración bruta.después de haber calculado, aunque algunos esquemas para mejorar la estabilidad numérica lo necesitarían más adelante. A veces, los vectores de Lanczos subsiguientes se vuelven a calcular a partir decuando sea necesario.
Aplicación al problema propio
El algoritmo de Lanczos se suele mencionar para hallar los autovalores y autovectores de una matriz. Sin embargo, mientras que una diagonalización convencional de una matriz permite identificar los autovalores y autovectores a simple vista, esto no ocurre con la tridiagonalización que realiza el algoritmo de Lanczos; se requieren pasos adicionales complejos para calcular incluso un solo autovalor o autovector. No obstante, la aplicación del algoritmo de Lanczos suele representar un avance significativo en el cálculo de la descomposición en autovalores.
Sies un valor propio de, ysu vector propio (), entonceses un vector propio correspondiente decon el mismo valor propio:
De este modo, el algoritmo de Lanczos transforma el problema de descomposición en valores propios paraen el problema de descomposición de valores propios para.
- Para matrices tridiagonales, existen varios algoritmos especializados, a menudo con una complejidad computacional mejor que la de los algoritmos de propósito general. Por ejemplo, sies unMatriz simétrica tridiagonal entonces:
- La recursión continua permite calcular el polinomio característico enoperaciones y evaluarlo en un punto enoperaciones.
- El algoritmo de autovalores de divide y vencerás se puede utilizar para calcular la descomposición en autovalores completa deenoperaciones.
- El método multipolar rápido [ 8 ] puede calcular todos los valores propios en tan solooperaciones.
- Se sabe que algunos algoritmos generales de descomposición en valores propios, en particular el algoritmo QR , convergen más rápido para matrices tridiagonales que para matrices generales. La complejidad asintótica del algoritmo QR tridiagonal esigual que para el algoritmo de divide y vencerás (aunque el factor constante puede ser diferente); puesto que los autovectores juntos tienenelementos, esto es asintóticamente óptimo .
- Incluso los algoritmos cuyas tasas de convergencia no se ven afectadas por las transformaciones unitarias, como el método de potencia y la iteración inversa , pueden obtener beneficios de rendimiento de bajo nivel al aplicarse a la matriz tridiagonal.en lugar de la matriz original. Desdees muy disperso con todos los elementos distintos de cero en posiciones altamente predecibles, permite un almacenamiento compacto con un rendimiento excelente en comparación con el almacenamiento en caché . Asimismo,es una matriz real con todos los vectores propios y valores propios reales, mientras queEn general, puede tener elementos y vectores propios complejos, por lo que la aritmética real es suficiente para encontrar los vectores propios y los valores propios de.
- Sies muy grande, luego reducirde modo quees de un tamaño manejable aún permitirá encontrar los valores propios y vectores propios más extremos de; en elEn esta región, el algoritmo de Lanczos puede considerarse un esquema de compresión con pérdidas para matrices hermíticas, que hace hincapié en la preservación de los valores propios extremos.
La combinación de un buen rendimiento para matrices dispersas y la capacidad de calcular varios valores propios (sin calcularlos todos) son las principales razones para optar por utilizar el algoritmo de Lanczos.
Aplicación a la tridiagonalización
Aunque el problema de valores propios suele ser la motivación para aplicar el algoritmo de Lanczos, la operación que realiza principalmente es la tridiagonalización de una matriz, para la cual se han preferido las transformaciones de Householder numéricamente estables desde la década de 1950. Durante la década de 1960, el algoritmo de Lanczos cayó en desuso. El interés en él se reavivó con la teoría de convergencia de Kaniel-Paige y el desarrollo de métodos para prevenir la inestabilidad numérica, pero el algoritmo de Lanczos sigue siendo la alternativa que se prueba solo si Householder no resulta satisfactorio. [ 9 ]
Entre los aspectos en los que difieren los dos algoritmos se incluyen:
- Lanczos aprovechasiendo una matriz dispersa, mientras que Householder no lo es, y generará relleno .
- Lanczos trabaja en todo momento con la matriz original.(y no tiene problema con que se conozca solo implícitamente), mientras que Householder, en su forma básica, quiere modificar la matriz durante el cálculo (aunque eso se puede evitar).
- Cada iteración del algoritmo de Lanczos produce otra columna de la matriz de transformación final., mientras que una iteración de Householder produce otro factor en una factorización unitariadeSin embargo, cada factor está determinado por un único vector, por lo que los requisitos de almacenamiento son los mismos para ambos algoritmos, yse puede calcular entiempo.
- Householder es numéricamente estable, mientras que Lanczos en bruto no lo es.
- Lanczos es altamente paralelo, con solopuntos de sincronización (los cálculos dey). Householder es menos paralelo, teniendo una secuencia deCantidades escalares calculadas que dependen cada una de la cantidad anterior en la secuencia.
Derivación del algoritmo
Existen varias líneas de razonamiento que conducen al algoritmo de Lanczos.
Un método de energía más previsor
El método de potencia para encontrar el valor propio de mayor magnitud y un vector propio correspondiente de una matriz.es aproximadamente
- Elige un vector aleatorio.
- Para(hasta la dirección deha convergido) hacer:
- Dejar
- Dejar
- En el grandelímite,se aproxima al vector propio normalizado correspondiente al valor propio de mayor magnitud.
Una crítica que se puede hacer a este método es que es un desperdicio: gasta mucho trabajo (los productos matriz-vector en el paso 2.1) extrayendo información de la matriz.pero solo presta atención al último resultado; las implementaciones suelen usar la misma variable para todos los vectores.En este caso, cada nueva iteración sobrescribe los resultados de la anterior. Quizás sea preferible conservar todos los resultados intermedios y organizar los datos.
Una información que está disponible trivialmente a partir de los vectoreses una cadena de subespacios de Krylov . Una forma de afirmarlo sin introducir conjuntos en el algoritmo es decir que calcula
- un subconjuntode una base dede tal manera quepor caday todo
Esto se satisface trivialmente mediantemientrases linealmente independiente de(y en caso de que exista tal dependencia, entonces se puede continuar la secuencia eligiendo comoun vector arbitrario linealmente independiente de). Una base que contiene elSin embargo, es probable que los vectores estén numéricamente mal condicionados , ya que esta secuencia de vectores está diseñada para converger a un vector propio dePara evitar eso, se puede combinar la iteración de potencias con un proceso de Gram-Schmidt , para producir en su lugar una base ortonormal de estos subespacios de Krylov.
- Elige un vector aleatoriode norma euclidiana. Dejar.
- Parahacer:
- Dejar.
- A pesar dedejar. (Estas son las coordenadas decon respecto a los vectores base.)
- Dejar. (Cancelar el componente deeso está en.)
- Sientonces dejay,
- de lo contrario, elija comoun vector arbitrario de norma euclidianaque es ortogonal a todo.
La relación entre los vectores de iteración de potenciay los vectores ortogonaleses que
- .
Aquí se puede observar que en realidad no necesitamos elvectores para calcular estos, porquey por lo tanto la diferencia entreyestá en, que se cancela mediante el proceso de ortogonalización. Por lo tanto, la misma base para la cadena de subespacios de Krylov se calcula mediante
- Elige un vector aleatoriode norma euclidiana.
- Parahacer:
- Dejar.
- A pesar dedejar.
- Dejar.
- Dejar.
- Sientonces deja,
- de lo contrario, elija comoun vector arbitrario de norma euclidianaque es ortogonal a todo.
A priori los coeficientessatisfacer
- a pesar de;
la definiciónPuede parecer un poco extraño, pero encaja con el patrón general.desde
Debido a los vectores de iteración de potenciaque fueron eliminados de esta recursión satisfacenlos vectoresy coeficientescontienen suficiente información deque todoSe puede calcular, por lo que no se perdió nada al cambiar los vectores. (De hecho, resulta que los datos recopilados aquí proporcionan aproximaciones significativamente mejores del mayor valor propio que las que se obtienen con un número igual de iteraciones en el método de potencia, aunque esto no sea necesariamente obvio en este punto).
Este último procedimiento es la iteración de Arnoldi . El algoritmo de Lanczos surge entonces como la simplificación que se obtiene al eliminar pasos de cálculo que resultan ser triviales cuandoes hermitiano, en particular la mayor parte deLos coeficientes resultan ser cero.
Elementalmente, sientonces es hermitiano
Parasabemos quey desde entoncesPor construcción, es ortogonal a este subespacio, por lo que este producto interno debe ser cero. (Esta es esencialmente también la razón por la que a las secuencias de polinomios ortogonales siempre se les puede dar una relación de recurrencia de tres términos ). Parauno consigue
ya que este último es real por ser la norma de un vector. Parauno consigue
lo que significa que esto también es real.
De forma más abstracta, sies la matriz con columnasluego los númerospueden identificarse como elementos de la matriz, yparala matrizes el Hessenberg superior . Desde
la matrizes hermitiano. Esto implica queTambién es Hessenberg inferior, por lo que de hecho debe ser tridiagnática. Al ser hermitiana, su diagonal principal es real, y dado que su primera subdiagonal es real por construcción, lo mismo ocurre con su primera superdiagonal. Por lo tanto,es una matriz real y simétrica: la matrizde la especificación del algoritmo de Lanczos.
Aproximación simultánea de valores propios extremos
Una forma de caracterizar los autovectores de una matriz hermitianaes como puntos estacionarios del cociente de Rayleigh
En particular, el mayor valor propioes el máximo global dey el valor propio más pequeñoes el mínimo global de.
Dentro de un subespacio de baja dimensióndePuede ser factible localizar el máximoy mínimodeRepitiendo esto para una cadena creciente.produce dos secuencias de vectores:yde tal manera quey
Surge entonces la pregunta de cómo elegir los subespacios de manera que estas secuencias converjan a una velocidad óptima.
De, la dirección óptima en la que buscar valores mayores dees la del gradientey asimismo dela dirección óptima en la que buscar valores más pequeños dees la del gradiente negativo. En general
por lo que las direcciones de interés son bastante fáciles de calcular en aritmética matricial, pero si uno desea mejorar ambasyEntonces hay dos nuevas direcciones a tener en cuenta:ydesdeypueden ser vectores linealmente independientes (de hecho, son casi ortogonales), en general no se puede esperaryser paralelo. No es necesario aumentar la dimensión deporen cada paso sise consideran subespacios de Krylov, porque entoncesa pesar deasí en particular para ambosy.
En otras palabras, podemos comenzar con un vector inicial arbitrario.construir los espacios vectoriales
y luego buscarde tal manera que
Desde elmétodo de potencia iterarpertenece aDe ello se deduce que una iteración para producir elyno puede converger más lentamente que el método de potencia y logrará más aproximando ambos extremos de los valores propios. Para el subproblema de optimizaciónen algunosEs conveniente tener una base ortonormal.para este espacio vectorial . Así, volvemos al problema de calcular iterativamente dicha base para la secuencia de subespacios de Krylov.
Convergencia y otras dinámicas
Al analizar la dinámica del algoritmo, es conveniente tomar los valores propios y los vectores propios decomo dado, aunque no sean explícitamente conocidos por el usuario. Para corregir la notación, dejemossean los autovalores (se sabe que todos son reales y, por lo tanto, se pueden ordenar) y seasea un conjunto ortonormal de autovectores tal quea pesar de.
También es conveniente fijar una notación para los coeficientes del vector de Lanczos inicial.con respecto a esta base propia; seaa pesar de, de modo que. Un vector inicialEl agotamiento de algún componente propio retrasará la convergencia al valor propio correspondiente, y aunque esto solo se manifiesta como un factor constante en los límites de error, el agotamiento sigue siendo indeseable. Una técnica común para evitar verse afectado constantemente por esto es elegirprimero extrayendo los elementos aleatoriamente según la misma distribución normal con mediay luego reescalar el vector a la norma. Antes del reescalado, esto provoca que los coeficientespara ser también variables estocásticas independientes con distribución normal de la misma distribución normal (ya que el cambio de coordenadas es unitario), y después de reescalar el vectortendrá una distribución uniforme en la esfera unitaria enEsto permite acotar la probabilidad de que, por ejemplo,.
El hecho de que el algoritmo de Lanczos sea independiente de las coordenadas (las operaciones solo consideran los productos internos de vectores, nunca los elementos individuales de los vectores) facilita la construcción de ejemplos con autoestructura conocida para ejecutar el algoritmo:una matriz diagonal con los valores propios deseados en la diagonal; siempre que el vector inicialtiene suficientes elementos distintos de cero, el algoritmo generará una matriz simétrica tridiagonal general como.
teoría de convergencia de Kaniel-Paige
Despuéspasos de iteración del algoritmo de Lanczos,es unmatriz simétrica real, que de manera similar a la anterior tienevalores propiosLa convergencia se entiende principalmente como convergencia dea(y la convergencia simétrica dea) comocrece y, secundariamente, la convergencia de algún rangode valores propios dea sus homólogosdeLa convergencia del algoritmo de Lanczos suele ser órdenes de magnitud más rápida que la del algoritmo de iteración de potencias. [ 9 ] : 477
Los límites paraprovienen de la interpretación anterior de los autovalores como valores extremos del cociente de Rayleigh.. Desdees a priori el máximo deen generalmientrases simplemente el máximo en unSubespacio de Krylov de dimensión -, trivialmente obtenemos. Por el contrario, cualquier puntoen ese subespacio de Krylov se proporciona un límite inferiorpara, entonces si se puede exhibir un punto para el cuales pequeño entonces esto proporciona un límite ajustado en.
La dimensiónEl subespacio de Krylov es
por lo que cualquier elemento del mismo puede expresarse comopara algún polinomiode grado como máximo; los coeficientes de ese polinomio son simplemente los coeficientes de la combinación lineal de los vectoresEl polinomio que buscamos tendrá coeficientes reales, pero por el momento debemos considerar también coeficientes complejos, y escribiremos: .para el polinomio obtenido al conjugar de forma compleja todos los coeficientes de. En esta parametrización del subespacio de Krylov, tenemos
Usando ahora la expresión paracomo una combinación lineal de autovectores, obtenemos
y de forma más general
para cualquier polinomio.
De este modo
Una diferencia clave entre numerador y denominador aquí es queEl término desaparece en el numerador, pero no en el denominador. Por lo tanto, si se puede elegirser grande enpero pequeño en todos los demás autovalores, se obtendrá una cota ajustada para el error..
Desdetiene muchos más valores propios quetiene coeficientes, esto puede parecer una tarea difícil, pero una forma de lograrlo es usar polinomios de Chebyshev . Escribiendopara el títuloPolinomio de Chebyshev de primera especie (aquel que satisfacea pesar de), tenemos un polinomio que permanece en el rangoen el intervalo conocidopero crece rápidamente fuera de él. Con algún escalado del argumento, podemos hacer que mapee todos los autovalores exceptoen. Dejar
(En caso, en su lugar, utilice el mayor valor propio estrictamente menor que), entonces el valor máximo deparaesy el valor mínimo es, entonces
Además
la cantidad
(es decir, la relación entre el primer eigengap y el diámetro del resto del espectro ) es, por lo tanto, de vital importancia para la tasa de convergencia en este caso. También escribir
podemos concluir que
La tasa de convergencia está controlada principalmente por, ya que este límite se reduce por un factorpor cada iteración adicional.
Para comparar, se puede considerar cómo la tasa de convergencia del método de potencia depende de, pero dado que el método de potencia es principalmente sensible al cociente entre los valores absolutos de los valores propios, necesitamospara la brecha propia entreyser el dominante. Bajo esa restricción, el caso que más favorece el método de potencia es que, así que considérelo. Al final del método de potencia, el vector de iteración:
donde cada nueva iteración efectivamente multiplica el-amplitudpor
La estimación del mayor valor propio es entonces
por lo que el límite anterior para la tasa de convergencia del algoritmo de Lanczos debe compararse con
que se reduce por un factor depara cada iteración. La diferencia, por lo tanto, se reduce a que entrey. En elregión, esta última es más pareciday se comporta como lo haría el método de potencia con una brecha propia dos veces mayor; una mejora notable. Sin embargo, el caso más desafiante es el deen el cuales una mejora aún mayor en el eigengap; elLa región es donde el algoritmo de Lanczos, en términos de convergencia, realiza la menor mejora con respecto al método de potencia.
Estabilidad numérica
La estabilidad se refiere a cuánto se verá afectado el algoritmo (es decir, si producirá un resultado aproximado cercano al original) si se introducen y acumulan pequeños errores numéricos. La estabilidad numérica es el criterio principal para evaluar la utilidad de implementar un algoritmo en una computadora con redondeo.
Para el algoritmo de Lanczos, se puede demostrar que con aritmética exacta , el conjunto de vectoresEl algoritmo de Lanczos construye una base ortonormal y los autovalores/vectores obtenidos son buenas aproximaciones a los de la matriz original. Sin embargo, en la práctica (dado que los cálculos se realizan con aritmética de punto flotante, donde la imprecisión es inevitable), la ortogonalidad se pierde rápidamente y, en algunos casos, el nuevo vector podría incluso depender linealmente del conjunto ya construido. Como resultado, algunos de los autovalores de la matriz tridiagonal resultante pueden no ser aproximaciones a la matriz original. Por lo tanto, el algoritmo de Lanczos no es muy estable.
Los usuarios de este algoritmo deben poder encontrar y eliminar esos valores propios "espurios". Las implementaciones prácticas del algoritmo de Lanczos van en tres direcciones para combatir este problema de estabilidad: [ 6 ] [ 7 ]
- Evitar la pérdida de ortogonalidad,
- Recuperar la ortogonalidad después de que se haya generado la base.
- Una vez identificados todos los valores propios válidos y los "espurios", elimine los espurios.
Variaciones
Existen variantes del algoritmo de Lanczos en las que los vectores involucrados son matrices altas y estrechas en lugar de vectores, y las constantes de normalización son matrices cuadradas pequeñas. Estos se denominan algoritmos de Lanczos por bloques y pueden ser mucho más rápidos en ordenadores con un gran número de registros y tiempos de acceso a memoria prolongados.
Muchas implementaciones del algoritmo de Lanczos se reinician después de un cierto número de iteraciones. Una de las variaciones reiniciadas más influyentes es el método de Lanczos reiniciado implícitamente, [ 10 ] implementado en ARPACK . [ 11 ] Esto ha dado lugar a otras variaciones reiniciadas, como la bidiagonalización de Lanczos reiniciada. [ 12 ] Otra variación reiniciada exitosa es el método de Lanczos Thick-Restart, [ 13 ] implementado en un paquete de software llamado TRLan. [ 14 ]
Espacio nulo sobre un campo finito
En 1995, Peter Montgomery publicó un algoritmo, basado en el algoritmo de Lanczos, para encontrar elementos del espacio nulo de una matriz dispersa grande sobre GF(2) ; dado que el conjunto de personas interesadas en matrices dispersas grandes sobre cuerpos finitos y el conjunto de personas interesadas en problemas de valores propios grandes apenas se superponen, a menudo también se le llama algoritmo de Lanczos por bloques sin causar una confusión irrazonable.
Aplicaciones
Los algoritmos de Lanczos son muy atractivos porque la multiplicación porEs la única operación lineal a gran escala. Dado que los motores de recuperación de texto con ponderación de términos implementan precisamente esta operación, el algoritmo de Lanczos se puede aplicar de manera eficiente a documentos de texto (véase indexación semántica latente ). Los autovectores también son importantes para métodos de clasificación a gran escala como el algoritmo HITS desarrollado por Jon Kleinberg o el algoritmo PageRank utilizado por Google.
Los algoritmos de Lanczos también se utilizan en física de la materia condensada como método para resolver hamiltonianos de sistemas de electrones fuertemente correlacionados , [ 15 ] así como en códigos de modelos de capas en física nuclear . [ 16 ]
Implementaciones
La biblioteca NAG contiene varias rutinas [ 17 ] para la solución de sistemas lineales a gran escala y problemas de valores propios que utilizan el algoritmo de Lanczos.
ARPACK ( FORTRAN 77 , también disponible en MATLAB, GNU Octave (eigs) , Juliay Python a través de SciPyEl paquete se centra en problemas de valores propios y admite matrices tanto almacenadas como implícitas.
Una implementación en Matlab del algoritmo de Lanczos (tenga en cuenta los problemas de precisión) está disponible como parte del paquete de Matlab Gaussian Belief Propagation . La biblioteca de filtrado colaborativo GraphLab [ 18 ] incorpora una implementación paralela a gran escala del algoritmo de Lanczos (en C++ ) para multinúcleo.
Las implementaciones en Julia de los métodos de Lanczos y otros métodos relacionados de Krylov se pueden encontrar en Krylov.jl , KrylovKit.jl , IterativeSolvers.jl y ArnoldiMethod.jl .
La biblioteca PRIMME también implementa un algoritmo similar al de Lanczos.
El paquete de código abierto Leymosun implementa el algoritmo de Lanczos en el contexto de la complejidad de Krylov en Python puro: su función llamada lanczos generará las bases de Krylov y los coeficientes.
Notas
- ↑ Los coeficientes no tienen por qué ser ambos reales, pero la fase es de poca importancia. Tampoco es necesario que los componentes de otros autovectores hayan desaparecido por completo, pero se contraen al menos tan rápido como el de, entoncesDescribe el peor escenario.
Referencias
- ↑ Lanczos, C. (1950). "Un método iterativo para la solución del problema de valores propios de operadores diferenciales e integrales lineales" (PDF) . Journal of Research of the National Bureau of Standards . 45 (4): 255– 282. doi : 10.6028/jres.045.026 .
- 1 2 Ojalvo, IU; Newman, M. (1970). "Modos de vibración de grandes estructuras mediante un método automático de reducción de matrices". AIAA Journal . 8 (7): 1234– 1239. Bibcode : 1970AIAAJ...8.1234N . doi : 10.2514/3.5878 .
- ↑ Paige, CC (1971). El cálculo de valores propios y vectores propios de matrices dispersas muy grandes (tesis doctoral). Universidad de Londres. OCLC 654214109 .
- ↑ Paige, CC (1972). "Variantes computacionales del método de Lanczos para el problema de valores propios". J. Inst. Maths Applics . 10 (3): 373– 381. doi : 10.1093/imamat/10.3.373 .
- ↑ Ojalvo, IU (1988). "Orígenes y ventajas de los vectores de Lanczos para grandes sistemas dinámicos". Actas de la 6.ª Conferencia de Análisis Modal (IMAC), Kissimmee, FL . págs. 489–494 .
- 1 2 Cullum; Willoughby (1985). Algoritmos de Lanczos para cálculos de valores propios simétricos grandes . Vol. 1. Birkhäuser. ISBN 0-8176-3058-9.
- 1 2 Yousef Saad (1992-06-22). Métodos numéricos para problemas de valores propios grandes . Wiley. ISBN 0-470-21820-7.
- ↑ Coakley, Ed S.; Rokhlin, Vladimir (2013). "Un algoritmo rápido de divide y vencerás para calcular los espectros de matrices tridiagonales simétricas reales". Análisis armónico aplicado y computacional . 34 (3): 379– 414. doi : 10.1016/j.acha.2012.06.003 .
- 1 2 Golub, Gene H.; Van Loan, Charles F. (1996). Cálculos matriciales (3.ª ed.). Baltimore: Johns Hopkins Univ. Press. ISBN 0-8018-5413-X.
- ↑ D. Calvetti ; L. Reichel; DC Sorensen (1994). "Un método de Lanczos reiniciado implícitamente para grandes problemas de valores propios simétricos" . Electronic Transactions on Numerical Analysis . 2 : 1–21 .
- ↑ RB Lehoucq; DC Sorensen; C. Yang (1998). Guía del usuario de ARPACK: Solución de problemas de valores propios a gran escala con métodos de Arnoldi reiniciados implícitamente . SIAM. doi : 10.1137/1.9780898719628 . ISBN 978-0-89871-407-4.
- ↑ E. Kokiopoulou; C. Bekas; E. Gallopoulos (2004). "Cálculo de tripletes singulares más pequeños con bidiagonalización de Lanczos reiniciada implícitamente" (PDF) . Appl. Numer. Math . 49 : 39–61 . doi : 10.1016/j.apnum.2003.11.011 .
- ↑ Kesheng Wu; Horst Simon (2000). "Método de Lanczos de reinicio grueso para problemas de valores propios simétricos grandes" . SIAM Journal on Matrix Analysis and Applications . 22 (2). SIAM: 602– 616. doi : 10.1137/S0895479898334605 .
- ↑ Kesheng Wu; Horst Simon (2001). "Paquete de software TRLan" . Archivado del original el 1 de julio de 2007. Recuperado el 30 de junio de 2007 .
- ↑ Chen, HY; Atkinson, WA; Wortis, R. (julio de 2011). "Anomalía de polarización cero inducida por desorden en el modelo de Anderson-Hubbard: cálculos numéricos y analíticos". Physical Review B . 84 (4) 045113. arXiv : 1012.1031 . Bibcode : 2011PhRvB..84d5113C . doi : 10.1103/PhysRevB.84.045113 . S2CID 118722138 .
- ↑ Shimizu, Noritaka (21 de octubre de 2013). "Código de modelo de capa nuclear para computación paralela masiva, "KSHELL"". arXiv : 1310.5431 [ nucl-th ].
- ↑ El Grupo de Algoritmos Numéricos. "Índice de palabras clave: Lanczos" . Manual de la Biblioteca NAG, Mark 23. Consultado el 9 de febrero de 2012 .
- ↑ GraphLab archivado el 14 de marzo de 2011 en Wayback Machine
Lecturas adicionales
- Golub, Gene H .; Van Loan, Charles F. (1996). «Métodos de Lanczos» . Computación matricial . Baltimore: Johns Hopkins University Press. págs. 470–507 . ISBN 0-8018-5414-8.
- Ng, Andrew Y.; Zheng, Alice X.; Jordan, Michael I. (2001). "Análisis de enlaces, vectores propios y estabilidad" (PDF) . Actas de la 17.ª Conferencia Internacional Conjunta sobre Inteligencia Artificial (IJCAI'01 ). 2 : 903–910 .
- Erik Koch (2019). «Diagonalización Exacta y Método Lanczos» (PDF) . En E. Pavarini; E. Koch; S. Zhang (eds.). "Métodos de muchos cuerpos para materiales reales" . Jülich. ISBN 978-3-95806-400-3.
- Álgebra lineal numérica