orthogonal_decompose_matrixT_orthogonal_decompose_matrixOrthogonalDecomposeMatrixOrthogonalDecomposeMatrix (Operator)

Name

orthogonal_decompose_matrixT_orthogonal_decompose_matrixOrthogonalDecomposeMatrixOrthogonalDecomposeMatrix — Führt eine orthogonale Zerlegung einer Matrix durch.

Signatur

orthogonal_decompose_matrix( : : MatrixID, DecompositionType, OutputMatricesType, ComputeOrthogonal : MatrixOrthogonalID, 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

HMatrix HMatrix::OrthogonalDecomposeMatrix(const wchar_t* DecompositionType, const wchar_t* OutputMatricesType, const wchar_t* ComputeOrthogonal, HMatrix* MatrixTriangularID) const   (Nur Windows)

static void HOperatorSet.OrthogonalDecomposeMatrix(HTuple matrixID, HTuple decompositionType, HTuple outputMatricesType, HTuple computeOrthogonal, out HTuple matrixOrthogonalID, out HTuple matrixTriangularID)

HMatrix HMatrix.OrthogonalDecomposeMatrix(string decompositionType, string outputMatricesType, string computeOrthogonal, out HMatrix matrixTriangularID)

Beschreibung

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.

Ausführungsinformationen

Parameter

MatrixIDMatrixIDMatrixIDMatrixIDmatrixID (input_control)  matrix HMatrix, HTupleHTupleHtuple (handle) (IntPtr) (HHandle) (handle)

Matrix Handle der Eingabematrix.

DecompositionTypeDecompositionTypeDecompositionTypeDecompositionTypedecompositionType (input_control)  string HTupleHTupleHtuple (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"

OutputMatricesTypeOutputMatricesTypeOutputMatricesTypeOutputMatricesTypeoutputMatricesType (input_control)  string HTupleHTupleHtuple (string) (string) (HString) (char*)

Typ der Ausgabematrizen.

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

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

ComputeOrthogonalComputeOrthogonalComputeOrthogonalComputeOrthogonalcomputeOrthogonal (input_control)  string HTupleHTupleHtuple (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"

MatrixOrthogonalIDMatrixOrthogonalIDMatrixOrthogonalIDMatrixOrthogonalIDmatrixOrthogonalID (output_control)  matrix HMatrix, HTupleHTupleHtuple (handle) (IntPtr) (HHandle) (handle)

Matrix Handle mit dem orthogonalen Teil der zerlegten Eingabematrix.

MatrixTriangularIDMatrixTriangularIDMatrixTriangularIDMatrixTriangularIDmatrixTriangularID (output_control)  matrix HMatrix, HTupleHTupleHtuple (handle) (IntPtr) (HHandle) (handle)

Matrix Handle mit dem triangulären Teil der zerlegten Eingabematrix.

Ergebnis

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

Vorgänger

create_matrixcreate_matrixCreateMatrixCreateMatrixCreateMatrix

Nachfolger

get_full_matrixget_full_matrixGetFullMatrixGetFullMatrixGetFullMatrix, get_value_matrixget_value_matrixGetValueMatrixGetValueMatrixGetValueMatrix

Siehe auch

decompose_matrixdecompose_matrixDecomposeMatrixDecomposeMatrixDecomposeMatrix, solve_matrixsolve_matrixSolveMatrixSolveMatrixSolveMatrix

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