Name
svd_matrixsvd_matrixSvdMatrixsvd_matrixSvdMatrixSvdMatrix — Berechnet die Singulärwertzerlegung einer Matrix.
Herror svd_matrix(const Hlong MatrixID, const char* SVDType, const char* ComputeSingularVectors, Hlong* MatrixUID, Hlong* MatrixSID, Hlong* MatrixVID)
Herror T_svd_matrix(const Htuple MatrixID, const Htuple SVDType, const Htuple ComputeSingularVectors, Htuple* MatrixUID, Htuple* MatrixSID, Htuple* MatrixVID)
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
Der Operator svd_matrixsvd_matrixSvdMatrixsvd_matrixSvdMatrixSvdMatrix berechnet die volle oder reduzierte
Singulärwertzerlegung (SVD) der Matrix MatrixMatrixMatrixMatrixMatrixmatrix, die durch
das Matrix Handle MatrixIDMatrixIDMatrixIDMatrixIDMatrixIDmatrixID gegeben ist. Der Operator gibt
das Matrix Handle MatrixSIDMatrixSIDMatrixSIDMatrixSIDMatrixSIDmatrixSID der Matrix MatrixSMatrixSMatrixSMatrixSMatrixSmatrixS
mit den Singulärwerten in absteigender Reihenfolge zurück.
Optional werden die Matrizen MatrixUMatrixUMatrixUMatrixUMatrixUmatrixU mit den
linken und MatrixVMatrixVMatrixVMatrixVMatrixVmatrixV mit den rechten Singulärvektoren
ebenfalls berechnet und deren Matrix Handles MatrixUIDMatrixUIDMatrixUIDMatrixUIDMatrixUIDmatrixUID und
MatrixVIDMatrixVIDMatrixVIDMatrixVIDMatrixVIDmatrixVID zurückgegeben. Zugriff auf die Elemente der
Matrix ist z.B. mit dem Operator get_full_matrixget_full_matrixGetFullMatrixget_full_matrixGetFullMatrixGetFullMatrix möglich.
Die SVD hat die Form
Ist SVDTypeSVDTypeSVDTypeSVDTypeSVDTypeSVDType = 'full'"full""full""full""full""full" gesetzt, wird eine volle SVD
berechnet.
Ist SVDTypeSVDTypeSVDTypeSVDTypeSVDTypeSVDType = 'reduced'"reduced""reduced""reduced""reduced""reduced" gesetzt, wird eine
reduzierte SVD berechnet.
Die Matrix MatrixUMatrixUMatrixUMatrixUMatrixUmatrixU mit den linken Singulärvektoren wird
berechnet, wenn ComputeSingularVectorsComputeSingularVectorsComputeSingularVectorsComputeSingularVectorsComputeSingularVectorscomputeSingularVectors = 'left'"left""left""left""left""left"
gesetzt ist. Die Matrix MatrixVMatrixVMatrixVMatrixVMatrixVmatrixV mit den rechten
Singulärvektoren wird berechnet, wenn
ComputeSingularVectorsComputeSingularVectorsComputeSingularVectorsComputeSingularVectorsComputeSingularVectorscomputeSingularVectors = 'right'"right""right""right""right""right" gesetzt ist. Die
Matrizen mit den linken und rechten Singulärvektoren werden
berechnet, wenn ComputeSingularVectorsComputeSingularVectorsComputeSingularVectorsComputeSingularVectorsComputeSingularVectorscomputeSingularVectors = 'both'"both""both""both""both""both"
gesetzt ist.
Wenn ComputeSingularVectorsComputeSingularVectorsComputeSingularVectorsComputeSingularVectorsComputeSingularVectorscomputeSingularVectors = 'none'"none""none""none""none""none" gesetzt ist,
werden keine Matrizen mit den Singulärvektoren berechnet. Die
Matrix MatrixSMatrixSMatrixSMatrixSMatrixSmatrixS ist eine Matrix mit n Zeilen und einer
Spalte, wobei n = min(Anzahl der Zeilen der Eingabematrix
MatrixMatrixMatrixMatrixMatrixmatrix, Anzahl der Spalten der Eingabematrix
MatrixMatrixMatrixMatrixMatrixmatrix).
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.
- Multithreading-Typ: reentrant (läuft parallel zu nicht-exklusiven Operatoren).
- Multithreading-Bereich: global (kann von jedem Thread aufgerufen werden).
- Wird ohne Parallelisierung verarbeitet.
Matrix Handle der Eingabematrix.
Berechnungstyp.
Defaultwert:
'full'
"full"
"full"
"full"
"full"
"full"
Werteliste: 'full'"full""full""full""full""full", 'reduced'"reduced""reduced""reduced""reduced""reduced"
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"
Matrix Handle mit den linken Singulärvektoren.
Matrix Handle mit den Singulärwerten.
Matrix Handle mit den rechten Singulärvektoren.
Sind die Parameterwerte korrekt, dann liefert svd_matrixsvd_matrixSvdMatrixsvd_matrixSvdMatrixSvdMatrix den
Wert 2 (H_MSG_TRUE). Gegebenenfalls wird eine Fehlerbehandlung
durchgeführt.
create_matrixcreate_matrixCreateMatrixcreate_matrixCreateMatrixCreateMatrix
get_full_matrixget_full_matrixGetFullMatrixget_full_matrixGetFullMatrixGetFullMatrix,
get_value_matrixget_value_matrixGetValueMatrixget_value_matrixGetValueMatrixGetValueMatrix
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.
Foundation