Está en la página 1de 5

El algoritmo de Lanczos es un algoritmo iterativo ideado por Cornelius Lanczos que es

una adaptacin de los mtodos de energa para encontrar los valores propios y vectores
propios de una matriz cuadrada o la descomposicin en valores singulares de una matriz
rectangular. Es particularmente til para encontrar descomposiciones de muy grandes
matrices dispersas. En la indexacin semntica latente , por ejemplo, matrices relativas a
millones de documentos a cientos de miles de trminos deben reducirse a la forma
singular valor.
Contenido
[ ocultar ]
1 Mtodo de potencia para encontrar valores propios
2 mtodo de Lanczos
o 2.1 El algoritmo
2.1.1 Definiciones
2.1.2 Iteracin
2.1.3 Resuelva de valores y vectores propios
o 2.2 Estabilidad Numrica
3 Variaciones
o 3.1 Nullspace sobre un cuerpo finito
4 Aplicaciones
5 Implementaciones
6 Referencias
7 Enlaces externos
Mtodo de alimentacin para encontrar valores
propios [ edit ]
Artculo principal: Poder iteracin
El mtodo de la potencia para encontrar el valor propio ms grande de una matriz puede
resumirse observando que si es un vector aleatorio y , a continuacin,
en la gran lmite, se acerca al vector propio normado correspondiente al valor
propio ms grande magnitud.
Si es el eigendecomposition de ,
entonces . Como se hace muy grande, la matriz diagonal de
autovalores ser dominado por lo que es el mayor valor propio (despreciando el caso de
dos o ms igualmente grandes valores propios, por supuesto). Mientras esto
sucede, converger a la mayor autovalor y al vector propio
asociado. Si el mayor valor propio es mltiple, entonces converger a un vector en el
subespacio generado por los vectores propios asociados a los valores propios
mayores. Despus de haber encontrado el primer vector propio / valor, se puede entonces
restringir sucesivamente el algoritmo para el espacio nulo de los vectores propios
conocidos para obtener la segunda mayor vector propio / valores, etc.
En la prctica, este sencillo algoritmo no funciona muy bien para el clculo de muchos de
los vectores propios, ya que cualquier error de redondeo tender a introducir componentes
ligeros de los vectores propios ms importantes de nuevo en el cmputo, degradando la
precisin del clculo. Mtodos Pure Power tambin pueden converger lentamente, incluso
para el primer vector propio.
Mtodo de Lanczos [ edit ]
Durante el procedimiento de aplicar el mtodo de la potencia, al obtener el vector propio
final , tambin nos dieron una serie de vectores
que fueron finalmente descartadas. Como se toma a menudo para ser bastante grande,
esto puede resultar en una gran cantidad de informacin en cuenta. Algoritmos ms
avanzados, como el algoritmo de Arnoldi y el algoritmo de Lanczos, guardar esta
informacin y utilizar el proceso de Gram-Schmidt o algoritmo de Householder para
reorthogonalize ellos en una base que abarca el subespacio de Krylov correspondiente a la
matriz .
El algoritmo [ edit ]
El algoritmo de Lanczos puede ser visto como una simplificado el algoritmo de Arnoldi en
que se aplica a las matrices hermitianos . El ' etapa del algoritmo transforma la
matriz en una matriz tridiagonal ; cuando es igual a la dimensin de ,
es semejante a .
Definiciones [ editar ]
Esperamos que para el clculo de la matriz tridiagonal y simtrica
Los elementos diagonales se denotan por , y los elementos fuera de la diagonal
se indican mediante .
Tenga en cuenta que , debido a su simetra.
Iteracin [ edit ]
(Nota: Si sigue estos pasos por s solo no le dar el valor propio y vectores propios
correcto More consideracin debe aplicarse para corregir los errores numricos, consulte
la seccin.. estabilidad numrica en el siguiente.)
En principio existen cuatro maneras de escribir el procedimiento de iteracin. Paige [1972]
y otros trabajos muestran que el siguiente procedimiento es el ms estable
numricamente.
[ 1 ] [ 2 ]

Algoritmo de Lanczos
vector aleatorio con la norma 1.
Iteracin : para







endfor


retorno
"" es una abreviatura de "cambia a". Por ejemplo, " ms grande elemento "significa que el valor de
los grandes cambios en el valor del artculo .
" retorno "termina el algoritmo y devuelve el valor que sigue.
Aqu, representa el producto escalar de vectores y .
Despus de la iteracin, obtenemos el y que construyen una matriz tridiagonal

Los vectores ( vectores de Lanczos ) generados sobre la marcha construir la matriz de
transformacin
,
que es til para el clculo de los vectores propios (ver ms abajo). En la prctica, podra
ser salvado tras generacin (pero tiene un montn de memoria), o podra ser regenerado
cuando sea necesario, siempre y cuando se tiene el primer vector . En cada iteracin
del algoritmo ejecuta una multiplicacin de la matriz-vector y 7N operaciones de punto
flotante ms.
Resuelve para valores y vectores propios [ edit ]
Despus de la matriz se calcula, se puede resolver sus valores propios y sus
vectores propios correspondientes (por ejemplo, usando el algoritmo QR o mltiples
representaciones relativamente robusto (Mrrr)). Los valores propios y vectores propios
de se pueden obtener en tan slo trabajo con mrrr; obtener slo los valores
propios es mucho ms simple y se puede hacer en el trabajo con biseccin
espectral.
Se puede demostrar que los valores propios son valores propios aproximados de la matriz
original .
Los vectores propios Ritz de pueden ser calculados , en donde es
la matriz de transformacin cuyos vectores columna son .
Estabilidad numrica [ edit ]
Estabilidad significa cunto se ver afectado el algoritmo (es decir, va a producir el
resultado aproximado de cerca a la original) si hay pequeos errores numricos
introducidos y acumulados. Estabilidad numrica es el criterio central para juzgar la utilidad
de la aplicacin de un algoritmo en un ordenador con redondeo.
Para el algoritmo de Lanczos, se puede demostrar que con aritmtica exacta , el conjunto
de vectores construye un ortonormal base y los valores propios /
vectores resueltos son buenas aproximaciones a los de la matriz original. Sin embargo, en
la prctica (como los clculos se realizan en aritmtica de punto flotante donde inexactitud
es inevitable), la ortogonalidad se pierde rpidamente y en algunos casos el nuevo vector
incluso podra ser linealmente dependiente de el conjunto que ya est construido. Como
resultado, algunos de los valores propios de la matriz tridiagonal resultante no puede ser
aproximaciones a la matriz original. Por lo tanto, el algoritmo de Lanczos no es muy
estable.
Los usuarios de este algoritmo debe ser capaz de encontrar y eliminar los valores propios
"espurias". Las implementaciones prcticas del algoritmo de Lanczos van en tres
direcciones para luchar contra este problema de estabilidad:
[ 1 ] [ 2 ]

1. Prevenir la prdida de ortogonalidad
2. Recuperar la ortogonalidad despus se genera la base
3. Despus de los buenos y valores propios "espurias" estn todos identificados,
retire los espurios.
Variaciones [ editar ]
Existen variaciones en el algoritmo de Lanczos donde los vectores implicados son altos y
estrechos matrices en lugar de los vectores y de las constantes de la normalizacin son
pequeas matrices cuadradas. Estos se llaman algoritmos Lanczos "bloquear" y puede ser
mucho ms rpido en ordenadores con un gran nmero de registros y la memoria de largo-
fetch veces.
Muchas implementaciones del algoritmo de Lanczos reinicio despus de un cierto nmero
de iteraciones. Una de las variaciones renovadas ms influyentes es el mtodo de Lanczos
implcitamente renovadas,
[ 3 ]
que se implementa en ARPACK .
[ 4 ]
Esto ha llevado a un
nmero de otras variaciones renovadas tales como renovadas bidiagonalization de
Lanczos.
[ 5 ]
Otra variacin es reiniciado con xito el mtodo Thick-Restart Lanczos,
[ 6 ]
el
cual ha sido implementado en un paquete de software llamado trlan.
[ 7 ]

Nullspace sobre un cuerpo finito [ edit ]
Artculo principal: Algoritmo de Block Lanczos
En 1995, Peter Montgomery public un algoritmo, basado en el algoritmo de Lanczos, para
encontrar elementos del espacio nulo de una gran matriz dispersa sobre GF (2) ; ya que el
conjunto de personas interesadas en grandes matrices dispersas sobre cuerpos finitos y el
conjunto de personas interesadas en los grandes problemas de valores propios apenas se
solapan, esto es a menudo tambin llamado el algoritmo de Lanczos bloque sin causar
confusin irrazonable.
[ cita requerida ]

Aplicaciones [ editar ]
Algoritmos de Lanczos son muy atractivos debido a que la multiplicacin por es la nica
operacin lineal a gran escala. Dado que los motores de recuperacin de texto ponderado
plazo implementan slo esta operacin, el algoritmo de Lanczos se puede aplicar de
manera eficiente a los documentos de texto (vase la indexacin semntica
latente ). Vectores propios son tambin importantes para los mtodos de clasificacin de
gran escala, tales como el algoritmo HITS desarrollado por Jon Kleinberg , o
elPageRank algoritmo utilizado por Google.
Algoritmos de Lanczos tambin se utilizan en Fsica de partculas como un mtodo para
resolver hamiltonianos de sistemas de electrones fuertemente correlacionados .
[ 8 ]

Lanczos algoritmo tambin ha sido utilizado en la formulacin del algoritmo de Levenberg-
Marquardt para la generacin de modelos computacionales de los yacimientos de petrleo
y gas.
[ 9 ]

Implementaciones [ edit ]
La Biblioteca de Nag contiene varias rutinas
[ 10 ]
para la solucin de sistemas y
eigenproblems que utilizan el algoritmo de Lanczos lineales a gran escala.
MATLAB y GNU Octave vienen con ARPACK incorporado. Ambas matrices almacenadas
e implcitos pueden ser analizados a travs de las agrupaciones de inters econmico
()funcin ( Matlab / Octave ).
Una aplicacin Matlab del algoritmo de Lanczos (nota problemas de precisin) est
disponible como parte de la Propagacin Creencia Gauss Matlab paquete . El
GraphLab
[ 11 ]
biblioteca filtrado colaborativo incorpora una implementacin paralela a gran
escala del algoritmo de Lanczos (en C + +) para mltiples ncleos.
El PRIMME biblioteca tambin implementa un algoritmo de Lanczos como.

También podría gustarte