• Aucun résultat trouvé

Décomposition en valeurs singulières

N/A
N/A
Protected

Academic year: 2022

Partager "Décomposition en valeurs singulières"

Copied!
3
0
0

Texte intégral

(1)

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

xk

kxk ≤ cond(A) 1−cond(A)kAkAk

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

(2)

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

(3)

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

Références

Documents relatifs

entre les quatre premières valeurs propres pour le problème du double puits associé à l’opérateur de Dirac, avec ou sans champ magnétique,.. aussi bien en limite

[r]

L’avantage qu’il y a à démontrer des conditions nécessaires et suffisantes pour la convergence c’est qu’on a en même temps en quelque sorte des conditions

[r]

On rappelle que la matrice Σ contient sur sa diagonale les valeurs singulières de

[r]

La SVD est notamment utilisée pour débruiter des spectres (cf Performance du SVD pour débruiter les spectres RMN et Raman, Guillaume Laurent, William Woelffel, Virgile

ESILVFST 305 Problèmes inverses. TD CS 305