Como usar o método Lanczos para calcular valores próprios e vetores próprios

8

Eu tenho uma matriz esparsa e simétrica A (nxn). O método Lanczos transforma a matriz A em matriz tridiagonal e simétrica T e os vetores Lanczos na matriz V. A partir daí, como computo k autovalores menores ou maiores e autovetores correspondentes?

HongTu
fonte

Respostas:

11
  • Para valores próprios , basta levar maiores ou menores valores próprios de T . São boas aproximações de A , desde que o número de iterações de Lanczos seja grande comparado a k .kTAk

  • As coisas são um pouco mais complicadas se também queremos autovetores .
    A maneira mais simples é multiplicar cada eigenvector de T por V para a esquerda, onde V é, como você disse, a coleção de vetores Lanczos. Mas essa abordagem é insuficiente para muitas classes de matrizes, pois os erros de arredondamento fazem com que os vetores de Lanczos percam sua ortogonalidade (1). Uma maneira melhor é re-ortogonalizar os vetores de Lanczos em V executando um passo de Gram-Schmidt. Seja z o i -ésimo vetor de Lanczos sendo computado e seja q 1 , q 2 , uiTVV

    V
    zi são os vetores Lanczos anteriores. Modificamos z para eliminar todos os componentes de z paralelos a qualquer q 1 , q 2 , , q i - 1 : z = z - i - 1 j = 1 ( z T q j ) q j Acontece que precisamos re-ortogonalizar duas vezes para garantir a ortogonalidade numérica dos vetores Lanczos (2).q1,q2,,qi1zzq1,q2,,qi1

    z=zj=1i1(zTqj)qj

Referência

  1. J. Demmel, Álgebra Linear Numérica Aplicada
  2. B. Parlett, O Problema de Autovalor Simétrico
Philip Cho
fonte