Décomposition en valeurs singulières

Une matrice quelconque A de taille nxp admet une décomposition de la forme

\begin{displaymath}A = U S V^\ast, \end{displaymath}

où U et V sont des matrices orthogonales d'ordres respectifs n et p, S une matrice "pseudo-diagonale" de taille nxp (càd tous ses éléments sont nuls sauf ceux sur la diagonale principale).

La diagonale de S contient les valeurs singulières de A. Ce sont des valeurs positives ou nulles que l'on ordonne généralement par ordre décroissant. Le rang r de A est égal au nombre de valeurs singulières strictement positives.

Les colonnes de U et de V forment les vecteurs singuliers d'entrée et de sortie, respectivement.

S'appliquant à des matrices quelconques, la décomposition en valeurs singulières est une décomposition plus générale que la diagonalisation. Lorsqu'une matrice A est hermitienne semi-définie positive, ses valeurs propres et ses valeurs singulières coïncident.

Si l'on interprète la matrice A comme la matrice associée à une application linéaire


\begin{displaymath}f : \mathbb{R}^p \longrightarrow \mathbb{R}^n\end{displaymath}

alors on peut montrer que (exercice 4 du TP 4) :


\begin{displaymath}\mathrm{Im}(f) = \mathrm{vect}(U_i, i=1,\cdots,r)\:\:\: \math...
...} \:\:\: \mathrm{Ker}(f) = \mathrm{vect}(V_i, i=r+1,\cdots,p). \end{displaymath}

En matlab ou octave, on peut calculer la décomposition en valeurs singulières d'une matrice avec la commande svd. Voici un exemple d'utilisation

A=[1:5;4:8]; A=[A;A(1,:)+A(2,:)] %matrice de rang 2
[U,S,V]=svd(A)
A*V
U*S
qui renvoie
A =

    1    2    3    4    5
    4    5    6    7    8
    5    7    9   11   13

>>>U =

  -0.27975   0.76708  -0.57735
  -0.52443  -0.62581  -0.57735
  -0.80418   0.14127   0.57735

S =

Diagonal Matrix

   2.6230e+01            0            0            0            0
            0   1.4008e+00            0            0            0
            0            0   5.7533e-16            0            0

V =

  -2.4393e-01  -7.3519e-01  -5.1171e-01  -9.6320e-04   3.7169e-01
  -3.3590e-01  -4.3263e-01   8.3306e-01   3.1610e-02   7.0802e-02
  -4.2788e-01  -1.3007e-01  -1.5868e-01  -4.4799e-01  -7.5771e-01
  -5.1985e-01   1.7248e-01  -1.3497e-01   8.0500e-01  -1.8373e-01
  -6.1183e-01   4.7504e-01  -2.7697e-02  -3.8766e-01   4.9895e-01

>>>ans =

   -7.33795    1.07448    0.00000   -0.00000    0.00000
  -13.75615   -0.87660    0.00000    0.00000   -0.00000
  -21.09409    0.19788    0.00000    0.00000    0.00000

>>>ans =

   -7.33795    1.07448   -0.00000    0.00000    0.00000
  -13.75615   -0.87660   -0.00000    0.00000    0.00000
  -21.09409    0.19788    0.00000    0.00000    0.00000

Frédéric Richard, Aix-Marseille Université 2012-12-05