Numpy SVD -Methode

Numpy SVD -Methode

Die Zersetzung von Singularwert ist eines der wichtigsten Konzepte in der linearen Algebra. Das Verständnis der Singular Value Decomposition (SVD) beinhaltet die Vertrautheit mit verwandten Konzepten wie Matrizen, Matrixtypen und Matrixtransformationen. Aufgrund der Verknüpfungen zwischen der einzelnen Wertzersetzung einer Matrix und anderen linearen algebraischen Themen ist das Lernen der Idee herausfordernder geworden. In diesem Artikel werden Sie die Definition der Singularwertabbau und die detaillierten Beispiele für 2*2 und 3*3 Matrix -Zersetzung ermitteln. Der SVD -Ansatz wird in diesem Beitrag gründlich erklärt. Hier finden Sie alle erforderlichen Material.

Was ist eine einzigartige Wertzersetzung?

Wenn eine Matrix in drei verschiedene Matrizen berücksichtigt wird, soll sie sich in einzigartige Werte zerlegen. Dieses Konzept ist als SVD bekannt, das für die Singular Value Decomposition steht. Wenn die Matrix „eins“ in das Produkt von drei Matrizen einbezogen wird, kann die einzelnen Wertzersetzung von Matrix „Eins“ als eins = udvt geschrieben werden. In diesem Fall sind die Spalten U und V orthonormal, während die Matrix D diagonal ist und echte positive Einträge aufweist.

Syntax der SVD -Methode



Die Syntax der SVD -Methode hat einige Parameter.

Jetzt haben Sie ein grundlegendes Verständnis der SVD -Methode und ihrer Syntax. Lassen Sie uns einige Beispiele für die Verwendung der Funktion diskutieren.

Beispiel 1

Im ersten Beispiel dieses Artikels geben wir Ihnen den Beispielcode zur Anwendung der SVD -Methode zur Verfügung. Lassen Sie uns die Codezeile nach Zeile sehen.

Im folgenden Screenshot können Sie sehen, dass wir die Numpy -Bibliothek importiert haben, die in Python erhältlich ist. Es geschieht mit einem einfachen „importieren numpy“ Code, und wir schreiben dies normalerweise in der ersten Zeile des Codes. Danach haben wir das Array mit dem Namen "arr_data" mit dem Numpy erstellt.Array -Methode. Das Array enthält [1, 2, 3, 4, 5], [11, 22, 33, 11, 23], [6, 8, 10, 2, 4] und [5, 7, 3, 5, 3) ] Werte.

Anschließend haben wir zwei Druckanweisungen verwendet, um das Originalarray anzuzeigen. In der nächsten Zeile des Codes haben wir den Numpy verwendet.Linla.SVD -Methode auf dem erstellten Array oben. Hier haben wir den Parameter full_matrices auf "false" gesetzt. Im letzten Abschnitt werden zwei weitere Print () -Anweisungen verwendet. Eine Druckanweisung zum Anzeigen des „Faktors des erstellten Arrays von SVD:“ und der zweiten Druckanweisung, um das Ergebnis auf dem Ausgangsbildschirm anzuzeigen.

Numpy importieren
arr_data = numpy.Array ([[1, 2, 3, 4, 5], [11, 22, 33, 11, 23],
[6, 8, 10, 2, 4], [5, 7, 3, 5, 3]],
DTYPE = Numpy.float32)
print ("Hier ist das ursprüngliche Array:")
print (arr_data)
U, s, v = numpy.Linalg.SVD (arr_data, full_matrices = false)
print ("\ nFactor des erstellten Arrays von SVD:")
print ("\ nu =", u, "\ n \ ns =", s, "\ n \ nv =", v)



Der Ergebnisbildschirm ist angehängt, in dem Sie das ursprüngliche Array und den Faktor dieses Arrays mit der SVD -Methode sehen können.

Beispiel 2

Hier ist das zweite Beispiel für diesen Artikel, in dem dasselbe Konzept angewendet wird, jedoch auf einem anderen Array, das unterschiedliche Werte enthält. In der zweiten Zeile des Code können Sie sehen, dass wir ein Array mit dem Namen "arr_val" mit dem Numpy erstellt haben.Array -Methode. Das Array enthält [7, 1, 2], [3, 7, 3] und [2, 4, 7] Werte. Danach wird das ursprüngliche Array angezeigt, sodass Sie leicht den Unterschied zwischen dem ursprünglichen Array und dem generierten Ergebnis erkennen können. Der Numpy.Linalg.Die SVD -Methode wird anschließend auf das angegebene Array angewendet und das Ergebnis angezeigt.

Numpy importieren
arr_val = numpy.Array ([[7, 1, 2], [3, 7, 3],
[2, 4, 7]], dtype = numpy.float32)
Druck („Hier ist das Originalarray:“)
print (arr_val)
U, s, v = numpy.Linalg.SVD (arr_val, full_matrices = false)
print ("\ nFactor des erstellten Array nach SVD -Methode:")
print ("\ nu =", u, "\ n \ ns =", s, "\ n \ nv =", v)



Hier ist die Ausgabe, in der Sie das ursprüngliche Array und den Faktor dieses Arrays sehen können, das von der SVD -Methode berechnet wird.

Beispiel 3

Hier wird ein anderes Array in „arr_3 gespeichertRdUnd seine Werte sind [12, 3], [4, 7]. Der Rest des Code dieses Programms ist fast gleich wie oben. Sie können die durch diesen Code generierte Ausgabe und die Ausgabe vergleichen, die durch die vorherigen Beispiele angegeben sind. Der Ausgang unterscheidet sich abhängig vom bereitgestellten Eingangsarray mit Form und Größe.

Numpy importieren
arr_3rd = numpy.Array ([[12, 3], [4, 7]], DTYPE = Numpy.float32)
Druck („Hier ist das Originalarray:“)
print (arr_3rd)
U, s, v = numpy.Linalg.SVD (arr_3rd, full_matrices = false)
print ("\ nFactor des erstellten Array nach SVD -Methode:")
print ("\ nu =", u, "\ n \ ns =", s, "\ n \ nv =", v)



Hier ist das folgende Ergebnis:

Beispiel 4

Dies ist das letzte Beispiel dieses Artikels, und hier verwenden wir zwei separate 2D -Arrays. Sehen wir uns die Codezeile nach der Zeile im folgenden Screenshot an.

Hier haben wir mit dem Import von Numpy und Numpy angefangen.Linalg -Module, die alle für linearen Algebra erforderlichen Funktionen liefern. Danach werden zwei 2D -Arrays mit dem Numpy erstellt.willkürlich.Randn -Methode. Diese Arrays werden in "First_arr "- und" seconc_arr "-Variablen gespeichert. Anschließend wird eine Druckanweisung verwendet, um die Original -Arrays anzuzeigen. Die Codierungslinie dafür ist "Print (" Hier sind die Original -Arrays: \ n ", First_arr)" und "Print (" Hier sind die Original -Arrays: \ n ", Second_arr)".

Jetzt haben wir das LNG verwendet.SVD -Methode auf dem angegebenen Array und setzen Sie die Option Full_matrices auf "true". Im letzten Abschnitt werden vier weitere Druckanweisungen verwendet. In der ersten Druckanweisung werden die "Hier sehen Sie die Form aller zurückgegebenen Werte": Text ", und der Rest der Druckanweisungen zeigt die Form der von der ausgeführten Funktion zurückgegebenen Werte an. Siehe den vollständigen Code -Screenshot unten:

Numpy importieren
Numpy importieren.Linalg als lng
First_arr = Numpy.willkürlich.Randn (2, 5) + 1J*Numpy.willkürlich.Randn (2, 5)
Second_arr = B = Numpy.willkürlich.Randn (2, 5, 7, 3) + 1J*Numpy.willkürlich.Randn (2, 5, 7, 3)
print ("Hier sind die ursprünglichen Arrays: \ n", First_arr)
print ("Hier sind die ursprünglichen Arrays: \ n", Second_arr)
u, s, vh = lng.SVD (First_arr, full_matrices = true)
print ("Hier sehen Sie die Form aller zurückgegebenen Werte: \ n")
print ("u =", u.Form)
print ("s =", s.Form)
print ("vh =", vh.Form)



Die folgenden vollständigen Ausgabebestellungen des vorherigen Codes werden für Ihre Referenz beigefügt:



Abschluss

SVD wird ausgiebig verwendet, um Probleme in Physik, Statistik, maschinellem Lernen und anderen Feldern zu lösen. Wir haben die Definition und Syntax der SVD -Methode in diesem kurzen Aufsatz behandelt. Zusätzlich werden verschiedene Fälle von 2*2 und 3*3 Matrix -Zerlegungen verwendet, um den Hauptpunkt des Postens zu veranschaulichen. Sie können diese Seite als Ressource verwenden, um die Grundlagen des SVD -Ansatzes zu lernen und warum sie heutzutage so häufig verwendet wird.