Versuchen Sie die Singularwertzerlegung mit Python

Was ich tun möchte: Überprüfen Sie die Singularwertzerlegung der linearen Algebra

Für die $ m $ Zeile $ n $ Spaltenmatrix $ A $

Existiert und das Folgende gilt

A=U\Sigma \overline{V^T}

Wobei die Überlagerung das komplexe Konjugat und $ ^ T $ die Transponierte ist.

(Beispiel-) Matrixdefinition

A=\left(
\begin{matrix}
1 & 2 \\
3 & 4 
\end{matrix}
\right)
> import numpy as np
> A = np.array([[1,2],[3,4]])

Der Inhalt von ck

> A 
array([[1, 2],
       [3, 4]])

Versuchen Sie sofort SVD

U, s, V = np.linalg.svd(A, full_matrices=True)

Es gibt drei Rückgabewerte.

Inhalt ck

> U
array([[-0.40455358, -0.9145143 ],
       [-0.9145143 ,  0.40455358]])
> s
array([ 5.4649857 ,  0.36596619])
> V
array([[-0.57604844, -0.81741556],
       [ 0.81741556, -0.57604844]])

Irgendwie fühlt es sich an, als wäre $ s $ zusammengebrochen, aber die Substanz ist nur die diagonale Komponente, das heißt,

> np.diag(s)
array([[ 5.4649857 ,  0.        ],
       [ 0.        ,  0.36596619]])

Ist eine Matrix von Entitäten.

Überprüfen Sie, ob es zurückkehrt

A=U\Sigma \overline{V^T}

Ich werde überprüfen.

>np.dot(np.dot(U, np.diag(s)),V)
array([[ 1.,  2.],
       [ 3.,  4.]])

Es fühlt sich gut an ♪ ⇒ Da hier die Matrix $ V $ von der Ausführungsspalte erhalten wird, ist es nicht erforderlich, eine komplexe Konjugation durchzuführen, aber es scheint, dass diejenige, die keine Translokation nimmt, als Rückgabewert zurückgegeben wird.

Bestätigung für alle Fälle

U ist eine einheitliche Matrix

> np.dot(U, U.T)
array([[  1.00000000e+00,   2.77555756e-16],
       [  2.77555756e-16,   1.00000000e+00]])

Es ist numerisch unvermeidlich, dass ein anderer Wert als $ 0 $ an einer Stelle eingegeben wird, die keine diagonale Komponente ist.

V ist auch eine einheitliche Matrix

> np.dot(V, V.T)
array([[ 1.,  0.],
       [ 0.,  1.]])

Recommended Posts

Versuchen Sie die Singularwertzerlegung mit Python
Versuchen Sie es mit Python.
Versuchen Sie, die Daimyo-Matrix durch einen Singularwert zu zerlegen
Versuchen Sie, Python mit Try Jupyter auszuführen
Versuchen Sie die Gesichtserkennung mit Python
Singularitätszerlegung (SVD), Low Rank Approximation (LRA) in Python
Versuchen Sie es mit Python + Beautiful Soup
Ersetzen Sie den Wörterbuchwert durch Python> update ()
Versuchen Sie Python
Versuchen Sie die Gesichtserkennung mit Python + OpenCV
Versuchen Sie die Frequenzsteuerungssimulation mit Python
Versuchen Sie, Farbfilme mit Python zu reproduzieren
Versuchen Sie, sich mit Python bei qiita anzumelden
Versuchen Sie, mit Binärdaten in Python zu arbeiten
Versuchen Sie, Python mit Google Cloud-Funktionen zu verwenden
Versuchen Sie HTML-Scraping mit der Python-Bibliothek
Versuchen Sie, Python von Ruby aus mit Sparsamkeit aufzurufen
Versuchen Sie, eine Karte mit Python + Cartopy 0.18.0 zu zeichnen
[Fortsetzung] Versuchen Sie den Zugriff auf das SPS-Register mit Python
Versuchen Sie, Python: Lambda zuzuweisen oder zu wechseln
[Für Anfänger] Versuchen Sie Web Scraping mit Python
FizzBuzz in Python3
Scraping mit Python
Statistik mit Python
Scraping mit Python
Python mit Go
Twilio mit Python
In Python integrieren
Spielen Sie mit 2016-Python
Python> try: / außer:
AES256 mit Python
Getestet mit Python
Python beginnt mit ()
mit Syntax (Python)
Bingo mit Python
Zundokokiyoshi mit Python
Excel mit Python
Mikrocomputer mit Python
Mit Python besetzen
nginxparser: Versuchen Sie, die nginx-Konfigurationsdatei mit Python zu analysieren
Probieren Sie es mit Word Cloud Japanese Python JupyterLab.
Finden Sie den Stimmungswert mit Python (Rike Koi)
Versuchen Sie, Google Chrome mit Python und Selenium auszuführen
Niedrigrangige Approximation von Bildern durch Singularitätszerlegung
Versuchen Sie, das Mensch-Maschine-Diagramm mit Python zu lösen
Versuchen Sie, mit Python eine Lebenskurve zu zeichnen
Versuchen Sie, in Python einen "Entschlüsselungs" -Code zu erstellen
Versuchen Sie, Python-Dokumente automatisch mit Sphinx zu generieren
Versuchen Sie, mit Mongo in Python auf dem Mac zu arbeiten
[Python3] [Ubuntu16] [Docker] Versuchen Sie die Gesichtserkennung mit OpenFace
Versuchen Sie, mit Python eine Diedergruppe zu bilden
Versuchen Sie, Fische mit Python + OpenCV2.4 (unvollendet) zu erkennen.
Serielle Kommunikation mit Python
Zip, entpacken mit Python
Django 1.11 wurde mit Python3.6 gestartet
Primzahlbeurteilung mit Python
Socket-Kommunikation mit Python
Datenanalyse mit Python 2
[Python] Versuchen Sie, die FX-Systolenparameter durch zufällige Suche zu optimieren
Excel> INTERCEPT ()> Abschnittswert> Webfehler> Bestätigen Sie mit Python / _, _ mit Tupel
Versuchen Sie, das Programmier-Herausforderungsbuch mit Python3 zu lösen