svd_matrix T_svd_matrix SvdMatrix SvdMatrix (Operator)
Name
svd_matrix T_svd_matrix SvdMatrix SvdMatrix — 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 berechnet die volle oder reduzierte
Singulärwertzerlegung (SVD) der Matrix Matrix Matrix Matrix Matrix matrix , die durch
das Matrix Handle MatrixID MatrixID MatrixID MatrixID matrixID gegeben ist. Der Operator gibt
das Matrix Handle MatrixSID MatrixSID MatrixSID MatrixSID matrixSID der Matrix MatrixS MatrixS MatrixS MatrixS matrixS
mit den Singulärwerten in absteigender Reihenfolge zurück.
Optional werden die Matrizen MatrixU MatrixU MatrixU MatrixU matrixU mit den
linken und MatrixV MatrixV MatrixV MatrixV matrixV mit den rechten Singulärvektoren
ebenfalls berechnet und deren Matrix Handles MatrixUID MatrixUID MatrixUID MatrixUID matrixUID und
MatrixVID MatrixVID MatrixVID MatrixVID matrixVID zurückgegeben. Zugriff auf die Elemente der
Matrix ist z.B. mit dem Operator get_full_matrix get_full_matrix GetFullMatrix GetFullMatrix GetFullMatrix möglich.
Die SVD hat die Form
Ist SVDType SVDType SVDType SVDType SVDType = 'full' "full" "full" "full" "full" gesetzt, wird eine volle SVD
berechnet.
Ist SVDType SVDType SVDType SVDType SVDType = 'reduced' "reduced" "reduced" "reduced" "reduced" gesetzt, wird eine
reduzierte SVD berechnet.
Die Matrix MatrixU MatrixU MatrixU MatrixU matrixU mit den linken Singulärvektoren wird
berechnet, wenn ComputeSingularVectors ComputeSingularVectors ComputeSingularVectors ComputeSingularVectors computeSingularVectors = 'left' "left" "left" "left" "left"
gesetzt ist. Die Matrix MatrixV MatrixV MatrixV MatrixV matrixV mit den rechten
Singulärvektoren wird berechnet, wenn
ComputeSingularVectors ComputeSingularVectors ComputeSingularVectors ComputeSingularVectors computeSingularVectors = 'right' "right" "right" "right" "right" gesetzt ist. Die
Matrizen mit den linken und rechten Singulärvektoren werden
berechnet, wenn ComputeSingularVectors ComputeSingularVectors ComputeSingularVectors ComputeSingularVectors computeSingularVectors = 'both' "both" "both" "both" "both"
gesetzt ist.
Wenn ComputeSingularVectors ComputeSingularVectors ComputeSingularVectors ComputeSingularVectors computeSingularVectors = 'none' "none" "none" "none" "none" gesetzt ist,
werden keine Matrizen mit den Singulärvektoren berechnet. Die
Matrix MatrixS MatrixS MatrixS MatrixS matrixS ist eine Matrix mit n Zeilen und einer
Spalte, wobei n = min(Anzahl der Zeilen der Eingabematrix
Matrix Matrix Matrix Matrix matrix , Anzahl der Spalten der Eingabematrix
Matrix Matrix Matrix Matrix matrix ).
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 (input_control) matrix → HMatrix , HTuple HTuple Htuple (handle) (IntPtr ) (HHandle ) (handle )
Matrix Handle der Eingabematrix.
SVDType SVDType SVDType SVDType SVDType (input_control) string → HTuple HTuple Htuple (string) (string ) (HString ) (char* )
Berechnungstyp.
Defaultwert:
'full'
"full"
"full"
"full"
"full"
Werteliste: 'full' "full" "full" "full" "full" , 'reduced' "reduced" "reduced" "reduced" "reduced"
ComputeSingularVectors ComputeSingularVectors ComputeSingularVectors ComputeSingularVectors computeSingularVectors (input_control) string → HTuple HTuple Htuple (string) (string ) (HString ) (char* )
Berechnung der Singulärwerte.
Defaultwert:
'both'
"both"
"both"
"both"
"both"
Werteliste: 'both' "both" "both" "both" "both" , 'left' "left" "left" "left" "left" , 'none' "none" "none" "none" "none" , 'right' "right" "right" "right" "right"
MatrixUID MatrixUID MatrixUID MatrixUID matrixUID (output_control) matrix → HMatrix , HTuple HTuple Htuple (handle) (IntPtr ) (HHandle ) (handle )
Matrix Handle mit den linken Singulärvektoren.
MatrixSID MatrixSID MatrixSID MatrixSID matrixSID (output_control) matrix → HMatrix , HTuple HTuple Htuple (handle) (IntPtr ) (HHandle ) (handle )
Matrix Handle mit den Singulärwerten.
MatrixVID MatrixVID MatrixVID MatrixVID matrixVID (output_control) matrix → HMatrix , HTuple 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 den
Wert 2 (H_MSG_TRUE). Gegebenenfalls wird eine Fehlerbehandlung
durchgeführt.
Vorgänger
create_matrix create_matrix CreateMatrix CreateMatrix CreateMatrix
Nachfolger
get_full_matrix get_full_matrix GetFullMatrix GetFullMatrix GetFullMatrix ,
get_value_matrix get_value_matrix GetValueMatrix GetValueMatrix GetValueMatrix
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