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 ».
Pour tout valeur propre de et vecteur propre associé, est aussi valeur propre de et est vecteur propre associé.
De plus, si on prend la tridiagonalisation partielle :
et
alors les valeurs propres extrémales (les plus grandes et les plus petites) des convergent très vite vers les valeurs propres extrémales de et si est le vecteur propre associé à l'une de ces valeurs propre de , alors converge vers le vecteur propre de associé à la même valeur propre.
(Il faut considérer que et sont égaux au vecteur nul, pour gérer les cas aux bords).
Sachant que les sont orthogonaux entre eux et de norme 1 (car est une matrice orthogonale), alors
L'algorithme est alors :
Entrées : la matrice à tridiagonaliser, le vecteur initial, le nombre d'itérations maximum souhaité
, ,
Tant que et :
Si on recherche les valeurs et vecteurs propres, il est alors possible d'utiliser un algorithme de décomposition en valeurs propres adapté aux matrices tridiagonales symétriques, par exemple l'algorithme diviser-pour-régner(en), pour trouver la décomposition de et en déduire les valeurs et vecteurs propres extrémaux de
À toute étape , la plus grande valeur propre de est égale au maximum du quotient de Rayleigh de sur le sous-espace de Krylov d'ordre , et elle est donc plus petite que la plus grande valeur propre de . De plus, la plus grande valeur propre est croissante d'une étape sur l'autre. Le même raisonnement peut être fait pour la plus petite valeur propre.
Démonstration
Notons que la plus grande et la plus petite valeur propre de la matrice hermitienne sont le maximum et le minimum du quotient de Rayleigh sur .
Par construction, on a (où est le ième vecteur de la base canonique). On a alors. . Mais , et par définition, . Ainsi, est le vecteur nul et .
Donc pour tout vecteur , le quotient de Rayleigh est . Donc les plus grandes et les plus petites valeurs propre de et leur vecteur propres associés sont les maxima et minima du quotient de Rayleigh de A dans le sous-espace de Krylov d'ordre , .
Le gradient de est donc pour tout point du sous-espace de Krylov d'ordre k, le gradient est dans le sous-espace de Krylov d'ordre k+1.
Nommons les valeurs propres de en ordre décroissant, et les vecteurs propres associés. Notons aussi les valeurs propres décroissantes de la matrice . On a alors le théorème suivant[1] :
Démonstration du théorème de convergence de Kaniel-Page
Le sous-espace de Krylov d'ordre associé à A et q est engendré par les vecteurs . On peut donc reformuler le quotient de Rayleigh à l'étape par , où est l'ensemble des polynômes de degrés inférieur ou égal à .
Notons la décomposition en valeurs singulières de . étant une matrice hermitienne, les vecteurs singuliers à droite et à gauche sont identiques et correspondent aux vecteurs propres de , les valeurs singulières étant les valeurs propres.
On a alors . Soit , on a alors
est donc supérieur à cette valeur pour tout polynôme de degré au plus . Cependant, un choix opportun est un polynôme qui est grand pour et petit pour les autres valeurs propres, tel qu'un polynome de Tchebychev. Pour avoir la propriété souhaitée, on fixe .
On a alors et
Donc . On suppose que (on peut le supposer car est normalisé au début de l’exécution). Alors .
On a donc
De plus, puisque est une matrice orthogonale, alors (le premier vecteur de la base canonique de ). Donc . On a donc , ce qui conclut la preuve pour .
La preuve pour peut être obtenue de la même façon, en remplaçant par dans la preuve.
On suppose que la matrice comporte éléments non-nuls, avec . Alors l'opération la plus coûteuse de l'exécution est la multiplication qui a un coût asymptotique de . La complexité temporelle de l'algorithme est alors
De plus, les seules données à stocker sont les vecteurs et les valeurs et . La complexité spatiale est donc de
Comparaison avec la méthode de la puissance itérée
La méthode de la puissance itérée recherche le vecteur propre associé à la plus grande valeur propre en multipliant itérativement le vecteur initial par la matrice . On peut donc considérer qu'à une étape , la méthode consiste à rechercher le vecteur associé à la plus grande valeur propre dans l'espace vectoriel de dimension engendré par le vecteur .
L'algorithme de Lanczos améliore ce processus en recherchant, à une étape , le vecteur associé à la plus grande valeur propre dans l'espace vectoriel de dimension engendré par l'ensemble des vecteurs des itérations précédentes, c'est à dire les vecteurs .
L'opération la plus coûteuse effectuée par l'algorithme de Lanczos est la multiplication d'un vecteur par la matrice . Lorsque est une matrice creuse, l'algorithme est donc très efficace par rapport aux autres algorithmes de tridiagonalisation tel que les transformations de Householder. Il est même possible de calculer les valeurs propres d'une matrice qui n'est pas connue explicitement, mais telle qu'on dispose d'une fonction telle que .
Dans le cadre de la recherche de valeurs propres, c'est également un des rares algorithmes de recherche de valeur propre qui permettent de trouver les plus petites valeurs propres d'une matrice hermitienne sans réaliser sa décomposition complète.
Par contre, l'algorithme n'est pas stable numériquement. En effet, même si les calculs donnent des résultat de la meilleur précision possible, il reste un résidu d'erreur. Lorsque les coefficients sont petits, cela condition à une perte de l'orthogonalité de la matrice , ce qui complique grandement la déduction des vecteurs propres de à partir de ceux de . Plusieurs méthodes existent pour pallier ce problème, telles que l'orthogonalisation de chaque nouveau vecteur par rapport à l'ensemble des vecteurs déjà calculés, ou encore l'orthogonalisation de à la fin de l'exécution de l'algorithme.
Soit un matrice . Si est une valeur singulière de et le vecteur singulier associé à droite, alors est une valeur propre de et est le vecteur propre associé. Il est donc possible de réaliser une décomposition en valeurs propres de , et d'en déduire la décomposition en valeurs singulières de
L'algorithme de Lanczos est particulièrement pratique pour déterminer la décomposition de très grandes matrices creuses, en météorologie ou en traitement des langues naturelles, où ces matrices peuvent compter des centaines de milliers de termes.
L'algorithme de Lanczos se généralise en l'algorithme d'Arnoldialgorithme 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é.
(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