Décomposition de Hessenberg
La matrice carrée A peut être représentée par A = Q·H·QT, où Q est une matrice orthogonale et H une matrice sous forme de Hessenberg supérieure.
La matrice sous forme de Hessenberg supérieure est la suivante (les éléments non nuls sont marqués d'un «X») :
|
| x x x x x | | x x x x x | | x x x x | | x x x | | x x | |
À l'instar d'autres algorithmes de factorisation orthogonale (par exemple, les décompositions QR et LQ), cet algorithme utilise une suite de réflexions élémentaires pour transformer la matrice A. La transformation s'effectue à gauche puis à droite, supprimant progressivement les éléments.
La sous-routine RMatrixHessenberg remplace la matrice A par la matrice H et stocke une suite de transformations par réflexion sous forme compacte. Le format de stockage des transformations et les paramètres de la sous-routine sont décrits plus en détail dans ses commentaires. Cette méthode est similaire à la décomposition QR, qui utilise la partie inférieure de la matrice R pour entreposer la matrice Q.
Comme pour la décomposition QR, les sous-routines de « décompression » des matrices Q et H sont présentées : RMatrixHessenbergUnpackQ et RMatrixHessenbergUnpackH. La première permet d'obtenir la matrice Q, la seconde la matrice H.
Cet algorithme est issu de la bibliothèque LAPACK.