12.8 La décomposition QR

La décomposition \(QR\) est une méthode qui permet de factoriser une matrice, c'est-à-dire de l'écrire comme un produit de deux autres matrices particulières (un peu comme une matrice carrée inversible peut être factorisée en un produit de matrices élémentaires).

On le verra, pouvoir écrire une matrice comme un produit de matrices plus simples possèdera de nombreux avantages.

Lorsque les colonnes de \(A\) sont indépendantes

Soit \(A\) une matrice \(m\times n\), que l'on écrit à l'aide de ses colonnes: \[ A=[\boldsymbol{a}_1\cdots \boldsymbol{a}_n]\,, \] où chaque \(\boldsymbol{a}_j\in \mathbb{R}^m\).

Si les colonnes de \(A\) sont linéairement indépendantes, elles forment une base de \(\mathrm{Im} (A)\). Cette base n'est a priori pas orthogonale, on peut donc lui appliquer le procédé de Gram-Schmidt: \[\begin{aligned} \boldsymbol{v}_1&:= \boldsymbol{a}_1\,,\\ \boldsymbol{v}_2&:= \boldsymbol{a}_2-\frac{\boldsymbol{a}_2\cdotp\boldsymbol{v}_1}{\|\boldsymbol{v}_1\|^2}\boldsymbol{v}_1\\ \boldsymbol{v}_3&:= \boldsymbol{a}_3-\sum_{i=1}^2 \frac{\boldsymbol{a}_3\cdotp\boldsymbol{v}_i}{\|\boldsymbol{v}_i\|^2}\boldsymbol{v}_i\,,\\ \vdots&\\ \boldsymbol{v}_n&:= \boldsymbol{a}_n-\sum_{i=1}^{n-1} \frac{\boldsymbol{a}_n\cdotp\boldsymbol{v}_i}{\|\boldsymbol{v}_i\|^2}\boldsymbol{v}_i\,,\\ \end{aligned}\] Normalisons chacun des \(\boldsymbol{v}_j\), en définissant \[ \boldsymbol{u}_1:= \frac{\boldsymbol{v}_1}{\|\boldsymbol{v}_1\|}\,,\quad\dots \quad,\, \boldsymbol{u}_k:= \frac{\boldsymbol{v}_k}{\|\boldsymbol{v}_k\|}\,. \] Les \(n\) relations ci-dessus permettent maintenant d'écrire \[\begin{aligned} \boldsymbol{a}_1&=\|\boldsymbol{v}_1\| \boldsymbol{u}_1\,,\\ \boldsymbol{a}_2&=(\boldsymbol{a}_2\cdotp\boldsymbol{u}_1)\boldsymbol{u}_1+ \|\boldsymbol{v}_2\|\boldsymbol{u}_2\\ \boldsymbol{a}_3&=\left(\sum_{i=1}^2 (\boldsymbol{a}_3\cdotp\boldsymbol{u}_i)\boldsymbol{u}_i\right)+\|\boldsymbol{v}_3\| \boldsymbol{u}_3\,,\\ \vdots&\\ \boldsymbol{a}_n&= \left(\sum_{i=1}^{n-1} (\boldsymbol{a}_n\cdotp\boldsymbol{u}_i)\boldsymbol{u}_i\right)+\|\boldsymbol{v}_n\|\boldsymbol{u}_n\,,\\ \end{aligned}\] Cette décomposition des colonnes de \(A\) en combinaisons linéaires des vecteurs \(\boldsymbol{u}_1,\dots,\boldsymbol{u}_n\) peut s'exprimer à l'aide de deux matrices.

Par définition, \(QR=A\). Pour le voir explicitement, on peut écrire \[ R=[\boldsymbol{r}_1\cdots \boldsymbol{r}_n]\,, \] où \[\begin{aligned} \boldsymbol{r}_1&=\|\boldsymbol{v}_1\|\boldsymbol{e}_1\\ \boldsymbol{r}_2&=(\boldsymbol{a}_1\cdotp\boldsymbol{u}_1)\boldsymbol{e}_1+\|\boldsymbol{v}_2\|\boldsymbol{e}_2\\ \vdots&\\ \boldsymbol{r}_n&=\left(\sum_{i=1}^{n-1}(\boldsymbol{a}_i\cdotp \boldsymbol{u}_i)\boldsymbol{e}_i\right) +\|\boldsymbol{v}_n\|\boldsymbol{e}_n\,. \end{aligned}\] Ainsi, la \(k\)-ème colonne de \(QR=[Q\boldsymbol{r}_1\cdots Q\boldsymbol{r}_n]\) est donnée par \[\begin{aligned} Q\boldsymbol{r}_k &=Q \left( \sum_{i=1}^{k-1}(\boldsymbol{a}_i\cdotp \boldsymbol{u}_i)\boldsymbol{e}_i +\|\boldsymbol{v}_k\|\boldsymbol{e}_k \right)\\ &= \sum_{i=1}^{k-1}(\boldsymbol{a}_i\cdotp \boldsymbol{u}_i)(Q\boldsymbol{e}_i) +\|\boldsymbol{v}_k\|Q\boldsymbol{e}_k\\ &= \sum_{i=1}^{k-1}(\boldsymbol{a}_i\cdotp \boldsymbol{u}_i)\boldsymbol{u}_i +\|\boldsymbol{v}_k\|\boldsymbol{u}_k\\ &=\boldsymbol{a}_k\,. \end{aligned}\] On a donc démontré:

Théorème: Soit \(A\) une matrice \(m\times n\) de rang \(\mathrm{rang}(A)=n\). Alors il existe

  1. une matrice \(Q\) (\(m\times n\)) telle que \(Q^TQ=I_n\) (c'est-à-dire dont les colonnes forment une famille orthonormale), et
  2. une matrice \(R\) (\(n\times n\)) triangulaire supérieure,
telles que \[A=QR\,.\] Cette factorisation est une factorisation \(QR\) de \(A\).

Donc la factorisation \(QR\) d'une matrice \(A\) dont les colonnes sont linéairement indépendantes peut s'obtenir comme suit:

  1. Appliquer le procédé de Gram-Schmidt aux colonnes de \(A=[\boldsymbol{a}_1\cdots\boldsymbol{a}_n]\), et normaliser les vecteurs obtenus, pour obtenir \(Q:= [\boldsymbol{u}_1\cdots\boldsymbol{u}_n]\).
  2. Calculer \(R=Q^TA\).

Exemple: Calculons une factorisation \(QR\) de \[ A= \begin{pmatrix} 1&1\\ 1&2\\ 0&2 \end{pmatrix}\,. \] Ici, \(A=[\boldsymbol{a}_1\,\boldsymbol{a}_2]\), où \(\boldsymbol{a}_1\) et \(\boldsymbol{a}_2\) sont indépendants, donc le théorème s'applique. Le procédé de Gram-Schmidt donne \[ \boldsymbol{v}_1:= \boldsymbol{a}_1= \begin{pmatrix} 1\\ 1\\ 0 \end{pmatrix}\,,\qquad \boldsymbol{v}_2:= \boldsymbol{a}_2-\frac{\boldsymbol{a}_2\cdotp\boldsymbol{a}_1}{\|\boldsymbol{a}_1\|^2}\boldsymbol{a}_1= \begin{pmatrix} -1/2\\ 1/2\\ 2 \end{pmatrix}\,. \] On a donc, après normalisation, \[ Q= \begin{pmatrix} \sqrt{2}/2&-\sqrt{2}/6\\ \sqrt{2}/2&\sqrt{2}/6\\ 0&2\sqrt{2}/3 \end{pmatrix} \] Ensuite, \[\begin{aligned} R=Q^TA &= \begin{pmatrix} \sqrt{2}/2&\sqrt{2}/2&0\\ -\sqrt{2}/6&\sqrt{2}/6&2\sqrt{2}/3 \end{pmatrix} \begin{pmatrix} 1&1\\ 1&2\\ 0&2 \end{pmatrix}\\ &= \begin{pmatrix} \sqrt{2}&3\sqrt{2}/2\\ 0&3\sqrt{2}/2 \end{pmatrix} \end{aligned}\] Remarquons que cette dernière est bien \[ R= \begin{pmatrix} \|\boldsymbol{v}_1\|&\boldsymbol{a}_2\cdotp \boldsymbol{u}_1\\ 0&\|\boldsymbol{v}_2\| \end{pmatrix}\,, \] où \(\boldsymbol{u}_1=\frac{\boldsymbol{v}_1}{\|\boldsymbol{v}_1\|}\).

Cas général

La décomposition \(QR\) existe même si les colonnes de la matrice ne sont pas linéairement indépendantes:

Théorème: Soit \(A\) une matrice \(m\times n\) de rang \(\mathrm{rang}(A)=r\). Alors il existe

  1. une matrice \(Q\) (\(m\times r\)) telle que \(Q^TQ=I_r\) (c'est-à-dire dont les colonnes forment une famille orthonormale),
  2. une matrice \(R\) (\(r\times n\)) triangulaire supérieure,
telles que \[ A=QR\,. \]

La différence avec le cas précédent est que lorsqu'on calcule \(Q\) en appliquant le procédé de Gram-Schmidt, on tombe sur des colonnes nulles, que l'on peut éliminer pour ne garder qu'une base orthonormale de \(\mathrm{Col}(A)\). Après, \(R\) s'obtient aussi par \(R=Q^TA\).