Algorithme d'Arnoldi

En algèbre linéaire numérique, la méthode d'Arnoldi est un algorithme de recherche de valeurs propres prenant la forme d'une méthode itérative. Elle permet de construire une approximation des valeurs propres et des vecteurs propres de matrices carrées (éventuellement non hermitiennes) en construisant une base orthonormée de leur sous-espace de Krylov, ce qui la rend particulièrement utile lorsqu'il s'agit de grandes matrices creuses ou encore d'opérateurs linéaires peu coûteux à évaluer pour toute autre raison.

La méthode d'Arnoldi appartient à une classe d'algorithmes d'algèbre linéaire qui donnent un résultat dit partiel, après un petit nombre d'itérations, en contraste des méthodes dites directes qui doivent être complétées exhaustivement pour donner des résultats utiles (voir par exemple la transformation de Householder). Le résultat partiel dans ce cas donne les premiers vecteurs de la base que l’algorithme construit.

Lorsqu'elle est appliquée aux matrices hermitiennes (ou symétriques), cette méthode est adaptée via l'algorithme de Lanczos. Elle a été inventée par W. E. Arnoldi en 1951[1].

Sous-espaces de Krylov et puissances itérées modifier

Une méthode intuitive pour trouver la plus grande valeur propre (en valeur absolue) d'une matrice m × m donnée est la méthode de la puissance itérée : en commençant par un vecteur initial arbitraire b, calculer les puissances successives et normaliser le résultat après chaque application de la matrice .

Cette suite converge vers le vecteur propre correspondant à la valeur propre de plus grande valeur absolue, souvent notée . Cependant, une grande partie des calculs potentiellement utiles sont d'une manière perdus en n'utilisant que le résultat final, . Ce constat pousse donc à construire à la place ce que l'on appelle la matrice de Krylov :

Les colonnes de cette matrice ne sont en général pas orthogonales, mais on peut en extraire une base orthogonale, via une méthode telle que l'algorithme de Gram-Schmidt. L'ensemble de vecteurs résultant est donc une base orthogonale du sous-espace de Krylov, .

La méthode d'Arnoldi modifier

Les itérations de la méthode d'Arnoldi utilisent l'algorithme de Gram-Schmidt pour produire une séquence de vecteurs orthonormés, , appelés vecteurs d'Arnoldi, tels que pour tout , les vecteurs forment une base du sous-espace de Krylov . L'algorithme qui en découle est le suivant :


Algorithme d'Arnoldi
Entrée = La matrice A de taille m×m
Sortie = La matrice H, et une matrice Q contenant la base du sous-espace
Initialiser un vecteur arbitraire q1 de norme 1, et une matrice vide H de taille (n+1)×n
Répéter pour k = 2, 3, ...
    qk := A qk−1
    Répéter pour j de 1 à k 1
        hj, k−1 := qj • qk
        qk ← qk hj, k−1 qj
    hk, k−1 := ‖qk‖
    qk ← qk / hk, k−1


La boucle interne de ce pseudo-code projette les coordonnées de perpendiculairement à l'unique hyperplan porté par dans . Cela garantit l’orthogonalité de tous les vecteurs générés successivement.

L'algorithme parvient à son terme si à une itération donnée est le vecteur nul. Cela se produit lorsque le polynôme minimal de est de degré . Dans la plupart des applications de la méthode d'Arnoldi, y compris l'algorithme des valeurs propres ci-dessus et d'autres applications comme GMRES, l'algorithme a convergé à ce stade, c'est-à-dire que .

Chaque itération de la boucle principale demande un produit matrice-vecteur et environ opérations en virgule flottante.

Propriétés de la méthode d'Arnoldi modifier

Soit la matrice de taille par formée par les premiers vecteurs d'Arnoldi , et soit la matrice de Hessenberg supérieure formée par les nombres calculés par l'algorithme :

La méthode d'orthogonalisation doit être spécifiquement choisie de telle sorte que les composantes précédentes de la base de Krylov en cours de composition soient supprimées des nouveaux vecteurs Krylov ajoutés. Comme peut être exprimé comme une combinaison de par construction, il est orthogonal à .

On a alors

La matrice peut être considérée comme le changement de base de dans le sous-espace avec les vecteurs d'Arnoldi comme base orthogonale : est projetée orthogonalement sur . La matrice peut être caractérisée par la condition d'optimalité suivante. Le polynôme caractéristique de minimise parmi tous les polynômes unitaires de degré . Ce problème d’optimalité a une solution unique si et seulement si l’algorithme arrive à son terme après itérations.

L'extension de la base à l'itération contenue dans la matrice est caractérisée par la relation de récurrence :

telle que

soit une matrice de dimensions formée en ajoutant une ligne supplémentaire à .

Trouver des valeurs propres avec la méthode d'Arnoldi modifier

L'idée de la méthode d'Arnoldi en tant qu'algorithme de recherche de valeurs propres est de calculer les valeurs propres de dans son sous-espace de Krylov. Les valeurs propres de sont appelées valeurs propres de Ritz. Puisque est une matrice de Hessenberg de taille modeste, ses valeurs propres peuvent être calculées efficacement, par exemple avec l'algorithme QR qui réalise des décompositions QR successives, ou une méthode similaire l'algorithme de Francis. Ce dernier lui-même peut également être considéré comme étant lié aux itérations de puissance, opérant sur des sous-espace de Krylov imbriqués. En fait, la forme la plus élémentaire de l'algorithme de Francis semble être de choisir égal à et d'étendre à la pleine dimension des colonnes de [2].

Un fait notable est qu'il s'agit aussi d'un exemple de la méthode de Rayleigh-Ritz.

On observe souvent en pratique que certaines valeurs propres de Ritz convergent vers les valeurs propres de . Puisque est de dimension , elle a au plus n valeurs propres, et toutes les valeurs propres de ne peuvent pas être approchées avec certitude par ses valeurs propres de Ritz. Généralement, ces dernières convergent vers les plus grandes valeurs propres de . Pour obtenir les plus petites valeurs propres de , l’inverse (opération) de doit être utilisé à la place. Cela peut être lié à la construction de comme la matrice dont le polynôme caractéristique minimise . Un bon moyen d'obtenir des polynômes bornés est de choisir le polynôme tel que soit "petit" chaque fois que est une valeur propre de . Par conséquent, les zéros de (et donc les valeurs propres de Ritz) seront proches des valeurs propres de .

Cependant, les détails ne sont pas encore établis par la littérature, tandis que si est hermitienne, la méthode d'Arnoldi peut être reformulé comme l'algorithme de Lanczos pour laquelle la théorie est plus complète.

Itération d'Arnoldi illustrant la convergence des valeurs de Ritz (rouge) vers les valeurs propres (noir) d'une matrice 400x400, composée de valeurs aléatoires uniformes sur le domaine [-0,5 +0,5]

Méthode d'Arnoldi redémarrée implicitement (IRAM) modifier

Pour des raisons informatiques de stockage, les implémentations courantes des méthodes d'Arnoldi "redémarrent", généralement, après un certain nombre d'itérations. Une innovation majeure en la matière est due à Lehoucq et Sorensen qui ont proposé la méthode d'Arnoldi implicitement redémarrée[3]. Ils ont également implémenté l'algorithme dans une bibliothèque logicielle disponible gratuitement appelé ARPACK [4] (elle est utilisée dans de nombreux langages comme Python via SciPy, Julia, ou encore Matlab). Cela a donné lieu à un certain nombre d’autres variantes, notamment la méthode de Lanczos implicitement redémarrée[5],[6],[7]. Cela a également influencé la manière dont les autres méthodes redémarrées sont analysées[8]. Les résultats théoriques ont montré de meilleurs résultats de convergence avec une augmentation de la dimension du sous-espace de Krylov. Cependant, aucune valeur a priori de qui conduirait à une convergence optimale n’est connue. Récemment, une stratégie de "commutation dynamique" [9] a été proposée : elle fait varier la dimension avant chaque redémarrage et conduit ainsi à une amélioration du taux de convergence.

Voir également modifier

GMRES est une méthode de résolution de systèmes linéaires d'équations () reposant sur la méthode d'Arnoldi pour construire un espace dans lequel on minimise les résidus .

Références modifier

  1. (en) Arnoldi, « The principle of minimized iterations in the solution of the matrix eigenvalue problem », Quarterly of Applied Mathematics, vol. 9, no 1,‎ , p. 17–29 (ISSN 0033-569X, DOI 10.1090/qam/42792, lire en ligne)
  2. (en) David S. Watkins, « Francis' Algorithm » [PDF], sur Washington State University, .
  3. (en) R. B. Lehoucq et D. C. Sorensen, « Deflation Techniques for an Implicitly Restarted Arnoldi Iteration », SIAM Journal on Matrix Analysis and Applications, vol. 17, no 4,‎ , p. 789–821 (DOI 10.1137/S0895479895281484, hdl 1911/101832)
  4. (en) R. B. Lehoucq, D. C. Sorensen et C. Yang, « ARPACK Users Guide: Solution of Large-Scale Eigenvalue Problems with Implicitly Restarted Arnoldi Methods » [archive du ], SIAM, (consulté le )
  5. (en) D. Calvetti, L. Reichel et D.C. Sorensen, « An Implicitly Restarted Lanczos Method for Large Symmetric Eigenvalue Problems » [PDF], ETNA,
  6. (en) E. Kokiopoulou, C. Bekas et E. Gallopoulos, « An Implicitly Restarted Lanczos Bidiagonalization Method for Computing Smallest Singular Triplets » [PDF], SIAM,
  7. (en) Zhongxiao Jia, « The refined harmonic Arnoldi method and an implicitly restarted refined algorithm for computing interior eigenpairs of large matrices », Appl. Numer. Math., vol. 42, no 4,‎ , p. 489–512 (DOI 10.1016/S0168-9274(01)00132-5, S2CID 17172589)
  8. Andreas Stathopoulos and Yousef Saad and Kesheng Wu, « Dynamic Thick Restarting of the Davidson, and the Implicitly Restarted Arnoldi Methods », SIAM Journal on Scientific Computing, vol. 19,‎ , p. 227–245 (DOI 10.1137/S1064827596304162)
  9. (en) K.Dookhitram, R. Boojhawon et M. Bhuruth, « A New Method For Accelerating Arnoldi Algorithms For Large Scale Eigenproblems », Math. Comput. Simulat., vol. 80, no 2,‎ , p. 387–401 (DOI 10.1016/j.matcom.2009.07.009)
  • (en) Arnoldi, « The principle of minimized iterations in the solution of the matrix eigenvalue problem », Quarterly of Applied Mathematics, vol. 9, no 1,‎ , p. 17–29 (ISSN 0033-569X, DOI 10.1090/qam/42792, lire en ligne).
  • (en) Yousef Saad, Numerical Methods for Large Eigenvalue Problems, Manchester University Press, (ISBN 0-7190-3386-1).
  • (en) Lloyd N. Trefethen et David Bau, III, Numerical Linear Algebra, Society for Industrial and Applied Mathematics, (ISBN 0-89871-361-7).
  • (en) Leonhard Jaschke, Preconditioned Arnoldi Methods for Systems of Nonlinear Equations, (ISBN 2-84976-001-3)