Une matrice quelconque A de taille nxp admet une décomposition de la forme
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
alors on peut montrer que (exercice 4 du TP 4) :
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*Squi 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