Calcul scientique et Informatique 10 octobre 2012 TP 3: Applications de la décomposition en valeurs singulières
Références: [1] pour une introduction très claire à la décomposition en valeurs sin- gulières.
La décomposition en valeur singulières d'un endomorphismef :Rn→Rm est la donnée : (i) d'une base orthogonalev1, . . . , vn de l'espace de départ Rn;
(ii) d'une base orthogonaleu1, . . . , um de l'espace d'arrivée Rm; et (iii) der≤min(n, m) réels positifs σ1 ≥. . .≥σr
tels que la relation suivante soit vériée :
f(vi) =
(σiui si i≤r 0 sii > r
Matriciellement, la décomposition en valeur singulières d'une matrice A dem colonnes et m lignes s'écrit sous la forme A=UΣtV, où U etV sont deux matrices orthogonales de taille m×m et n×n respectivement, et où Σ est une matrice diagonale de taille n×m ayant pour éléments diagonaux σ1, . . . , σr.
Pratiquement : Toute matrice admet une décomposition en valeurs singulières (ce qui est un résultat remarquable !). Cette décomposition est loin d'être unique ; seuls les valeurs singulières σ1 ≥. . .≥σr le sont.
Dans Scilab, elle s'obtient via la commande : [U SV] =svd(A).
1 Pseudo-inverse et moindres carrés
Exercice 1. On s'intéresse à la résolution d'un système linéaireAx=bpar une technique de moindres carrés, c'est-à-dire par minimisation de la fonction
φ :x7→ kAx−bk2, où k.kdénote la norme Euclidienne usuelle.
1. Montrer l'équation d'optimalité pour un vecteur x : tAAx = tAb. En déduire une fonction moindrecarres1 prenant en argumentA et b et retournantx (on utilisera la fonction inv pour l'inversion de matrices).
2. Montrer que si A=UΣtV, alors minimiser φ revient à : (i) Trouver y tel que
Σy−tU b
soit minimale ; (ii) Calculerx=V y.
En déduire une fonction moindrecarres2 utilisant la décomposition en valeurs sin- gulières deA.
3. Application numérique. On considère la matriceAet le vecteurbdénis de la manière suivante
1
c1 = [ 1 2 4 8 ] ' ; c2 = [ 3 6 9 1 2 ] ' ;
c3 = c1 − 4∗c2 + ( 1 . d−7) ∗ (rand (4 , 1) − . 5 ) ; A = [ c1 c2 c3 ] ;
b = 2∗c1 − 7 ∗ c2 + ( 1 . d−4) ∗ (rand (4 , 1) − . 5 ) ;
Appliquer les fonctions moindrecarres1 et moindrecarres2 pour calculer la solu- tion deAx =b. Calculer la norme du résidus (c'est-à-dire kAx−bk) dans les deux cas.
4. Question subsidiaire. La pseudo-inverse d'une matriceAde taillen×mest l'unique matriceA+ de taille m×n vériant les quatre conditions suivantes :
AA+A=A A+AA+=A+
(AA+)∗ =AA+ (A+A)∗ =A+A
Montrer que si A = UΣtV est la décomposition en valeurs singulières de A, alors VΣ−1 tU est une pseudo-inverse deA, où Σ−1 est obtenant en inversant les éléments diagonaux non nuls deΣ.
2 Recalage rigide de nuages de points
On se donne deux ensembles ordonnés de points A = x1, . . . , xN et B = y1, . . . , yN de l'espace Euclidien Rd. On supposera que l'isobarycentre de ces deux ensembles est à l'origine, c'est-à-dire N1 PN
i=1xi = N1 PN
i=1yi = 0. Recaler AsurB, c'est trouver la matrice orthogonaleR qui aligne le mieuxRX àY au sens des moindres carrés, ou autrement dit résoudre le problème d'optimisation suivant1
min
R∈O(Rd) N
X
i=1
kRxi−yik2 (1) où le minimum est pris sur l'ensemble des matrices orthogonales de dimension d.
Exercice 2. Dans cet exercice, on calcule la solution du problème de recalage en utilisant la décomposition en valeurs singulières.
1. Expliquer pourquoi ce problème admet au moins une solution. En notant X (resp.
Y) la matrice de taille d × N ayant pour colonnes les vecteurs (xi) (resp. (yi)), montrer que le problème (1) est équivalent au problème de maximisation
max
R∈O(Rd)
Tr(RXtY). (2)
1. Ce problème apparaît naturellement dans de nombreux domaines scientiques (imagerie médicale, recalage de données mesurées en géologie, etc.) où l'on a aaire à plusieurs mesures du même objet physique acquises sans connaître l'orientation de l'appareil de mesure.
2
2. NotonsC=UΣtV la décomposition en valeurs singulières de la matriceC:=XtY. Montrer que R est solution de (2) si et seulement si la matrice orthogonale M =
tV RU réalise le maximum de
max
M∈O(Rd)
Tr(MΣ).
3. En utilisant l'orthogonalité de la matriceM, montrer queM maximise (2) ssimii= 1 pour toutidans{1, . . . , d}ssiM = Id. En conclure que la solution de (1) est unique et donnée par : R =tU V, où les matrices U et V sont celles dénies à la question précédente.
4. Écrire une fonction recalage_orthogonal qui prend en entrée les matrices X et Y et retourne la matriceR qui résoud le problème (1).
5. Application : On considère les ensembles de points échantillonnés aléatoirement sur le graphe de la fonctionf :R2 →R dénie parf(x, y) = cos(3x) +y2 de la manière suivante :
N = 1000;
x = rand (1 , N) ; y = rand (1 , N) ; z = cos (5 ∗ x ) + y . ^ 2 ; X = [ x ; y ; z ] ;
size (X)
// c r e a t i o n de Y par r o t a t i o n a l e a t o i r e M = rand ( 3 , 3 ) ;
[U, S , V] = svd(M) S = V ∗ U' ;
Y = 0.01 ∗ rand (3 , N) ; for i =1:N
Y( : , i ) = Y( : , i ) + R ∗ X( : , i ) ; end
Calculer la matrice de recalage orthogonal entreX etY. Visualiser en les ensembles de points RX et Y, en utilisant la fonction suivante :
function p l o t p o i n t s 3 d (Y)
param3d(Y( 1 , : ) , Y( 2 , : ) , Y( 3 , : ) ) ; e = gce ( ) ;
e . line_mode=" o f f " ; e . mark_mode="on" ; a = gca ( ) ;
a . isoview = "on" ; endfunction
Références
[1] D. Kalman. A Singularly Valuable Decomposition : The SVD of a Matrix. College Math Journal, 27(1), 1996.
3