svd_matrix T_svd_matrix SvdMatrix SvdMatrix svd_matrix (Operator)
Name
svd_matrix T_svd_matrix SvdMatrix SvdMatrix svd_matrix — Berechnet die Singulärwertzerlegung einer Matrix.
Signatur
void SvdMatrix (const HTuple& MatrixID , const HTuple& SVDType , const HTuple& ComputeSingularVectors , HTuple* MatrixUID , HTuple* MatrixSID , HTuple* MatrixVID )
HMatrix HMatrix ::SvdMatrix (const HString& SVDType , const HString& ComputeSingularVectors , HMatrix* MatrixSID , HMatrix* MatrixVID ) const
HMatrix HMatrix ::SvdMatrix (const char* SVDType , const char* ComputeSingularVectors , HMatrix* MatrixSID , HMatrix* MatrixVID ) const
HMatrix HMatrix ::SvdMatrix (const wchar_t* SVDType , const wchar_t* ComputeSingularVectors , HMatrix* MatrixSID , HMatrix* MatrixVID ) const
(Nur Windows)
Beschreibung
Der Operator svd_matrix svd_matrix SvdMatrix SvdMatrix SvdMatrix svd_matrix berechnet die volle oder reduzierte
Singulärwertzerlegung (SVD) der Matrix Matrix, die durch
das Matrix Handle MatrixID MatrixID MatrixID MatrixID matrixID matrix_id gegeben ist. Der Operator gibt
das Matrix Handle MatrixSID MatrixSID MatrixSID MatrixSID matrixSID matrix_sid der Matrix MatrixS
mit den Singulärwerten in absteigender Reihenfolge zurück.
Optional werden die Matrizen MatrixU mit den
linken und MatrixV mit den rechten Singulärvektoren
ebenfalls berechnet und deren Matrix Handles MatrixUID MatrixUID MatrixUID MatrixUID matrixUID matrix_uid und
MatrixVID MatrixVID MatrixVID MatrixVID matrixVID matrix_vid zurückgegeben. Zugriff auf die Elemente der
Matrix ist z.B. mit dem Operator get_full_matrix get_full_matrix GetFullMatrix GetFullMatrix GetFullMatrix get_full_matrix möglich.
Die SVD hat die Form
Ist SVDType SVDType SVDType SVDType SVDType svdtype = 'full' "full" "full" "full" "full" "full" gesetzt, wird eine volle SVD
berechnet.
Beispiel:
SVDType SVDType SVDType SVDType SVDType svdtype = 'full' "full" "full" "full" "full" "full" ,
ComputeSingularVectors ComputeSingularVectors ComputeSingularVectors ComputeSingularVectors computeSingularVectors compute_singular_vectors = 'both' "both" "both" "both" "both" "both"
Ist SVDType SVDType SVDType SVDType SVDType svdtype = 'reduced' "reduced" "reduced" "reduced" "reduced" "reduced" gesetzt, wird eine
reduzierte SVD berechnet.
Beispiel:
SVDType SVDType SVDType SVDType SVDType svdtype = 'reduced' "reduced" "reduced" "reduced" "reduced" "reduced" ,
ComputeSingularVectors ComputeSingularVectors ComputeSingularVectors ComputeSingularVectors computeSingularVectors compute_singular_vectors = 'both' "both" "both" "both" "both" "both"
Die Matrix MatrixU mit den linken Singulärvektoren wird
berechnet, wenn ComputeSingularVectors ComputeSingularVectors ComputeSingularVectors ComputeSingularVectors computeSingularVectors compute_singular_vectors = 'left' "left" "left" "left" "left" "left"
gesetzt ist. Die Matrix MatrixV mit den rechten
Singulärvektoren wird berechnet, wenn
ComputeSingularVectors ComputeSingularVectors ComputeSingularVectors ComputeSingularVectors computeSingularVectors compute_singular_vectors = 'right' "right" "right" "right" "right" "right" gesetzt ist. Die
Matrizen mit den linken und rechten Singulärvektoren werden
berechnet, wenn ComputeSingularVectors ComputeSingularVectors ComputeSingularVectors ComputeSingularVectors computeSingularVectors compute_singular_vectors = 'both' "both" "both" "both" "both" "both"
gesetzt ist.
Wenn ComputeSingularVectors ComputeSingularVectors ComputeSingularVectors ComputeSingularVectors computeSingularVectors compute_singular_vectors = 'none' "none" "none" "none" "none" "none" gesetzt ist,
werden keine Matrizen mit den Singulärvektoren berechnet. Die
Matrix MatrixS ist eine Matrix mit n Zeilen und einer
Spalte, wobei n = min(Anzahl der Zeilen der Eingabematrix
Matrix, Anzahl der Spalten der Eingabematrix
Matrix).
Beispiel:
SVDType SVDType SVDType SVDType SVDType svdtype = 'reduced' "reduced" "reduced" "reduced" "reduced" "reduced" oder 'full' "full" "full" "full" "full" "full" ,
ComputeSingularVectors ComputeSingularVectors ComputeSingularVectors ComputeSingularVectors computeSingularVectors compute_singular_vectors = 'none' "none" "none" "none" "none" "none"
Es ist zu beachten, dass in den Beispielen Unterschiede in der
Bedeutung der Werte in den Ausgabematrizen zu finden sind: Wenn ein
Wert als ganze Zahl dargestellt ist, z.B. 0 oder 1, ist der Wert
dieses Elements per Definition dieser bestimmte Wert. Wenn der Wert
als Gleitpunktzahl dargestellt ist, z.B. 0.0 oder 1.0, ist der Wert
von dem Operator berechnet worden.
Ausführungsinformationen
Multithreading-Typ: reentrant (läuft parallel zu nicht-exklusiven Operatoren).
Multithreading-Bereich: global (kann von jedem Thread aufgerufen werden).
Wird ohne Parallelisierung verarbeitet.
Parameter
MatrixID MatrixID MatrixID MatrixID matrixID matrix_id (input_control) matrix → HMatrix , HTuple HHandle HTuple Htuple (handle) (IntPtr ) (HHandle ) (handle )
Matrix Handle der Eingabematrix.
SVDType SVDType SVDType SVDType SVDType svdtype (input_control) string → HTuple str HTuple Htuple (string) (string ) (HString ) (char* )
Berechnungstyp.
Defaultwert:
'full'
"full"
"full"
"full"
"full"
"full"
Werteliste: 'full' "full" "full" "full" "full" "full" , 'reduced' "reduced" "reduced" "reduced" "reduced" "reduced"
ComputeSingularVectors ComputeSingularVectors ComputeSingularVectors ComputeSingularVectors computeSingularVectors compute_singular_vectors (input_control) string → HTuple str HTuple Htuple (string) (string ) (HString ) (char* )
Berechnung der Singulärwerte.
Defaultwert:
'both'
"both"
"both"
"both"
"both"
"both"
Werteliste: 'both' "both" "both" "both" "both" "both" , 'left' "left" "left" "left" "left" "left" , 'none' "none" "none" "none" "none" "none" , 'right' "right" "right" "right" "right" "right"
MatrixUID MatrixUID MatrixUID MatrixUID matrixUID matrix_uid (output_control) matrix → HMatrix , HTuple HHandle HTuple Htuple (handle) (IntPtr ) (HHandle ) (handle )
Matrix Handle mit den linken Singulärvektoren.
MatrixSID MatrixSID MatrixSID MatrixSID matrixSID matrix_sid (output_control) matrix → HMatrix , HTuple HHandle HTuple Htuple (handle) (IntPtr ) (HHandle ) (handle )
Matrix Handle mit den Singulärwerten.
MatrixVID MatrixVID MatrixVID MatrixVID matrixVID matrix_vid (output_control) matrix → HMatrix , HTuple HHandle HTuple Htuple (handle) (IntPtr ) (HHandle ) (handle )
Matrix Handle mit den rechten Singulärvektoren.
Ergebnis
Sind die Parameterwerte korrekt, dann liefert svd_matrix svd_matrix SvdMatrix SvdMatrix SvdMatrix svd_matrix den
Wert 2 (H_MSG_TRUE ). Gegebenenfalls wird eine Fehlerbehandlung
durchgeführt.
Vorgänger
create_matrix create_matrix CreateMatrix CreateMatrix CreateMatrix create_matrix
Nachfolger
get_full_matrix get_full_matrix GetFullMatrix GetFullMatrix GetFullMatrix get_full_matrix ,
get_value_matrix get_value_matrix GetValueMatrix GetValueMatrix GetValueMatrix get_value_matrix
Literatur
David Poole: „Linear Algebra: A Modern Introduction“; Thomson;
Belmont; 2006.
Gene H. Golub, Charles F. van Loan: „Matrix Computations“; The
Johns Hopkins University Press; Baltimore and London; 1996.
Modul
Foundation