Nous avons déjà vu le procédé d'orthonormalisation de Schmidt.
Soit A une matrice carrée régulière (inversible) d'ordre n.
Désignons par BC, la base formée canonique de ℝn.
Soit u l'automorphisme ayant A pour matrice relativement à BC.
Désignons par BO, la base orthonormée obtenue par le procédé de Schmidt à partir des colonnes de A.
Alors la matrice de u par rapport à la base BC et à la base BO, soit M(u,BC,BO) est triangulaire d'après le procédé de Schmidt. Or M(u,BC,BC)= M(Id,BO,BC) × M(u,BC,BO) d'après la définition du produit des matrices. Donc si on note Q la matrice dont les colonnes sont M(Id,BO,BC) on a bien A=TQ. Mais Q est l'inverse (donc la transposée) de la matrice dont les colonnes sont les vecteurs obtenus à partir des vecteurs colonnes de A par le procédé de Schmidt.

Café Python

Voici une implémentation de l'algorithme de factorisation QR par la méthode de Schmidt