ClassesClasses | | Operators

orthogonal_decompose_matrixorthogonal_decompose_matrixOrthogonalDecomposeMatrixOrthogonalDecomposeMatrix (Operator)

Name

orthogonal_decompose_matrixorthogonal_decompose_matrixOrthogonalDecomposeMatrixOrthogonalDecomposeMatrix — Perform an orthogonal decomposition of a matrix.

Signature

orthogonal_decompose_matrix( : : MatrixID, DecompositionType, OutputMatricesType, ComputeOrthogonal : MatrixOrthogonalID, MatrixTriangularID)

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

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)

Description

The operator orthogonal_decompose_matrixorthogonal_decompose_matrixOrthogonalDecomposeMatrixOrthogonalDecomposeMatrixOrthogonalDecomposeMatrix decomposes the MatrixMatrixMatrixMatrixmatrix defined by the matrix handle MatrixIDMatrixIDMatrixIDMatrixIDmatrixID. The results are stored in the two generated matrices MatrixOrthogonalMatrixOrthogonalMatrixOrthogonalMatrixOrthogonalmatrixOrthogonal and MatrixTriangularMatrixTriangularMatrixTriangularMatrixTriangularmatrixTriangular. The operator returns the matrix handles MatrixOrthogonalIDMatrixOrthogonalIDMatrixOrthogonalIDMatrixOrthogonalIDmatrixOrthogonalID and MatrixTriangularIDMatrixTriangularIDMatrixTriangularIDMatrixTriangularIDmatrixTriangularID of these two matrices. Access to the elements of the matrices is possible e.g. with the operator get_full_matrixget_full_matrixGetFullMatrixGetFullMatrixGetFullMatrix.

For OutputMatricesTypeOutputMatricesTypeOutputMatricesTypeOutputMatricesTypeoutputMatricesType = 'full'"full""full""full""full" all results of the decomposition are stored in the matrices MatrixOrthogonalMatrixOrthogonalMatrixOrthogonalMatrixOrthogonalmatrixOrthogonal and MatrixTriangularMatrixTriangularMatrixTriangularMatrixTriangularmatrixTriangular. For OutputMatricesTypeOutputMatricesTypeOutputMatricesTypeOutputMatricesTypeoutputMatricesType = 'reduced'"reduced""reduced""reduced""reduced" only a part of result elements of the matrices MatrixOrthogonalMatrixOrthogonalMatrixOrthogonalMatrixOrthogonalmatrixOrthogonal and MatrixTriangularMatrixTriangularMatrixTriangularMatrixTriangularmatrixTriangular are stored. Therefore the sizes of these matrices are smaller than for OutputMatricesTypeOutputMatricesTypeOutputMatricesTypeOutputMatricesTypeoutputMatricesType = 'full'"full""full""full""full".

For the parameter ComputeOrthogonalComputeOrthogonalComputeOrthogonalComputeOrthogonalcomputeOrthogonal = 'true'"true""true""true""true" both output matrices are computed. For the ComputeOrthogonalComputeOrthogonalComputeOrthogonalComputeOrthogonalcomputeOrthogonal = 'false'"false""false""false""false" only the matrix MatrixTriangularMatrixTriangularMatrixTriangularMatrixTriangularmatrixTriangular is computed. Thus, the runtime of the operation takes fewer time.

The type of the MatrixMatrixMatrixMatrixmatrix can be selected via the parameter DecompositionTypeDecompositionTypeDecompositionTypeDecompositionTypedecompositionType. For DecompositionTypeDecompositionTypeDecompositionTypeDecompositionTypedecompositionType = 'qr'"qr""qr""qr""qr" a QR decomposition (Quadratic/Right) or for DecompositionTypeDecompositionTypeDecompositionTypeDecompositionTypedecompositionType = 'ql'"ql""ql""ql""ql" a QL decomposition (Quadratic/Left) is computed. The decomposition is written as

  MatrixMatrixMatrixMatrixmatrix = MatrixOrthogonalMatrixOrthogonalMatrixOrthogonalMatrixOrthogonalmatrixOrthogonal * MatrixTriangularMatrixTriangularMatrixTriangularMatrixTriangularmatrixTriangular.

Example for DecompositionTypeDecompositionTypeDecompositionTypeDecompositionTypedecompositionType = 'qr'"qr""qr""qr""qr" and OutputMatricesTypeOutputMatricesTypeOutputMatricesTypeOutputMatricesTypeoutputMatricesType = 'full'"full""full""full""full":

Example for DecompositionTypeDecompositionTypeDecompositionTypeDecompositionTypedecompositionType = 'qr'"qr""qr""qr""qr" and OutputMatricesTypeOutputMatricesTypeOutputMatricesTypeOutputMatricesTypeoutputMatricesType = 'reduced'"reduced""reduced""reduced""reduced":

Example for DecompositionTypeDecompositionTypeDecompositionTypeDecompositionTypedecompositionType = 'ql'"ql""ql""ql""ql" and OutputMatricesTypeOutputMatricesTypeOutputMatricesTypeOutputMatricesTypeoutputMatricesType = 'full'"full""full""full""full":

Example for DecompositionTypeDecompositionTypeDecompositionTypeDecompositionTypedecompositionType = 'ql'"ql""ql""ql""ql" and OutputMatricesTypeOutputMatricesTypeOutputMatricesTypeOutputMatricesTypeoutputMatricesType = 'reduced'"reduced""reduced""reduced""reduced":

For DecompositionTypeDecompositionTypeDecompositionTypeDecompositionTypedecompositionType = 'rq'"rq""rq""rq""rq" a RQ decomposition (Right/Quadratic) or for DecompositionTypeDecompositionTypeDecompositionTypeDecompositionTypedecompositionType = 'lq'"lq""lq""lq""lq" a LQ decomposition (Left/Quadratic) is computed. The decomposition is written as

  MatrixMatrixMatrixMatrixmatrix = MatrixTriangularMatrixTriangularMatrixTriangularMatrixTriangularmatrixTriangular * MatrixOrthogonalMatrixOrthogonalMatrixOrthogonalMatrixOrthogonalmatrixOrthogonal.

Example for DecompositionTypeDecompositionTypeDecompositionTypeDecompositionTypedecompositionType = 'rq'"rq""rq""rq""rq" and OutputMatricesTypeOutputMatricesTypeOutputMatricesTypeOutputMatricesTypeoutputMatricesType = 'full'"full""full""full""full":

Example for DecompositionTypeDecompositionTypeDecompositionTypeDecompositionTypedecompositionType = 'rq'"rq""rq""rq""rq" and OutputMatricesTypeOutputMatricesTypeOutputMatricesTypeOutputMatricesTypeoutputMatricesType = 'reduced'"reduced""reduced""reduced""reduced":

Example for DecompositionTypeDecompositionTypeDecompositionTypeDecompositionTypedecompositionType = 'lq'"lq""lq""lq""lq" and OutputMatricesTypeOutputMatricesTypeOutputMatricesTypeOutputMatricesTypeoutputMatricesType = 'full'"full""full""full""full":

Example for DecompositionTypeDecompositionTypeDecompositionTypeDecompositionTypedecompositionType = 'lq'"lq""lq""lq""lq" and OutputMatricesTypeOutputMatricesTypeOutputMatricesTypeOutputMatricesTypeoutputMatricesType = 'reduced'"reduced""reduced""reduced""reduced":

It should be noted that in the examples there are differences in the meaning of the numbers of the output matrices: The results of the elements are per definition a certain value if the number of this value is shown as an integer number, e.g., 0 or 1. If the number is shown as a floating point number, e.g., 0.0 or 1.0, the value is computed.

Execution Information

Parameters

MatrixIDMatrixIDMatrixIDMatrixIDmatrixID (input_control)  matrix HMatrix, HTupleHTupleHtuple (integer) (IntPtr) (Hlong) (Hlong)

Matrix handle of the input matrix.

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

Method of decomposition.

Default value: 'qr' "qr" "qr" "qr" "qr"

List of values: '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*)

Type of output matrices.

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

List of values: 'full'"full""full""full""full", 'reduced'"reduced""reduced""reduced""reduced"

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

Computation of the orthogonal matrix.

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

List of values: 'false'"false""false""false""false", 'true'"true""true""true""true"

MatrixOrthogonalIDMatrixOrthogonalIDMatrixOrthogonalIDMatrixOrthogonalIDmatrixOrthogonalID (output_control)  matrix HMatrix, HTupleHTupleHtuple (integer) (IntPtr) (Hlong) (Hlong)

Matrix handle with the orthogonal part of the decomposed input matrix.

MatrixTriangularIDMatrixTriangularIDMatrixTriangularIDMatrixTriangularIDmatrixTriangularID (output_control)  matrix HMatrix, HTupleHTupleHtuple (integer) (IntPtr) (Hlong) (Hlong)

Matrix handle with the triangular part of the decomposed input matrix.

Result

If the parameters are valid, the operator orthogonal_decompose_matrixorthogonal_decompose_matrixOrthogonalDecomposeMatrixOrthogonalDecomposeMatrixOrthogonalDecomposeMatrix returns the value 2 (H_MSG_TRUE). If necessary, an exception is raised.

Possible Predecessors

create_matrixcreate_matrixCreateMatrixCreateMatrixCreateMatrix

Possible Successors

get_full_matrixget_full_matrixGetFullMatrixGetFullMatrixGetFullMatrix, get_value_matrixget_value_matrixGetValueMatrixGetValueMatrixGetValueMatrix

See also

decompose_matrixdecompose_matrixDecomposeMatrixDecomposeMatrixDecomposeMatrix, solve_matrixsolve_matrixSolveMatrixSolveMatrixSolveMatrix

References

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.

Module

Foundation


ClassesClasses | | Operators