Soit \(A\) une matrice \(m\times n\) dont une décomposition en valeurs
singulières est donnée:
\[
A=U\Sigma V^T\,.
\]
Comme nous avons fait avec la décomposition spectrale,
nous allons profiter de la SVD pour
écrire \(A\) comme une combinaison linéaire de matrices plus
simples.
Pour commencer,
remarquons que l'on peut toujours imposer, dans une SVD, que les valeurs
singulières apparaissent sur la diagonale de \(\Sigma\) en ordre décroissant:
\[
\sigma_1\geqslant \sigma_1\geqslant \dots
\]
En nommant les colonnes de \(U\) et de \(V\):
\[
U=\bigl[\boldsymbol{u}_1\cdots \boldsymbol{u}_m\bigr]\,,\qquad
V=\bigl[\boldsymbol{v}_1\cdots \boldsymbol{v}_n\bigr]\,.
\]
Définissons alors l'indice de la plus petite valeur singulière strictement
positive,
\[ r:= \max\{1\leqslant k\leqslant l\colon \sigma_k\gt 0\}\,.
\]
et procédons comme on l'a fait pour la décomposition spectrale en écrivant,
pour tout \(\boldsymbol{x}\in\mathbb{R}^n\),
\[\begin{aligned}
A\boldsymbol{x}=U\Sigma V^T\boldsymbol{x}&=
\bigl[\boldsymbol{u}_1\cdots \,\boldsymbol{u}_m\bigr]\Sigma
\begin{pmatrix}
\boldsymbol{v}_1^T\boldsymbol{x}\\
\vdots\\
\boldsymbol{v}_n^T\boldsymbol{x}
\end{pmatrix}\\
&=
\bigl[\sigma_1\boldsymbol{u}_1\cdots \,\sigma_r\boldsymbol{u}_r\,\boldsymbol{0}\cdots\boldsymbol{0}\bigr]
\begin{pmatrix}
\boldsymbol{v}_1^T\boldsymbol{x}\\
\vdots\\
\boldsymbol{v}_n^T\boldsymbol{x}
\end{pmatrix}\\
&=\sum_{k=1}^r \sigma_k\boldsymbol{u}_k\boldsymbol{v}_k^T\boldsymbol{x}\\
&=\left(\sum_{k=1}^r \sigma_k\boldsymbol{u}_k\boldsymbol{v}_k^T\right)\boldsymbol{x}\,.
\end{aligned}\]
On a donc pu écrire \(A\) comme une somme:
\[
\boxed{
A=
\sum_{k=1}^r \sigma_k\boldsymbol{u}_k\boldsymbol{v}_k^T\,,
}
\]
On retrouve bien, pour tout \(j\),
\[\begin{aligned}
A\boldsymbol{v}_j
&=\sum_{k=1}^r \sigma_k\boldsymbol{u}_k\underbrace{\boldsymbol{v}_k^T\boldsymbol{v}_j}_{=\delta_{kj}}\\
&=\sigma_j\boldsymbol{u}_j\,.
\end{aligned}\]
Remarquons qu'à l'inverse de la décomposition spectrale, une matrice
\(\boldsymbol{u}_k\boldsymbol{v}_k^T\) ne représente pas une projection puisqu'elle
transforme un vecteur de \(\mathbb{R}^n\) en un vecteur de \(\mathbb{R}^m\).
Son seul point commun avec une projection est que
\[
\mathrm{rang}(\boldsymbol{u}_k\boldsymbol{v}_k^T)=1\,.
\]
SVD fournit donc une représentation d'une matrice comme une somme de matrices de
rang égal à \(1\). Aussi, comme on n'a gardé que les valeurs singulières
\(\sigma_k\gt 0\), et comme les \(\boldsymbol{u}_k\) sont indépendants, on a montré:
Théorème: Le rang de \(A\) est égal au nombre de valeurs singulières non-nulles.
Définissons, pour tout \(k\leqslant r\), \[ A(k):=\sum_{j=1}^k \sigma_j\boldsymbol{u}_j\boldsymbol{v}_j^T\,. \] Alors \(A(k)\) est la matrice de rang \(k\) qui approxime le mieux \(A\), dans le sens suivant (c'est le Théorème d'Eckart-Young):
Théorème: Soit \(A\) (\(m\times n\)) de rang \(l\leqslant n\). Pour tout \(1\leqslant k\leqslant l\), \(A(k)\) est la matrice de rang \(k\) qui approxime le mieux \(A\): \[ \min_B\|A-B\|=\|A-A(k)\|\,, \] où le minimum est pris sur toutes les matrices \(m\times n\) de rang au plus égal à \(k\).