Angenommen, ich kann die SVD einer Matrix :X = U S V T.
Wenn ich eine orthogonale Matrix haben ( das heißt, ist quadratisch und orthonormal Spalten), dann wird der SVD von istA X A.
Aber kann etwas über die SVD von gesagt werden, wenn orthonormale Säulen hat, aber nicht unbedingt quadratisch ist? Mit anderen Worten, wenn der SVD von ist kann die Matrizen , oder in Bezug auf die SVD geschrieben werden und ?B X B X B = D E F T D E F X B.
Update: @whuber schlägt vor, dass ich orthogonal erweitern kann, indem ich orthonormale Spalten hinzufüge, bis quadratisch ist. Rufen Sie diese orthogonale Matrix .B ˜ B.
Ich kenne den SVD von ist (siehe oben). Aber jetzt kämpfe ich darum, ob es eine Möglichkeit gibt, die SVD von XB in Bezug auf die SVD von X \ tilde B zu schreiben . U S ( ˜ B T V ) T X B X ˜ B.
quelle
Antworten:
In der SVD , wobei eine Matrix ist, ist eine orthogonale Matrix. X n × p V p × pX=USV′ X n×p V p×p
Angenommen, ist eine orthogonale Matrix, . Lassenp × q B ' B = 1 qB p×q B′B=1q
ein SVD sein . Somit ist per Definition eine Matrix, ist eine diagonale Matrix der Dimension und ist eine orthogonale Matrix.T p × q D q W q × qSV′B T p×q D q W q×q
Berechnen
Da , hat orthonormale Spalten. Da und Teil einer SVD sind, ist per Definition diagonal mit nicht negativen Einträgen und ist eine orthogonale Matrix. Folglich ergibt Gleichung eine SVD von . Gleichung zeigt, wie diese SVD mit der von und . U T D W ' D W q × q(UT)′(UT)=T′(U′U)T=T′T=1q UT D W′ D W q×q X B(2) XB X B.(1) X B
quelle
Für eine Matrix mit orthonormalen Spalten (aber nicht quadratisch) möchte ich einen Weg finden, eine SVD von in Bezug auf die SVD von .X B X = U S V T.B XB X=USVT
Wie von @whuber vorgeschlagen, besteht ein erster Schritt zum Finden der SVD von darin, Spalten zu hinzuzufügen , um sie quadratisch (und damit orthogonal) zu machen. Nennen Sie diese Matrix und sei die Anzahl der Spalten von . Dann , da orthogonal ist, wenn ein SVD ist , dann ist ein SVD von .B ˜ B = [ B ; B ⊥ ] k B ⊥ ˜ B X = U S V T X X ˜ B = U.XB B B~=[B;B⊥] k B⊥ B~ X=USVT X X ~ BXB~=US(B~TV)T XB~
Da durch Löschen der letzten Spalten von werden kann, reduziert sich mein ursprüngliches Problem jetzt auf Folgendes: Gibt es angesichts der SVD einer Matrix eine Möglichkeit, die SVD von , wobei die Matrix ist, die sich aus dem der letzten Spalten von ergibt ? (Hier habe ich und .)X ˜ B k Y = D E F T Y ' = D ' E ' F ' T Y ' k Y Y = X ˜ B Y ' = X B.XB XB~ k Y=DEFT Y′=D′E′F′T Y′ k Y Y=XB~ Y′=XB
Dieses Problem wird als "Downdating der SVD" bezeichnet, und im Allgemeinen scheint es dafür viele Ansätze zu geben. Ein relevanter Ansatz gefunden werden hier , und mehr Diskussion hier .
Angesichts der Tatsache, dass Algorithmen zum Herunterdatieren der SVD ein Bereich aktiver Forschung zu sein scheinen, komme ich im Allgemeinen zu dem Schluss, dass es keinen einfachen Weg gibt, die SVD von wenn nur die SVD von .X.XB X
quelle