orthogonal_decompose_matrixT_orthogonal_decompose_matrixOrthogonalDecomposeMatrixOrthogonalDecomposeMatrixorthogonal_decompose_matrix (Operator)

Name

orthogonal_decompose_matrixT_orthogonal_decompose_matrixOrthogonalDecomposeMatrixOrthogonalDecomposeMatrixorthogonal_decompose_matrix — 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)

def orthogonal_decompose_matrix(matrix_id: HHandle, decomposition_type: str, output_matrices_type: str, compute_orthogonal: str) -> Tuple[HHandle, HHandle]

Beschreibung

Der Operator orthogonal_decompose_matrixorthogonal_decompose_matrixOrthogonalDecomposeMatrixOrthogonalDecomposeMatrixorthogonal_decompose_matrix zerlegt die Matrix Matrix, die durch das Matrix Handle MatrixIDMatrixIDMatrixIDmatrixIDmatrix_id gegeben ist. Es werden die Matrizen MatrixOrthogonal und MatrixTriangular generiert und die Ergebnisse in diesen gespeichert. Der Operator gibt die Matrix Handles MatrixOrthogonalIDMatrixOrthogonalIDMatrixOrthogonalIDmatrixOrthogonalIDmatrix_orthogonal_id und MatrixTriangularIDMatrixTriangularIDMatrixTriangularIDmatrixTriangularIDmatrix_triangular_id dieser zwei Matrizen zurück. Zugriff auf die Elemente der Matrizen ist z.B. mit dem Operator get_full_matrixget_full_matrixGetFullMatrixGetFullMatrixget_full_matrix möglich.

Alle Ergebnisse der Zerlegung werden in den Matrizen MatrixOrthogonal und MatrixTriangular gespeichert, wenn der Parameter OutputMatricesTypeOutputMatricesTypeOutputMatricesTypeoutputMatricesTypeoutput_matrices_type = 'full'"full""full""full""full" ist. Ist OutputMatricesTypeOutputMatricesTypeOutputMatricesTypeoutputMatricesTypeoutput_matrices_type = 'reduced'"reduced""reduced""reduced""reduced", wird nur ein Teil der Ergebniselemente in den Matrizen MatrixOrthogonal und MatrixTriangular gespeichert. Die Dimension dieser Matrizen ist kleiner als für OutputMatricesTypeOutputMatricesTypeOutputMatricesTypeoutputMatricesTypeoutput_matrices_type = 'full'"full""full""full""full".

Beide Ausgabematrizen werden mit dem Parameter ComputeOrthogonalComputeOrthogonalComputeOrthogonalcomputeOrthogonalcompute_orthogonal = 'true'"true""true""true""true" berechnet. Für ComputeOrthogonalComputeOrthogonalComputeOrthogonalcomputeOrthogonalcompute_orthogonal = 'false'"false""false""false""false" wird nur die Matrix MatrixTriangular berechnet. Die Laufzeit ist daher kürzer.

Der Zerlegungstyp der Matrix wird über den Parameter DecompositionTypeDecompositionTypeDecompositionTypedecompositionTypedecomposition_type gewählt. Für DecompositionTypeDecompositionTypeDecompositionTypedecompositionTypedecomposition_type = 'qr'"qr""qr""qr""qr" wird eine QR Zerlegung (Quadratic/Right) oder für DecompositionTypeDecompositionTypeDecompositionTypedecompositionTypedecomposition_type = 'ql'"ql""ql""ql""ql" wird eine QL Zerlegung (Quadratic/Left) berechnet. Die Zerlegung wird beschrieben als

Beispiel:

DecompositionTypeDecompositionTypeDecompositionTypedecompositionTypedecomposition_type = 'qr'"qr""qr""qr""qr", OutputMatricesTypeOutputMatricesTypeOutputMatricesTypeoutputMatricesTypeoutput_matrices_type = 'full'"full""full""full""full"

Beispiel:

DecompositionTypeDecompositionTypeDecompositionTypedecompositionTypedecomposition_type = 'qr'"qr""qr""qr""qr", OutputMatricesTypeOutputMatricesTypeOutputMatricesTypeoutputMatricesTypeoutput_matrices_type = 'reduced'"reduced""reduced""reduced""reduced"

Beispiel:

DecompositionTypeDecompositionTypeDecompositionTypedecompositionTypedecomposition_type = 'ql'"ql""ql""ql""ql", OutputMatricesTypeOutputMatricesTypeOutputMatricesTypeoutputMatricesTypeoutput_matrices_type = 'full'"full""full""full""full"

Beispiel:

DecompositionTypeDecompositionTypeDecompositionTypedecompositionTypedecomposition_type = 'ql'"ql""ql""ql""ql", OutputMatricesTypeOutputMatricesTypeOutputMatricesTypeoutputMatricesTypeoutput_matrices_type = 'reduced'"reduced""reduced""reduced""reduced"

Für DecompositionTypeDecompositionTypeDecompositionTypedecompositionTypedecomposition_type = 'rq'"rq""rq""rq""rq" wird eine RQ Zerlegung (Right/Quadratic) oder für DecompositionTypeDecompositionTypeDecompositionTypedecompositionTypedecomposition_type = 'lq'"lq""lq""lq""lq" wird eine LQ Zerlegung (Left/Quadratic) berechnet. Die Zerlegung wird beschrieben als

Beispiel:

DecompositionTypeDecompositionTypeDecompositionTypedecompositionTypedecomposition_type = 'rq'"rq""rq""rq""rq", OutputMatricesTypeOutputMatricesTypeOutputMatricesTypeoutputMatricesTypeoutput_matrices_type = 'full'"full""full""full""full"

Beispiel:

DecompositionTypeDecompositionTypeDecompositionTypedecompositionTypedecomposition_type = 'rq'"rq""rq""rq""rq", OutputMatricesTypeOutputMatricesTypeOutputMatricesTypeoutputMatricesTypeoutput_matrices_type = 'reduced'"reduced""reduced""reduced""reduced"

Beispiel:

DecompositionTypeDecompositionTypeDecompositionTypedecompositionTypedecomposition_type = 'lq'"lq""lq""lq""lq", OutputMatricesTypeOutputMatricesTypeOutputMatricesTypeoutputMatricesTypeoutput_matrices_type = 'full'"full""full""full""full"

Beispiel:

DecompositionTypeDecompositionTypeDecompositionTypedecompositionTypedecomposition_type = 'lq'"lq""lq""lq""lq", OutputMatricesTypeOutputMatricesTypeOutputMatricesTypeoutputMatricesTypeoutput_matrices_type = 'reduced'"reduced""reduced""reduced""reduced"

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

MatrixIDMatrixIDMatrixIDmatrixIDmatrix_id (input_control)  matrix HMatrix, HTupleHHandleHTupleHtuple (handle) (IntPtr) (HHandle) (handle)

Matrix Handle der Eingabematrix.

DecompositionTypeDecompositionTypeDecompositionTypedecompositionTypedecomposition_type (input_control)  string HTuplestrHTupleHtuple (string) (string) (HString) (char*)

Zerlegungsmethode.

Default: '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"

OutputMatricesTypeOutputMatricesTypeOutputMatricesTypeoutputMatricesTypeoutput_matrices_type (input_control)  string HTuplestrHTupleHtuple (string) (string) (HString) (char*)

Typ der Ausgabematrizen.

Default: 'full' "full" "full" "full" "full"

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

ComputeOrthogonalComputeOrthogonalComputeOrthogonalcomputeOrthogonalcompute_orthogonal (input_control)  string HTuplestrHTupleHtuple (string) (string) (HString) (char*)

Berechnung der orthogonalen Matrix.

Default: 'true' "true" "true" "true" "true"

Werteliste: 'false'"false""false""false""false", 'true'"true""true""true""true"

MatrixOrthogonalIDMatrixOrthogonalIDMatrixOrthogonalIDmatrixOrthogonalIDmatrix_orthogonal_id (output_control)  matrix HMatrix, HTupleHHandleHTupleHtuple (handle) (IntPtr) (HHandle) (handle)

Matrix Handle mit dem orthogonalen Teil der zerlegten Eingabematrix.

MatrixTriangularIDMatrixTriangularIDMatrixTriangularIDmatrixTriangularIDmatrix_triangular_id (output_control)  matrix HMatrix, HTupleHHandleHTupleHtuple (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_matrixOrthogonalDecomposeMatrixOrthogonalDecomposeMatrixorthogonal_decompose_matrix den Wert 2 ( H_MSG_TRUE) . Gegebenenfalls wird eine Fehlerbehandlung durchgeführt.

Vorgänger

create_matrixcreate_matrixCreateMatrixCreateMatrixcreate_matrix

Nachfolger

get_full_matrixget_full_matrixGetFullMatrixGetFullMatrixget_full_matrix, get_value_matrixget_value_matrixGetValueMatrixGetValueMatrixget_value_matrix

Siehe auch

decompose_matrixdecompose_matrixDecomposeMatrixDecomposeMatrixdecompose_matrix, solve_matrixsolve_matrixSolveMatrixSolveMatrixsolve_matrix

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