Implémentation de la méthode Jacobi-Davidson pour le problème des valeurs propres cubiques

9

J'ai un gros problème de valeur propre cubique:

(UNE0+λUNE1+λ2UNE2+λ3UNE3)X=0.

Je pourrais résoudre cela en convertissant en un problème de valeur propre linéaire mais cela résulterait en un système aussi grand:32

[-UNE0000je000je][Xyz]=λ[UNE1UNE2UNE3je000je0][Xyz],

et z = λ y . Quelles autres techniques sont disponibles pour résoudre un problème de valeur propre cubique? J'ai entendu dire qu'il existe une version de Jacobi-Davidson qui le résoudra, mais je n'ai pas trouvé d'implémentation.y=λXz=λy

De plus, je dois être capable de cibler des valeurs propres spécifiques de manière similaire à la méthode shift-and-invert d'ARPACK et de trouver les vecteurs propres associés.

OSE
la source
Quelles sont les dimensions des matrices impliquées?
Bill Barth
est commandé10000×10000UNEje10000×10000 . J'ai deux formulations différentes de ce problème, l'une dans laquelle est dense et l'autre est clairsemée. UNEje
OSE
1
SLEPc a des routines pour les problèmes de valeurs propres quadratiques et les problèmes de valeurs propres non linéaires, vous pourrez donc peut-être trouver ce dont vous avez besoin. Il dispose également de fonctions de décalage et d'inversion et d'une interface avec ARPACK.
Geoff Oxberry

Réponses:

5

Avec le protocole de communication inverse d'ARPACK, vous n'avez pas besoin de stocker explicitement la matrice : il vous suffit de fournir deux fonctions qui calculent:3n×3n

et [ x y z ] [ A 1 x + A 2 y + A 3 z[Xyz][-UNE0Xyz][Xyz][UNE1X+UNE2y+UNE3zyz]

(vous payez toujours le prix du stockage du 3×n vecteurs dimensions mais vous ne payez rien pour les matrices).

XM-1XXMXλsλ-1M-1XMUNE0

BrunoLevy
la source