| Operatoren |
orthogonal_decompose_matrix — Führt eine orthogonale Zerlegung einer Matrix durch.
orthogonal_decompose_matrix( : : MatrixID, DecompositionType, OutputMatricesType, ComputeOrthogonal : MatrixOrthogonalID, MatrixTriangularID)
Der Operator orthogonal_decompose_matrix zerlegt die Matrix Matrix, die durch das Matrix Handle MatrixID gegeben ist. Es werden die Matrizen MatrixOrthogonal und MatrixTriangular generiert und die Ergebnisse in diesen gespeichert. Der Operator gibt die Matrix Handles MatrixOrthogonalID und MatrixTriangularID dieser zwei Matrizen zurück. Zugriff auf die Elemente der Matrizen ist z.B. mit dem Operator get_full_matrix möglich.
Alle Ergebnisse der Zerlegung werden in den Matrizen MatrixOrthogonal und MatrixTriangular gespeichert, wenn der Paramter OutputMatricesType = 'full' ist. Ist OutputMatricesType = 'reduced', wird nur ein Teil der Ergebniselemente in den Matrizen MatrixOrthogonal und MatrixTriangular gespeichert. Die Dimension dieser Matrizen ist kleiner als für OutputMatricesType = 'full'.
Beide Ausgabematrizen werden mit dem Parameter ComputeOrthogonal = 'true' berechnet. Für ComputeOrthogonal = 'false' wird nur die Matrix MatrixTriangular berechnet. Die Laufzeit ist daher kürzer.
Der Zerlegungstyp der Matrix wird über den Parameter DecompositionType gewählt. Für DecompositionType = 'qr' wird eine QR Zerlegung (Quadratic/Right) oder für DecompositionType = 'ql' wird eine QL Zerlegung (Quadratic/Left) berechnet. Die Zerlegung wird beschrieben als
Matrix = MatrixOrthogonal * MatrixTriangular.
Beispiel für DecompositionType = 'qr' und OutputMatricesType = 'full': / 6.0 -3.0 4.0 \ | 5.0 5.0 -2.0 | Matrix = | -3.0 12.0 5.0 | -> | 3.0 4.0 7.0 | \ 7.0 5.0 3.0 / / -0.5303 0.2613 -0.4277 -0.5566 -0.3972 \ | -0.4419 -0.2920 -0.6383 0.1727 -0.5312 | MatrixOrthogonal = | 0.2652 -0.8443 -0.2059 -0.3961 -0.1326 | | -0.2652 -0.2432 -0.6008 0.7000 -0.1400 | \ -0.6187 -0.2729 0.0799 -0.1160 0.7231 / / -11.3137 -1.5910 -3.6239 \ | 0 -14.7129 -5.1135 | MatrixTriangular = | 0 0 -7.9824 | | 0 0 0 | \ 0 0 0 / Beispiel für DecompositionType = 'qr' und OutputMatricesType = 'reduced': / 6.0 -3.0 4.0 \ | 5.0 5.0 -2.0 | Matrix = | -3.0 12.0 5.0 | -> | 3.0 4.0 7.0 | \ 7.0 5.0 3.0 / / -0.5303 0.2613 -0.4277 \ | -0.4419 -0.2920 -0.6383 | MatrixOrthogonal = | 0.2652 -0.8443 -0.2059 | | -0.2652 -0.2432 -0.6008 | \ -0.6187 -0.2729 0.0799 / / -11.3137 -1.5910 -3.6239 \ MatrixTriangular = | 0 -14.7129 -5.1135 | \ 0 0 -7.9824 /
Beispiel für DecompositionType = 'ql' und OutputMatricesType = 'full': / 6.0 -3.0 4.0 \ | 5.0 5.0 -2.0 | Matrix = | -3.0 12.0 5.0 | -> | 3.0 4.0 7.0 | \ 7.0 5.0 3.0 / / 0.6806 0.0657 0.3659 -0.4932 -0.3941 \ | 0.1161 0.5464 0.6091 0.5274 0.1971 | MatrixOrthogonal = | 0.4093 -0.0832 -0.4046 0.6474 -0.4927 | | -0.5362 0.4713 0.0072 -0.1208 -0.6897 | \ -0.2611 -0.6842 0.5757 0.2119 -0.2956 / / 0 0 0 \ | 0 0 0 | MatrixTriangular = | 10.5059 0 0 | | -1.1429 12.4620 0 | \ -4.0399 -7.9812 -10.1489 / Beispiel für DecompositionType = 'ql' und OutputMatricesType = 'reduced': / 6.0 -3.0 4.0 \ | 5.0 5.0 -2.0 | Matrix = | -3.0 12.0 5.0 | -> | 3.0 4.0 7.0 | \ 7.0 5.0 3.0 / / 0.3659 -0.4932 -0.3941 \ | 0.6091 0.5274 0.1971 | MatrixOrthogonal = | -0.4046 0.6474 -0.4927 | | 0.0072 -0.1208 -0.6897 | \ 0.5757 0.2119 -0.2956 / / 10.5059 0 0 \ MatrixTriangular = | -1.1429 12.4620 0 | \ -4.0399 -7.9812 -10.1489 /
Für DecompositionType = 'rq' wird eine RQ Zerlegung (Right/Quadratic) oder für DecompositionType = 'lq' wird eine LQ Zerlegung (Left/Quadratic) berechnet. Die Zerlegung wird beschrieben als
Matrix = MatrixTriangular * MatrixOrthogonal.
Beispiel für DecompositionType = 'rq' und OutputMatricesType = 'full': / 6.0 5.0 -3.0 3.0 7.0 \ Matrix = | -3.0 5.0 12.0 4.0 5.0 | -> \ 4.0 -2.0 5.0 7.0 3.0 / / 0.6806 0.1161 0.4093 -0.5362 -0.2611 \ | 0.0657 0.5464 -0.0832 0.4713 -0.6842 | MatrixOrthogonal = | 0.3659 0.6091 -0.4046 0.0072 0.5757 | | -0.4932 0.5274 0.6474 -0.1208 0.2119 | \ -0.3941 0.1971 -0.4927 -0.6897 -0.2956 / / 0 0 10.5059 -1.1429 -4.0399 \ MatrixTriangular = | 0 0 0 12.4620 -7.9812 | \ 0 0 0 0 -10.1489 / Beispiel für DecompositionType = 'rq' und OutputMatricesType = 'reduced': / 6.0 5.0 -3.0 3.0 7.0 \ Matrix = | -3.0 5.0 12.0 4.0 5.0 | -> \ 4.0 -2.0 5.0 7.0 3.0 / / 0.3659 0.6091 -0.4046 0.0072 0.5757 \ MatrixOrthogonal = | -0.4932 0.5274 0.6474 -0.1208 0.2119 | \ -0.3941 0.1971 -0.4927 -0.6897 -0.2956 / / 10.5059 -1.1429 -4.0399 \ MatrixTriangular = | 0 12.4620 -7.9812 | \ 0 0 -10.1489 /
Beispiel für DecompositionType = 'lq' und OutputMatricesType = 'full': / 6.0 5.0 -3.0 3.0 7.0 \ Matrix = | -3.0 5.0 12.0 4.0 5.0 | -> \ 4.0 -2.0 5.0 7.0 3.0 / / -0.5303 -0.4419 0.2652 -0.2652 -0.6187 \ | 0.2613 -0.2920 -0.8443 -0.2432 -0.2729 | MatrixOrthogonal = | -0.4277 0.6383 -0.2059 -0.6008 0.0799 | | -0.5566 0.1727 -0.3961 0.7000 -0.1160 | \ -0.3972 -0.5312 -0.1326 -0.1400 0.7231 / / -11.3137 0 0 0 0 \ MatrixTriangular = | -1.5910 -14.7129 0 0 0 | \ -3.6239 -5.1135 -7.9824 0 0 / Beispiel für DecompositionType = 'lq' und OutputMatricesType = 'reduced': / 6.0 5.0 -3.0 3.0 7.0 \ Matrix = | -3.0 5.0 12.0 4.0 5.0 | -> \ 4.0 -2.0 5.0 7.0 3.0 / / -0.5303 -0.4419 0.2652 -0.2652 -0.6187 \ MatrixOrthogonal = | 0.2613 -0.2920 -0.8443 -0.2432 -0.2729 | \ -0.4277 0.6383 -0.2059 -0.6008 0.0799 / / -11.3137 0 0 \ MatrixTriangular = | -1.5910 -14.7129 0 | \ -3.6239 -5.1135 -7.9824 /
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.
Matrix Handle der Eingabematrix.
Zerlegungsmethode.
Defaultwert: 'qr'
Werteliste: 'lq', 'ql', 'qr', 'rq'
Typ der Ausgabematrizen.
Defaultwert: 'full'
Werteliste: 'full', 'reduced'
Berechnung der orthogonalen Matrix.
Defaultwert: 'true'
Werteliste: 'false', '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_matrix den Wert 2 (H_MSG_TRUE). Gegebenenfalls wird eine Fehlerbehandlung durchgeführt.
get_full_matrix, get_value_matrix
decompose_matrix, solve_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
| Operatoren |