orthogonal_decompose_matrix T_orthogonal_decompose_matrix OrthogonalDecomposeMatrix OrthogonalDecomposeMatrix orthogonal_decompose_matrix (算子)
名称
orthogonal_decompose_matrix T_orthogonal_decompose_matrix OrthogonalDecomposeMatrix OrthogonalDecomposeMatrix orthogonal_decompose_matrix — 对矩阵进行正交分解。
签名
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
(
Windows only)
描述
算子 orthogonal_decompose_matrix orthogonal_decompose_matrix OrthogonalDecomposeMatrix OrthogonalDecomposeMatrix OrthogonalDecomposeMatrix orthogonal_decompose_matrix decomposes the
Matrix defined by the matrix handle MatrixID MatrixID MatrixID MatrixID matrixID matrix_id . The
results are stored in the two generated matrices
MatrixOrthogonal and MatrixTriangular. The
operator returns the matrix handles MatrixOrthogonalID MatrixOrthogonalID MatrixOrthogonalID MatrixOrthogonalID matrixOrthogonalID matrix_orthogonal_id and
MatrixTriangularID MatrixTriangularID MatrixTriangularID MatrixTriangularID matrixTriangularID matrix_triangular_id of these two matrices. Access
to the elements of the matrices is possible e.g., with the operator
get_full_matrix get_full_matrix GetFullMatrix GetFullMatrix GetFullMatrix get_full_matrix 。
For OutputMatricesType OutputMatricesType OutputMatricesType OutputMatricesType outputMatricesType output_matrices_type = 'full' "full" "full" "full" "full" "full" all results of
the decomposition are stored in the matrices
MatrixOrthogonal and MatrixTriangular. For
OutputMatricesType OutputMatricesType OutputMatricesType OutputMatricesType outputMatricesType output_matrices_type = 'reduced' "reduced" "reduced" "reduced" "reduced" "reduced" only a part of
result elements of the matrices MatrixOrthogonal and
MatrixTriangular are stored. Therefore the sizes of these
matrices are smaller than for OutputMatricesType OutputMatricesType OutputMatricesType OutputMatricesType outputMatricesType output_matrices_type =
'full' "full" "full" "full" "full" "full" .
For the parameter ComputeOrthogonal ComputeOrthogonal ComputeOrthogonal ComputeOrthogonal computeOrthogonal compute_orthogonal = 'true' "true" "true" "true" "true" "true" both
output matrices are computed. For the ComputeOrthogonal ComputeOrthogonal ComputeOrthogonal ComputeOrthogonal computeOrthogonal compute_orthogonal =
'false' "false" "false" "false" "false" "false" only the matrix MatrixTriangular is
computed. Thus, the runtime of the operation takes fewer time.
The type of the Matrix can be selected via the parameter
DecompositionType DecompositionType DecompositionType DecompositionType decompositionType decomposition_type . For DecompositionType DecompositionType DecompositionType DecompositionType decompositionType decomposition_type =
'qr' "qr" "qr" "qr" "qr" "qr" a QR decomposition (Quadratic/Right) or for
DecompositionType DecompositionType DecompositionType DecompositionType decompositionType decomposition_type = 'ql' "ql" "ql" "ql" "ql" "ql" a QL decomposition
(Quadratic/Left) is computed. The decomposition is
written as
示例:
DecompositionType DecompositionType DecompositionType DecompositionType decompositionType decomposition_type = 'qr' "qr" "qr" "qr" "qr" "qr" ,
OutputMatricesType OutputMatricesType OutputMatricesType OutputMatricesType outputMatricesType output_matrices_type = 'full' "full" "full" "full" "full" "full"
示例:
DecompositionType DecompositionType DecompositionType DecompositionType decompositionType decomposition_type = 'qr' "qr" "qr" "qr" "qr" "qr" ,
OutputMatricesType OutputMatricesType OutputMatricesType OutputMatricesType outputMatricesType output_matrices_type = 'reduced' "reduced" "reduced" "reduced" "reduced" "reduced"
示例:
DecompositionType DecompositionType DecompositionType DecompositionType decompositionType decomposition_type = 'ql' "ql" "ql" "ql" "ql" "ql" ,
OutputMatricesType OutputMatricesType OutputMatricesType OutputMatricesType outputMatricesType output_matrices_type = 'full' "full" "full" "full" "full" "full"
示例:
DecompositionType DecompositionType DecompositionType DecompositionType decompositionType decomposition_type = 'ql' "ql" "ql" "ql" "ql" "ql" ,
OutputMatricesType OutputMatricesType OutputMatricesType OutputMatricesType outputMatricesType output_matrices_type = 'reduced' "reduced" "reduced" "reduced" "reduced" "reduced"
For DecompositionType DecompositionType DecompositionType DecompositionType decompositionType decomposition_type = 'rq' "rq" "rq" "rq" "rq" "rq" a RQ decomposition
(Right/Quadratic) or for DecompositionType DecompositionType DecompositionType DecompositionType decompositionType decomposition_type = 'lq' "lq" "lq" "lq" "lq" "lq"
a LQ decomposition (Left/Quadratic) is computed. The decomposition
is written as
示例:
DecompositionType DecompositionType DecompositionType DecompositionType decompositionType decomposition_type = 'rq' "rq" "rq" "rq" "rq" "rq" ,
OutputMatricesType OutputMatricesType OutputMatricesType OutputMatricesType outputMatricesType output_matrices_type = 'full' "full" "full" "full" "full" "full"
示例:
DecompositionType DecompositionType DecompositionType DecompositionType decompositionType decomposition_type = 'rq' "rq" "rq" "rq" "rq" "rq" ,
OutputMatricesType OutputMatricesType OutputMatricesType OutputMatricesType outputMatricesType output_matrices_type = 'reduced' "reduced" "reduced" "reduced" "reduced" "reduced"
示例:
DecompositionType DecompositionType DecompositionType DecompositionType decompositionType decomposition_type = 'lq' "lq" "lq" "lq" "lq" "lq" ,
OutputMatricesType OutputMatricesType OutputMatricesType OutputMatricesType outputMatricesType output_matrices_type = 'full' "full" "full" "full" "full" "full"
示例:
DecompositionType DecompositionType DecompositionType DecompositionType decompositionType decomposition_type = 'lq' "lq" "lq" "lq" "lq" "lq" ,
OutputMatricesType OutputMatricesType OutputMatricesType OutputMatricesType outputMatricesType output_matrices_type = 'reduced' "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.
执行信息
多线程类型:可重入(与非独占算子并行运行)。
多线程作用域:全局(可从任何线程调用)。
未采用并行化处理。
参数
MatrixID MatrixID MatrixID MatrixID matrixID matrix_id (输入控制) matrix → HMatrix , HTuple HHandle HTuple Htuple (handle) (IntPtr ) (HHandle ) (handle )
输入矩阵的矩阵句柄。
DecompositionType DecompositionType DecompositionType DecompositionType decompositionType decomposition_type (输入控制) string → HTuple str HTuple Htuple (string) (string ) (HString ) (char* )
Method of decomposition.
默认值:
'qr'
"qr"
"qr"
"qr"
"qr"
"qr"
值列表:
'lq' "lq" "lq" "lq" "lq" "lq" , 'ql' "ql" "ql" "ql" "ql" "ql" , 'qr' "qr" "qr" "qr" "qr" "qr" , 'rq' "rq" "rq" "rq" "rq" "rq"
OutputMatricesType OutputMatricesType OutputMatricesType OutputMatricesType outputMatricesType output_matrices_type (输入控制) string → HTuple str HTuple Htuple (string) (string ) (HString ) (char* )
Type of output matrices.
默认值:
'full'
"full"
"full"
"full"
"full"
"full"
值列表:
'full' "full" "full" "full" "full" "full" , 'reduced' "reduced" "reduced" "reduced" "reduced" "reduced"
ComputeOrthogonal ComputeOrthogonal ComputeOrthogonal ComputeOrthogonal computeOrthogonal compute_orthogonal (输入控制) string → HTuple str HTuple Htuple (string) (string ) (HString ) (char* )
Computation of the orthogonal matrix.
默认值:
'true'
"true"
"true"
"true"
"true"
"true"
值列表:
'false' "false" "false" "false" "false" "false" , 'true' "true" "true" "true" "true" "true"
MatrixOrthogonalID MatrixOrthogonalID MatrixOrthogonalID MatrixOrthogonalID matrixOrthogonalID matrix_orthogonal_id (输出控制) matrix → HMatrix , HTuple HHandle HTuple Htuple (handle) (IntPtr ) (HHandle ) (handle )
Matrix handle with the orthogonal part of the
decomposed input matrix.
MatrixTriangularID MatrixTriangularID MatrixTriangularID MatrixTriangularID matrixTriangularID matrix_triangular_id (输出控制) matrix → HMatrix , HTuple HHandle HTuple Htuple (handle) (IntPtr ) (HHandle ) (handle )
Matrix handle with the triangular part of the
decomposed input matrix.
结果
如果参数有效,算子
orthogonal_decompose_matrix orthogonal_decompose_matrix OrthogonalDecomposeMatrix OrthogonalDecomposeMatrix OrthogonalDecomposeMatrix orthogonal_decompose_matrix 返回值 2 ( H_MSG_TRUE )。如有必要,则抛出异常。
可能的前趋
create_matrix create_matrix CreateMatrix CreateMatrix CreateMatrix create_matrix
可能的后继
get_full_matrix get_full_matrix GetFullMatrix GetFullMatrix GetFullMatrix get_full_matrix ,
get_value_matrix get_value_matrix GetValueMatrix GetValueMatrix GetValueMatrix get_value_matrix
另见
decompose_matrix decompose_matrix DecomposeMatrix DecomposeMatrix DecomposeMatrix decompose_matrix ,
solve_matrix solve_matrix SolveMatrix SolveMatrix SolveMatrix 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.
模块
基础