Comment trouver les valeurs propres intérieures par la méthode du sous-espace krylov?

10

Je me demande comment trouver les valeurs propres d'une matrice clairsemée dans un intervalle donné [a, b] par la méthode itérative. À ma connaissance personnelle, il est plus évident d'utiliser la méthode du sous-espace de Krylov pour trouver les valeurs propres extrêmes plutôt que les valeurs intérieures.

Willowbrook
la source
Avez-vous considéré les réponses fournies ici ?
Deathbreath
Je suis curieux ... Quelle est la taille de votre matrice? Avez-vous besoin de toutes les valeurs propres intérieures ou les plus proches d'une valeur particulière?
Paul
@Paul Ce n'est qu'une recherche en cours, la taille sera de milliards par milliards de matrices clairsemées, et nous n'avons besoin que de quelques valeurs propres dans un certain intervalle pour faire la modélisation.
Willowbrook
@Deathbreath Merci pour votre rappel. J'ai considéré ces réponses.
Willowbrook
Peut-être connaissez-vous déjà cette ressource, mais elle peut être utile de toute façon ... www-users.cs.umn.edu/~saad/eig_book_2ndEd.pdf salutations, Tom
Tom

Réponses:

10

La stratégie suivante est appelée shift et inverser et dépend de deux faits importants:

  1. a le même spectre que A , mais décalé vers le bas de τ , c'est-à-dire si λ σ ( A ) alors λ - τ σ ( A - τ I ) .UNE-τjeUNEτλσ(UNE)λ-τσ(UNE-τje)
  2. En supposant que est inversible, la matrice A - 1 a un spectre qui est égal à l'inverse élément par élément du spectre de A , c'est-à-dire si λ σ ( A ) alors 1 / λ σ ( A - 1 ) .UNEUNE-1UNEλσ(UNE)1/λσ(UNE-1)

Puisque vais avoir déplacé la partieAspectre dequi se trouve à proximitéune+bUNE-une+b2jeUNE près de l'origine, les valeurs propres deAprès dea+bune+b2UNE sera très grand en(A-a+bune+b2, et il est donc raisonnable de s'attendre à ce qu'un algorithme de Krylov les détecte.(UNE-une+b2je)-1

Jack Poulson
la source
Ma question est par la méthode shift et inverti, nous pouvons amplifier toutes les valeurs propres près de a, qui comprendra bien sûr les indésirables à l'origine inférieures à a, et comment filtrer ces valeurs propres. L'autre question est de savoir comment utiliser l'autre point d'extrémité b dans l'interaction.
Willowbrook
1
Il est possible de filtrer certaines valeurs propres en utilisant des filtres polynomiaux. Pour un aperçu accessible de cette technique, voir Sorensen: "Méthodes numériques pour les problèmes de grandes valeurs propres" dans Acta Numerica journals.cambridge.org/action/…
Reid.Atcheson
c=(une+b)/2