Name
orthogonal_decompose_matrixorthogonal_decompose_matrixOrthogonalDecomposeMatrixOrthogonalDecomposeMatrix — Führt eine orthogonale Zerlegung einer Matrix durch.
Herror orthogonal_decompose_matrix(const Hlong MatrixID, const char* DecompositionType, const char* OutputMatricesType, const char* ComputeOrthogonal, Hlong* MatrixOrthogonalID, Hlong* MatrixTriangularID)
Herror T_orthogonal_decompose_matrix(const Htuple MatrixID, const Htuple DecompositionType, const Htuple OutputMatricesType, const Htuple ComputeOrthogonal, Htuple* MatrixOrthogonalID, Htuple* MatrixTriangularID)
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
Der Operator orthogonal_decompose_matrixorthogonal_decompose_matrixOrthogonalDecomposeMatrixOrthogonalDecomposeMatrixOrthogonalDecomposeMatrix zerlegt die Matrix
MatrixMatrixMatrixMatrixmatrix, die durch das Matrix Handle MatrixIDMatrixIDMatrixIDMatrixIDmatrixID
gegeben ist. Es werden die Matrizen MatrixOrthogonalMatrixOrthogonalMatrixOrthogonalMatrixOrthogonalmatrixOrthogonal und
MatrixTriangularMatrixTriangularMatrixTriangularMatrixTriangularmatrixTriangular generiert und die Ergebnisse in diesen
gespeichert. Der Operator gibt die Matrix Handles
MatrixOrthogonalIDMatrixOrthogonalIDMatrixOrthogonalIDMatrixOrthogonalIDmatrixOrthogonalID und MatrixTriangularIDMatrixTriangularIDMatrixTriangularIDMatrixTriangularIDmatrixTriangularID dieser
zwei Matrizen zurück. Zugriff auf die Elemente der Matrizen ist
z.B. mit dem Operator get_full_matrixget_full_matrixGetFullMatrixGetFullMatrixGetFullMatrix möglich.
Alle Ergebnisse der Zerlegung werden in den Matrizen
MatrixOrthogonalMatrixOrthogonalMatrixOrthogonalMatrixOrthogonalmatrixOrthogonal und MatrixTriangularMatrixTriangularMatrixTriangularMatrixTriangularmatrixTriangular
gespeichert, wenn der Paramter OutputMatricesTypeOutputMatricesTypeOutputMatricesTypeOutputMatricesTypeoutputMatricesType =
'full'"full""full""full""full" ist. Ist OutputMatricesTypeOutputMatricesTypeOutputMatricesTypeOutputMatricesTypeoutputMatricesType =
'reduced'"reduced""reduced""reduced""reduced", wird nur ein Teil der Ergebniselemente in den
Matrizen MatrixOrthogonalMatrixOrthogonalMatrixOrthogonalMatrixOrthogonalmatrixOrthogonal und MatrixTriangularMatrixTriangularMatrixTriangularMatrixTriangularmatrixTriangular
gespeichert. Die Dimension dieser Matrizen ist kleiner als für
OutputMatricesTypeOutputMatricesTypeOutputMatricesTypeOutputMatricesTypeoutputMatricesType = 'full'"full""full""full""full".
Beide Ausgabematrizen werden mit dem Parameter
ComputeOrthogonalComputeOrthogonalComputeOrthogonalComputeOrthogonalcomputeOrthogonal = 'true'"true""true""true""true" berechnet. Für
ComputeOrthogonalComputeOrthogonalComputeOrthogonalComputeOrthogonalcomputeOrthogonal = 'false'"false""false""false""false" wird nur die Matrix
MatrixTriangularMatrixTriangularMatrixTriangularMatrixTriangularmatrixTriangular berechnet. Die Laufzeit ist daher kürzer.
Der Zerlegungstyp der MatrixMatrixMatrixMatrixmatrix wird über den Parameter
DecompositionTypeDecompositionTypeDecompositionTypeDecompositionTypedecompositionType gewählt. Für DecompositionTypeDecompositionTypeDecompositionTypeDecompositionTypedecompositionType
= 'qr'"qr""qr""qr""qr" wird eine QR Zerlegung (Quadratic/Right) oder für
DecompositionTypeDecompositionTypeDecompositionTypeDecompositionTypedecompositionType = 'ql'"ql""ql""ql""ql" wird eine QL Zerlegung
(Quadratic/Left) berechnet. Die Zerlegung wird beschrieben als
MatrixMatrixMatrixMatrixmatrix = MatrixOrthogonalMatrixOrthogonalMatrixOrthogonalMatrixOrthogonalmatrixOrthogonal * MatrixTriangularMatrixTriangularMatrixTriangularMatrixTriangularmatrixTriangular.
Für DecompositionTypeDecompositionTypeDecompositionTypeDecompositionTypedecompositionType = 'rq'"rq""rq""rq""rq" wird eine RQ
Zerlegung (Right/Quadratic) oder für DecompositionTypeDecompositionTypeDecompositionTypeDecompositionTypedecompositionType
= 'lq'"lq""lq""lq""lq" wird eine LQ Zerlegung (Left/Quadratic) berechnet.
Die Zerlegung wird beschrieben als
MatrixMatrixMatrixMatrixmatrix = MatrixTriangularMatrixTriangularMatrixTriangularMatrixTriangularmatrixTriangular * MatrixOrthogonalMatrixOrthogonalMatrixOrthogonalMatrixOrthogonalmatrixOrthogonal.
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.
- 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.
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"
Typ der Ausgabematrizen.
Defaultwert:
'full'
"full"
"full"
"full"
"full"
Werteliste: 'full'"full""full""full""full", 'reduced'"reduced""reduced""reduced""reduced"
Berechnung der orthogonalen Matrix.
Defaultwert:
'true'
"true"
"true"
"true"
"true"
Werteliste: 'false'"false""false""false""false", 'true'"true""true""true""true"
Matrix Handle mit dem orthogonalen Teil der
zerlegten Eingabematrix.
Matrix Handle mit dem triangulären Teil der
zerlegten Eingabematrix.
Sind die Parameterwerte korrekt, dann liefert
orthogonal_decompose_matrixorthogonal_decompose_matrixOrthogonalDecomposeMatrixOrthogonalDecomposeMatrixOrthogonalDecomposeMatrix den Wert 2 (H_MSG_TRUE). Gegebenenfalls
wird eine Fehlerbehandlung durchgeführt.
create_matrixcreate_matrixCreateMatrixCreateMatrixCreateMatrix
get_full_matrixget_full_matrixGetFullMatrixGetFullMatrixGetFullMatrix,
get_value_matrixget_value_matrixGetValueMatrixGetValueMatrixGetValueMatrix
decompose_matrixdecompose_matrixDecomposeMatrixDecomposeMatrixDecomposeMatrix,
solve_matrixsolve_matrixSolveMatrixSolveMatrixSolveMatrix
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