orthogonal_decompose_matrix T_orthogonal_decompose_matrix OrthogonalDecomposeMatrix OrthogonalDecomposeMatrix (Operator)
Name
orthogonal_decompose_matrix T_orthogonal_decompose_matrix OrthogonalDecomposeMatrix OrthogonalDecomposeMatrix
— Führt eine orthogonale Zerlegung einer Matrix durch.
Signatur
void OrthogonalDecomposeMatrix (const HTuple& MatrixID , const HTuple& DecompositionType , const HTuple& OutputMatricesType , const HTuple& ComputeOrthogonal , HTuple* MatrixOrthogonalID , HTuple* MatrixTriangularID )
HMatrix HMatrix ::OrthogonalDecomposeMatrix (const HString& DecompositionType , const HString& OutputMatricesType , const HString& ComputeOrthogonal , HMatrix* MatrixTriangularID ) const
HMatrix HMatrix ::OrthogonalDecomposeMatrix (const char* DecompositionType , const char* OutputMatricesType , const char* ComputeOrthogonal , HMatrix* MatrixTriangularID ) const
HMatrix HMatrix ::OrthogonalDecomposeMatrix (const wchar_t* DecompositionType , const wchar_t* OutputMatricesType , const wchar_t* ComputeOrthogonal , HMatrix* MatrixTriangularID ) const
(Nur Windows)
Beschreibung
Der Operator orthogonal_decompose_matrix orthogonal_decompose_matrix OrthogonalDecomposeMatrix OrthogonalDecomposeMatrix OrthogonalDecomposeMatrix
zerlegt die Matrix
Matrix Matrix Matrix Matrix matrix
, die durch das Matrix Handle MatrixID MatrixID MatrixID MatrixID matrixID
gegeben ist. Es werden die Matrizen MatrixOrthogonal MatrixOrthogonal MatrixOrthogonal MatrixOrthogonal matrixOrthogonal
und
MatrixTriangular MatrixTriangular MatrixTriangular MatrixTriangular matrixTriangular
generiert und die Ergebnisse in diesen
gespeichert. Der Operator gibt die Matrix Handles
MatrixOrthogonalID MatrixOrthogonalID MatrixOrthogonalID MatrixOrthogonalID matrixOrthogonalID
und MatrixTriangularID MatrixTriangularID MatrixTriangularID MatrixTriangularID matrixTriangularID
dieser
zwei Matrizen zurück. Zugriff auf die Elemente der Matrizen ist
z.B. mit dem Operator get_full_matrix get_full_matrix GetFullMatrix GetFullMatrix GetFullMatrix
möglich.
Alle Ergebnisse der Zerlegung werden in den Matrizen
MatrixOrthogonal MatrixOrthogonal MatrixOrthogonal MatrixOrthogonal matrixOrthogonal
und MatrixTriangular MatrixTriangular MatrixTriangular MatrixTriangular matrixTriangular
gespeichert, wenn der Paramter OutputMatricesType OutputMatricesType OutputMatricesType OutputMatricesType outputMatricesType
=
'full' "full" "full" "full" "full" ist. Ist OutputMatricesType OutputMatricesType OutputMatricesType OutputMatricesType outputMatricesType
=
'reduced' "reduced" "reduced" "reduced" "reduced" , wird nur ein Teil der Ergebniselemente in den
Matrizen MatrixOrthogonal MatrixOrthogonal MatrixOrthogonal MatrixOrthogonal matrixOrthogonal
und MatrixTriangular MatrixTriangular MatrixTriangular MatrixTriangular matrixTriangular
gespeichert. Die Dimension dieser Matrizen ist kleiner als für
OutputMatricesType OutputMatricesType OutputMatricesType OutputMatricesType outputMatricesType
= 'full' "full" "full" "full" "full" .
Beide Ausgabematrizen werden mit dem Parameter
ComputeOrthogonal ComputeOrthogonal ComputeOrthogonal ComputeOrthogonal computeOrthogonal
= 'true' "true" "true" "true" "true" berechnet. Für
ComputeOrthogonal ComputeOrthogonal ComputeOrthogonal ComputeOrthogonal computeOrthogonal
= 'false' "false" "false" "false" "false" wird nur die Matrix
MatrixTriangular MatrixTriangular MatrixTriangular MatrixTriangular matrixTriangular
berechnet. Die Laufzeit ist daher kürzer.
Der Zerlegungstyp der Matrix Matrix Matrix Matrix matrix
wird über den Parameter
DecompositionType DecompositionType DecompositionType DecompositionType decompositionType
gewählt. Für DecompositionType DecompositionType DecompositionType DecompositionType decompositionType
= 'qr' "qr" "qr" "qr" "qr" wird eine QR Zerlegung (Quadratic/Right) oder für
DecompositionType DecompositionType DecompositionType DecompositionType decompositionType
= 'ql' "ql" "ql" "ql" "ql" wird eine QL Zerlegung
(Quadratic/Left) berechnet. Die Zerlegung wird beschrieben als
Matrix Matrix Matrix Matrix matrix
= MatrixOrthogonal MatrixOrthogonal MatrixOrthogonal MatrixOrthogonal matrixOrthogonal
* MatrixTriangular MatrixTriangular MatrixTriangular MatrixTriangular matrixTriangular
.
Für DecompositionType DecompositionType DecompositionType DecompositionType decompositionType
= 'rq' "rq" "rq" "rq" "rq" wird eine RQ
Zerlegung (Right/Quadratic) oder für DecompositionType DecompositionType DecompositionType DecompositionType decompositionType
= 'lq' "lq" "lq" "lq" "lq" wird eine LQ Zerlegung (Left/Quadratic) berechnet.
Die Zerlegung wird beschrieben als
Matrix Matrix Matrix Matrix matrix
= MatrixTriangular MatrixTriangular MatrixTriangular MatrixTriangular matrixTriangular
* MatrixOrthogonal MatrixOrthogonal MatrixOrthogonal MatrixOrthogonal matrixOrthogonal
.
Es ist zu beachten, dass in den Beispielen Unterschiede in der
Bedeutung der Werte in den Ausgabematrizen zu finden sind: Die
Ergebnisse der Elemente sind per Definition ein bestimmter Wert,
wenn dieser als ganze Zahl dargestellt ist, z.B. 0 oder 1. Der Wert
ist berechnet, wenn er als Gleitpunktzahl dargestellt ist, z.B. 0.0
oder 1.0.
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.
DecompositionType DecompositionType DecompositionType DecompositionType decompositionType
(input_control) string →
HTuple HTuple Htuple (string) (string ) (HString ) (char* )
Zerlegungsmethode.
Defaultwert:
'qr'
"qr"
"qr"
"qr"
"qr"
Werteliste: 'lq' "lq" "lq" "lq" "lq" , 'ql' "ql" "ql" "ql" "ql" , 'qr' "qr" "qr" "qr" "qr" , 'rq' "rq" "rq" "rq" "rq"
OutputMatricesType OutputMatricesType OutputMatricesType OutputMatricesType outputMatricesType
(input_control) string →
HTuple HTuple Htuple (string) (string ) (HString ) (char* )
Typ der Ausgabematrizen.
Defaultwert:
'full'
"full"
"full"
"full"
"full"
Werteliste: 'full' "full" "full" "full" "full" , 'reduced' "reduced" "reduced" "reduced" "reduced"
ComputeOrthogonal ComputeOrthogonal ComputeOrthogonal ComputeOrthogonal computeOrthogonal
(input_control) string →
HTuple HTuple Htuple (string) (string ) (HString ) (char* )
Berechnung der orthogonalen Matrix.
Defaultwert:
'true'
"true"
"true"
"true"
"true"
Werteliste: 'false' "false" "false" "false" "false" , 'true' "true" "true" "true" "true"
MatrixOrthogonalID MatrixOrthogonalID MatrixOrthogonalID MatrixOrthogonalID matrixOrthogonalID
(output_control) matrix →
HMatrix , HTuple HTuple Htuple (handle) (IntPtr ) (HHandle ) (handle )
Matrix Handle mit dem orthogonalen Teil der
zerlegten Eingabematrix.
MatrixTriangularID MatrixTriangularID MatrixTriangularID MatrixTriangularID matrixTriangularID
(output_control) matrix →
HMatrix , HTuple HTuple Htuple (handle) (IntPtr ) (HHandle ) (handle )
Matrix Handle mit dem triangulären Teil der
zerlegten Eingabematrix.
Ergebnis
Sind die Parameterwerte korrekt, dann liefert
orthogonal_decompose_matrix orthogonal_decompose_matrix OrthogonalDecomposeMatrix OrthogonalDecomposeMatrix OrthogonalDecomposeMatrix
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
Siehe auch
decompose_matrix decompose_matrix DecomposeMatrix DecomposeMatrix DecomposeMatrix
,
solve_matrix solve_matrix SolveMatrix SolveMatrix SolveMatrix
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