Disons que je peux connaître la SVD d'une matrice :
Si j'ai une matrice orthogonale (c'est-à-dire que est carré et a des colonnes orthonormées), alors la SVD de est
où .
Mais peut-on dire quelque chose sur la SVD de si a des colonnes orthonormées mais n'est pas nécessairement carré? En d'autres termes, si la SVD de est , les matrices , ou peuvent-elles être écrites en termes de SVD de et ?
Mise à jour: @whuber suggère que je puisse étendre pour qu'il soit orthogonal en ajoutant des colonnes orthonormales jusqu'à ce que soit carré. Appelez cette matrice orthogonale .
Je sais que le SVD de est (voir ci-dessus). Mais maintenant , je me bats pour voir s'il y a une façon que je peux écrire le SVD de en termes de SVD de .
pca
svd
matrix-decomposition
mobeets
la source
la source
Réponses:
Dans le SVD , où est une matrice , est une matrice orthogonale .X=USV′ X n×p V p×p
Supposons que soit une matrice orthogonale : c'est-à-dire . LaisserB p×q B′B=1q
être un SVD de . Ainsi, par définition, est une matrice , est une matrice diagonale de dimension et est une matrice orthogonale .SV′B T p×q D q W q×q
Calculer
Parce que , a des colonnes orthonormées. Parce que et font partie d'une SVD, alors par définition est diagonal avec des entrées non négatives et est une matrice orthogonale . Par conséquent, l' équation donne une SVD de . L' équation montre comment cette SVD est apparentée à celle de et .(UT)′(UT)=T′(U′U)T=T′T=1q UT D W′ D W q×q (2) XB (1) X B
la source
Pour une matriceB avec des colonnes orthonormées (mais pas carrées), je voudrais un moyen de trouver un SVD de XB en termes de SVD de X=USVT .
Comme suggéré par @whuber, une première étape vers la recherche de la SVD deXB consiste à ajouter des colonnes à B pour le rendre carré (et donc orthogonal). Appelez cette matriceB~=[B;B⊥] et laissez k être le nombre de colonnes de B⊥ . Ensuite parce queB~ est orthogonal, si X=USVT est un SVD de X , puis XB~=US(B~TV)T est un SVD de XB~ .
Parce queXB peut être obtenu auprès de XB~ en laissant tomber le dernier k colonnes, mon problème d'origine se réduit maintenant à ce qui suit: Étant donné la SVD d'une matrice Y=DEFT , existe-t-il un moyen de trouver la SVD de Y′=D′E′F′T , où Y′ est la matrice résultant de l'abandon du dernier k colonnes de Y ? (Ici j'aiY=XB~ et Y′=XB .)
Ce problème est appelé «mise à jour de la SVD», et en général, il semble y avoir de nombreuses approches pour ce faire. Une approche pertinente se trouve ici , et plus de discussion ici .
Mais en général, étant donné que les algorithmes pour rétrograder la SVD semblent être un domaine de recherche active, je conclus qu'il n'y a pas de moyen simple de trouver la SVD deXB étant donné uniquement la SVD de X .
la source