svd_matrix
— Berechnet die Singulärwertzerlegung einer Matrix.
Der Operator svd_matrix
berechnet die volle oder reduzierte
Singulärwertzerlegung (SVD) der Matrix Matrix
, die durch
das Matrix Handle MatrixID
gegeben ist. Der Operator gibt
das Matrix Handle MatrixSID
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
und
MatrixVID
zurückgegeben. Zugriff auf die Elemente der
Matrix ist z.B. mit dem Operator get_full_matrix
möglich.
Die SVD hat die Form
Ist SVDType
= 'full' gesetzt, wird eine volle SVD
berechnet.
Ist SVDType
= 'reduced' gesetzt, wird eine
reduzierte SVD berechnet.
Die Matrix MatrixU
mit den linken Singulärvektoren wird
berechnet, wenn ComputeSingularVectors
= 'left'
gesetzt ist. Die Matrix MatrixV
mit den rechten
Singulärvektoren wird berechnet, wenn
ComputeSingularVectors
= 'right' gesetzt ist. Die
Matrizen mit den linken und rechten Singulärvektoren werden
berechnet, wenn ComputeSingularVectors
= 'both'
gesetzt ist.
Wenn ComputeSingularVectors
= '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
).
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.
MatrixID
(input_control) matrix →
(handle)
Matrix Handle der Eingabematrix.
SVDType
(input_control) string →
(string)
Berechnungstyp.
Defaultwert: 'full'
Werteliste: 'full' , 'reduced'
ComputeSingularVectors
(input_control) string →
(string)
Berechnung der Singulärwerte.
Defaultwert: 'both'
Werteliste: 'both' , 'left' , 'none' , 'right'
MatrixUID
(output_control) matrix →
(handle)
Matrix Handle mit den linken Singulärvektoren.
MatrixSID
(output_control) matrix →
(handle)
Matrix Handle mit den Singulärwerten.
MatrixVID
(output_control) matrix →
(handle)
Matrix Handle mit den rechten Singulärvektoren.
Sind die Parameterwerte korrekt, dann liefert svd_matrix
den
Wert 2 (H_MSG_TRUE). Gegebenenfalls wird eine Fehlerbehandlung
durchgeführt.
get_full_matrix
,
get_value_matrix
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