Cómo usar el método de Lanczos para calcular valores propios y vectores propios

8

Tengo una matriz escasa y simétrica A (nxn). El método Lanczos transforma la matriz A en una matriz tridiagonal y simétrica T y los vectores Lanczos en la matriz V. A partir de ahí, ¿cómo calculo k valores propios más pequeños o más grandes y los vectores propios correspondientes?

HongTu
fuente

Respuestas:

11
  • Para valores propios , simplemente tomar valores propios más grandes o más pequeños de T . Son buenas aproximaciones de A , siempre que el número de iteraciones de Lanczos sea grande en comparación con k .kTAk

  • Las cosas son un poco más complicadas si también queremos vectores propios .
    La forma más simple es multiplicar cada vector propio de T por V a la izquierda, donde V es, como dijiste, la colección de vectores Lanczos. Pero este enfoque se queda corto para muchas clases de matrices, ya que los errores de redondeo hacen que los vectores Lanczos pierdan su ortogonalidad (1). Una mejor manera es volver a ortogonalizar los vectores Lanczos en V haciendo un paso de Gram-Schmidt. Sea z el i -ésimo vector Lanczos que se está calculando, y sea q 1 , q 2 , uiTVV

    V
    zi serán los vectores Lanczos anteriores. Mutamos z para eliminar todos los componentes de z que son paralelos a cualquiera de q 1 , q 2 , , q i - 1 : z = z - i - 1 j = 1 ( z T q j ) q j Resulta que necesitamos re-ortogonalizar dos veces para garantizar la ortogonalidad numérica de los vectores Lanczos (2).q1,q2,,qi1zzq1,q2,,qi1

    z=zj=1i1(zTqj)qj

Referencia

  1. J. Demmel, álgebra lineal numérica aplicada
  2. B. Parlett, el problema simétrico del valor propio
Philip Cho
fuente