Algorithme de Lanczos

Si ce bandeau n'est plus pertinent, retirez-le. Cliquez ici pour en savoir plus.
Si ce bandeau n'est plus pertinent, retirez-le. Cliquez ici pour en savoir plus.

Cet article ne cite pas suffisamment ses sources ().

Si vous disposez d'ouvrages ou d'articles de référence ou si vous connaissez des sites web de qualité traitant du thème abordé ici, merci de compléter l'article en donnant les références utiles à sa vérifiabilité et en les liant à la section « Notes et références ».

En pratique : Quelles sources sont attendues ? Comment ajouter mes sources ?

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 A {\displaystyle A\,} d'ordre p est la suivante.

Si x 0 {\displaystyle x_{0}} est un vecteur et x n + 1 = A x n {\displaystyle x_{n+1}=Ax_{n}} , alors x n = A n x 0 {\displaystyle x_{n}=A^{n}x_{0}} .

On sait qu'une matrice symétrique est diagonalisable[1],[2], et les termes σ i , i = 1 , , p {\displaystyle \sigma _{i},i=1,\ldots ,p} de la matrice diagonale sont les valeurs propres de la matrice. Soit donc

A = U ( σ 1 0 σ i 0 σ p ) U = U diag ( σ i ) U {\displaystyle A=U\cdot {\begin{pmatrix}\sigma _{1}&&&&&0\\&\ddots &&&&\\&&\sigma _{i}&&&\\&&&\ddots &&\\&&\vdots &&\ddots &\\0&&&&&\sigma _{p}\\\end{pmatrix}}\cdot U'=U\cdot \operatorname {diag} (\sigma _{i})\cdot U'}

la décomposition en valeurs propres de A {\displaystyle A} , où U est une matrice orthogonale ; alors

A n = U diag ( σ i n ) U {\displaystyle A^{n}=U\operatorname {diag} (\sigma _{i}^{n})U'}

Pour des valeurs de n {\displaystyle n\,} 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 σ max {\displaystyle \sigma _{\max }} la valeur propre de plus grand module.

lim n A n = lim n | σ max | n U diag ( σ i n | σ max | n ) U = U diag ( 0...0 , ( σ max | σ max | ) n , 0...0 ) U {\displaystyle \lim _{n\rightarrow \infty }A^{n}=\lim _{n\rightarrow \infty }|\sigma _{\max }|^{n}\cdot U\operatorname {diag} \left({\frac {\sigma _{i}^{n}}{|\sigma _{\max }|^{n}}}\right)U'=U\operatorname {diag} \left(0...0,\left({\frac {\sigma _{\max }}{|\sigma _{\max }|}}\right)^{n},0...0\right)U'}

Alors, | x n + 1 | / | x n | {\displaystyle |x_{n+1}|/|x_{n}|} converge vers la plus grande valeur propre et x n / | x n | {\displaystyle x_{n}/|x_{n}|} au vecteur propre correspondant.

Dans le cas où il y a plusieurs valeurs propres maximales, x n {\displaystyle x_{n}} 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 u {\displaystyle u\,} 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 A {\displaystyle A} 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

  • (en) Cet article est partiellement ou en totalité issu de l’article de Wikipédia en anglais intitulé « Lanczos algorithm » (voir la liste des auteurs).
  • (en) Gene H. Golub et Charles F. Van Loan, Matrix Computations, JHU Press, , 694 p. (ISBN 978-0-8018-5414-9, présentation en ligne)

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
  • icône décorative Portail des mathématiques
  • icône décorative Portail de l'informatique théorique