Calcul scientique et Informatique 6 novembre 2013 TP 6: Conditionnement, valeurs singulières.
Conditionnement
Dans toute la suite, k.k désigne la norme euclidienne sur Rn, et lorsque A est une matricen×n, on note égalementkAk= maxx6=0kAxk/kxkla norme matricielle induite.
Le conditionnement d'une matrice inversible A est la quantité cond(A) =kAk kA−1k. Exercice 1. Soit A une matrice carrée inversible et δA une seconde matrice carrée telle que kδAk kA−1k<1.
1. Montrer que la matrice Idn+A−1δA est inversible, et qu'on peut borner la norme de son inverse par
(Idn+A−1δA)−1
≤ 1
1− kA−1k kδAk
2. Soit x ∈ Rn la solution de Ax = b. On se donne une perturbation δb de b et on dénitδx comme la solution du système (A+δA)(x+δx) = b+δb. Montrer
kδxk
kxk ≤ cond(A) 1−cond(A)kδkAkAk
kδbk
kbk + kδAk kAk
.
Étant donnée une matrice symétrique, on note λ1(A) ≤ . . . ≤ λn(A) ses valeurs propres. On appelle valeur singulière de A les valeurs propres de la matrice symétrique AtA, et on les note σ1(A)≤. . .≤σn(A).
Exercice 2. 1. Montrer que kAk=p
σn(A), et en déduire l'expression suivante pour une matrice inversible :cond(A) = (σn(A)/σ1(A))1/2.
2. En déduire que cond(A) = 1 si et seulement si A est orthogonale.
3. Monter que dans le cas oùAest symétrique dénie positive,cond(A) = λn(A)/λ1(A). Considérons la matrice du laplacien périodique
∆n=
2 −1 0 . . . −1
−1 2 −1 ... ...
0 ... ... ... 0 ... ... −1 2 −1
−1 . . . 0 −1 2
.
Montrer que siω est une racinenième de l'unité, le vecteurv = (1, ω, . . . , ωn−1)est un vecteur propre de∆n. En déduire le conditionnement de ∆n.
1
Décomposition en valeurs singulières
La décomposition en valeur singulières d'un endomorphisme f : Rn → Rm est la donnée d'une base orthogonale (vi)1≤i≤n de l'espace de départ, d'une base orthogonale (ui)1≤i≤m de l'espace d'arrivée et de r réels 0 < σ1 ≤ . . .≤ σr oùr est le rang de f, tels que la relation suivante soit vériée :
f(vi) =
(σiui si i≤r 0 sii > r
Théorème 1. Tout endomorphisme admet une décomposition en valeurs singulières.
Matriciellement, la décomposition en valeur singulières d'une matriceAdemcolonnes etmlignes s'écrit sous la formeA=UΣtV, oùU etV sont deux matrices orthogonales de taillem×metn×nrespectivement, et oùΣest une matrice diagonale de taillen×mayant pour éléments diagonaux σ1, . . . , σr. Dans Scilab, la décomposition en valeurs singulières d'une matrice s'obtient via la commande : [U SV] =svd(A).
Exercice 3. On se donne deux ensembles de points A = x1, . . . , xN et B = y1, . . . , yN
de l'espace Euclidien Rd, et on suppose que N1 PN
i=1xi = N1 PN
i=1yi = 0. Le problème du recalage rigide consiste à trouver la matrice orthogonale R qui aligne le mieuxR(X)à Y au sens des moindres carrés, c'est-à-dire
min
R∈O(Rd) N
X
i=1
kRxi−yik2. (1) Dans cet exercice, on calcule la solution du problème de recalage en utilisant la décom- position en valeurs singulières.
1. Expliquer pourquoi le minimum est atteint dans (1) ? 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)
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.
2
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 ] ;
R = qr (rand ( 3 , 3 ) ) ; // matrice de r o t a t i o n a l e a t o i r e Y = 0.01 ∗ rand (3 , N) ;
for i =1:N
Y( : , i ) = Y( : , i ) + R ∗ X( : , i ) ; end
Calculer la matrice de recalage orthogonal entre X et Y. Visualiser les ensembles de points R(X) etY, 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
3