Algorithme de Lanczos

En algèbre linéaire, l’algorithme de Lanczos (ou méthode de Lanczos) est un algorithme itératif pour déterminer les valeurs et vecteurs propres d'une matrice carrée, ou la décomposition en valeurs singulières d'une matrice rectangulaire.

Cet algorithme n'a pas de lien avec le fenêtrage de Lanczos (utilisé par exemple pour le redimensionnement d'images), si ce n'est que tous les deux tirent leur nom du même inventeur, le physicien et mathématicien hongrois Cornelius Lanczos.

Description de l'algorithme

Méthode de la puissance itérée

La méthode de la puissance itérée pour trouver la plus grande valeur propre d'une matrice carrée symétrique d'ordre p est la suivante.

Si est un vecteur et , alors .

On sait qu'une matrice symétrique est diagonalisable[1],[2], et les termes de la matrice diagonale sont les valeurs propres de la matrice. Soit donc

la décomposition en valeurs propres de , où U est une matrice orthogonale ; alors

Pour des valeurs de très grandes, la matrice diagonale des valeurs propres sera dominée par la plus grande d'entre elles — à l'exception du cas où il y a deux plus grandes valeurs égales : en effet, soit la valeur propre de plus grand module.

Alors, converge vers la plus grande valeur propre et au vecteur propre correspondant.

Dans le cas où il y a plusieurs valeurs propres maximales, converge vers un vecteur dans le sous-espace engendré par les vecteurs propres associés à ces valeurs. Après avoir déterminé le premier, on peut successivement restreindre l'algorithme au noyau des vecteurs propres connus pour déterminer les autres.

En pratique, cet algorithme possède deux inconvénients : une vulnérabilité aux erreurs d'arrondi, et une vitesse de convergence parfois trop faible.

Algorithme de Lanczos

L'algorithme de Lanczos améliore la méthode précédente, dans laquelle chaque est restreint à l'orthogonal de toutes les valeurs précédentes. Lors de la construction de ces vecteurs, les constantes de normalisation sont regroupées dans une matrice tridiagonale dont les valeurs propres les plus significatives convergent, rapidement, vers les valeurs propres de la matrice de départ.

La multiplication par est alors la seule opération de grande ampleur, ce qui fait l'intérêt de la méthode.

Applications, variantes et généralisations

L'algorithme de Lanczos est particulièrement pratique pour déterminer la décomposition de très grandes matrices, en météorologie ou en traitement des langues naturelles, où ces matrices peuvent compter des centaines de milliers de termes.

Il se généralise en l'algorithme d'Arnoldi pour les matrices non symétriques.

Une variante de cet algorithme est utilisée pour la résolution de systèmes linéaires (en particulier pour les systèmes linéaires creux) et la recherche d'éléments du noyau d'une matrice. Sous cette forme, il est fréquemment utilisé dans le cadre d'algorithmes comme le crible quadratique ou le crible algébrique pour la factorisation d'entiers ou la méthode de l'index pour le problème du logarithme discret. Il est apparenté à la méthode du gradient conjugué.

Notes et références

  1. Pour la démonstration, cf. P. G. Ciarlet, Introduction à l'analyse numérique matricielle et à l'optimisation, éd. Masson, coll. « Math. Appl. pour la Maîtrise », (réimpr. 2001) (ISBN 2-225-68893-1), chap. 1, théorème 1.2.1
  2. (en) R. Bellman, Introduction to Matrix Analysis, SIAM, coll. « Classics in Appl. Math. », (réimpr. 1970, 1997) (ISBN 0-89871-399-4), « 3 », p. 35-36

Voir aussi

Articles connexes

Références

Liens externes

  • (en) Andrew Y. Ng, Alice X. Zheng et Michael I. Jordan, « Link Analysis, Eigenvectors and Stability », dans IJCAI-01, (lire en ligne), p. 903-910 : comparaison des méthodes de classement HITS et PageRank (l’algorithme de Google) et de leur convergence et la stabilité des vecteurs propres face aux changements des ensembles de liens organisé par les moteurs de recherche
  • (en) Brian A. LaMacchia et Andrew M. Odlyzko, « Solving Large Sparse Linear Systems over Finite Fields », dans Proceeding CRYPTO '90, p. 109-133, § 3 : Lanczos and conjugate gradient methods