KlassenKlassenKlassenKlassen | | | | Operatoren

svd_matrixsvd_matrixSvdMatrixsvd_matrixSvdMatrixSvdMatrix (Operator)

Name

svd_matrixsvd_matrixSvdMatrixsvd_matrixSvdMatrixSvdMatrix — Berechnet die Singulärwertzerlegung einer Matrix.

Signatur

svd_matrix( : : MatrixID, SVDType, ComputeSingularVectors : MatrixUID, MatrixSID, MatrixVID)

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)

Herror svd_matrix(const HTuple& MatrixID, const HTuple& SVDType, const HTuple& ComputeSingularVectors, Hlong* MatrixUID, Hlong* MatrixSID, Hlong* MatrixVID)

HMatrix HMatrix::SvdMatrix(const HTuple& SVDType, const HTuple& ComputeSingularVectors, HMatrix* MatrixSID, HMatrix* MatrixVID) const

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

void HOperatorSetX.SvdMatrix(
[in] VARIANT MatrixID, [in] VARIANT SVDType, [in] VARIANT ComputeSingularVectors, [out] VARIANT* MatrixUID, [out] VARIANT* MatrixSID, [out] VARIANT* MatrixVID)

IHMatrixX* HMatrixX.SvdMatrix(
[in] BSTR SVDType, [in] BSTR ComputeSingularVectors, [out] IHMatrixX*MatrixSID, [out] IHMatrixX*MatrixVID)

static void HOperatorSet.SvdMatrix(HTuple matrixID, HTuple SVDType, HTuple computeSingularVectors, out HTuple matrixUID, out HTuple matrixSID, out HTuple matrixVID)

HMatrix HMatrix.SvdMatrix(string SVDType, string computeSingularVectors, out HMatrix matrixSID, out HMatrix matrixVID)

Beschreibung

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.

Parallelisierung

Parameter

MatrixIDMatrixIDMatrixIDMatrixIDMatrixIDmatrixID (input_control)  matrix HMatrix, HTupleHTupleHMatrix, HTupleHMatrixX, VARIANTHtuple (integer) (IntPtr) (Hlong) (Hlong) (Hlong) (Hlong)

Matrix Handle der Eingabematrix.

SVDTypeSVDTypeSVDTypeSVDTypeSVDTypeSVDType (input_control)  string HTupleHTupleHTupleVARIANTHtuple (string) (string) (HString) (char*) (BSTR) (char*)

Berechnungstyp.

Defaultwert: 'full' "full" "full" "full" "full" "full"

Werteliste: 'full'"full""full""full""full""full", 'reduced'"reduced""reduced""reduced""reduced""reduced"

ComputeSingularVectorsComputeSingularVectorsComputeSingularVectorsComputeSingularVectorsComputeSingularVectorscomputeSingularVectors (input_control)  string HTupleHTupleHTupleVARIANTHtuple (string) (string) (HString) (char*) (BSTR) (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"

MatrixUIDMatrixUIDMatrixUIDMatrixUIDMatrixUIDmatrixUID (output_control)  matrix HMatrix, HTupleHTupleHMatrix, HTupleHMatrixX, VARIANTHtuple (integer) (IntPtr) (Hlong) (Hlong) (Hlong) (Hlong)

Matrix Handle mit den linken Singulärvektoren.

MatrixSIDMatrixSIDMatrixSIDMatrixSIDMatrixSIDmatrixSID (output_control)  matrix HMatrix, HTupleHTupleHMatrix, HTupleHMatrixX, VARIANTHtuple (integer) (IntPtr) (Hlong) (Hlong) (Hlong) (Hlong)

Matrix Handle mit den Singulärwerten.

MatrixVIDMatrixVIDMatrixVIDMatrixVIDMatrixVIDmatrixVID (output_control)  matrix HMatrix, HTupleHTupleHMatrix, HTupleHMatrixX, VARIANTHtuple (integer) (IntPtr) (Hlong) (Hlong) (Hlong) (Hlong)

Matrix Handle mit den rechten Singulärvektoren.

Ergebnis

Sind die Parameterwerte korrekt, dann liefert svd_matrixsvd_matrixSvdMatrixsvd_matrixSvdMatrixSvdMatrix den Wert 2 (H_MSG_TRUE). Gegebenenfalls wird eine Fehlerbehandlung durchgeführt.

Vorgänger

create_matrixcreate_matrixCreateMatrixcreate_matrixCreateMatrixCreateMatrix

Nachfolger

get_full_matrixget_full_matrixGetFullMatrixget_full_matrixGetFullMatrixGetFullMatrix, get_value_matrixget_value_matrixGetValueMatrixget_value_matrixGetValueMatrixGetValueMatrix

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


KlassenKlassenKlassenKlassen | | | | Operatoren