Pseudoinverse über Singulärwertzerlegung

17/06/2010 - 13:43 von Thomas Plehn | Report spam
Hallo,

ist dieser Ansatz einigermaßen schnell? Die direkte Berechnung ist mir
zu umstàndlich. Sie erfordert eine Faktorisierung, die ich selbst
umsetzen müsste.
Wie schnell ist dies im Vergleich zu der in den meisten Fàllen
ausreichenden Rechnung

A^+ = (A^T*A)^-1 *A^T
 

Lesen sie die antworten

#1 Thomas Plehn
17/06/2010 - 14:07 | Warnen spam
Am 17.06.2010 13:43, schrieb Thomas Plehn:
Hallo,

ist dieser Ansatz einigermaßen schnell? Die direkte Berechnung ist mir
zu umstàndlich. Sie erfordert eine Faktorisierung, die ich selbst
umsetzen müsste.
Wie schnell ist dies im Vergleich zu der in den meisten Fàllen
ausreichenden Rechnung

A^+ = (A^T*A)^-1 *A^T



Das Problem tritt auf, wenn die Matrix A nicht vollen Zeilenrang hat,
dann berechnet sich die Pseudoinverse anders:

hat A den Rang k, so faktorisiere A so, dass A(m,n) = B(m,k)*C(k,n)

diese Faktorisierung finde ich in math.net nicht, aber ich vermute mal,
der Rechenaufwand wàre geringer als mit der Singulàrwertzerlegung

A^+ = C^T (C C^T)^-1 (B^T B)^-1 B^T

ist das ein großer Geschwindigkeitsunterschied?

momentan rechne ich aus A = USV^T

A^+ = V S^+ U^T

Ähnliche fragen