svd_matrix T_svd_matrix SvdMatrix SvdMatrix svd_matrix (算子)
名称
svd_matrix T_svd_matrix SvdMatrix SvdMatrix svd_matrix — 计算矩阵的奇异值分解。
签名
void SvdMatrix (const HTuple& MatrixID , const HTuple& SVDType , const HTuple& ComputeSingularVectors , HTuple* MatrixUID , HTuple* MatrixSID , HTuple* MatrixVID )
HMatrix HMatrix ::SvdMatrix (const HString& SVDType , const HString& ComputeSingularVectors , HMatrix* MatrixSID , HMatrix* MatrixVID ) const
HMatrix HMatrix ::SvdMatrix (const char* SVDType , const char* ComputeSingularVectors , HMatrix* MatrixSID , HMatrix* MatrixVID ) const
HMatrix HMatrix ::SvdMatrix (const wchar_t* SVDType , const wchar_t* ComputeSingularVectors , HMatrix* MatrixSID , HMatrix* MatrixVID ) const
(
Windows only)
描述
算子 svd_matrix svd_matrix SvdMatrix SvdMatrix SvdMatrix svd_matrix computes a full or reduced singular
value decomposition (SVD) of the Matrix defined by the
matrix handle MatrixID MatrixID MatrixID MatrixID matrixID matrix_id . The operator returns the matrix
handle MatrixSID MatrixSID MatrixSID MatrixSID matrixSID matrix_sid of the matrix MatrixS with
singular values in descending order.
Optionally, the matrices MatrixU with the left and
MatrixV with the right singular vectors are computed and
the matrix handles MatrixUID MatrixUID MatrixUID MatrixUID matrixUID matrix_uid and MatrixVID MatrixVID MatrixVID MatrixVID matrixVID matrix_vid are
returned. 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 。The SVD is written
For SVDType SVDType SVDType SVDType SVDType svdtype = 'full' "full" "full" "full" "full" "full" , a full SVD is computed.
示例:
SVDType SVDType SVDType SVDType SVDType svdtype = 'full' "full" "full" "full" "full" "full" ,
ComputeSingularVectors ComputeSingularVectors ComputeSingularVectors ComputeSingularVectors computeSingularVectors compute_singular_vectors = 'both' "both" "both" "both" "both" "both"
For SVDType SVDType SVDType SVDType SVDType svdtype = 'reduced' "reduced" "reduced" "reduced" "reduced" "reduced" , a reduced SVD is
computed.
示例:
SVDType SVDType SVDType SVDType SVDType svdtype = 'reduced' "reduced" "reduced" "reduced" "reduced" "reduced" ,
ComputeSingularVectors ComputeSingularVectors ComputeSingularVectors ComputeSingularVectors computeSingularVectors compute_singular_vectors = 'both' "both" "both" "both" "both" "both"
For ComputeSingularVectors ComputeSingularVectors ComputeSingularVectors ComputeSingularVectors computeSingularVectors compute_singular_vectors = 'left' "left" "left" "left" "left" "left" , the matrix
MatrixU with the left singular vectors is computed. For
ComputeSingularVectors ComputeSingularVectors ComputeSingularVectors ComputeSingularVectors computeSingularVectors compute_singular_vectors = 'right' "right" "right" "right" "right" "right" , the matrix
MatrixV with the right singular vectors is computed. For
ComputeSingularVectors ComputeSingularVectors ComputeSingularVectors ComputeSingularVectors computeSingularVectors compute_singular_vectors = 'both' "both" "both" "both" "both" "both" , the matrices
MatrixU and MatrixV with the left and right
singular vectors are computed.
For ComputeSingularVectors ComputeSingularVectors ComputeSingularVectors ComputeSingularVectors computeSingularVectors compute_singular_vectors = 'none' "none" "none" "none" "none" "none" , no matrices
with the singular vectors are computed. The matrix
MatrixS is a matrix with n rows and one column, where
the number n = min(number of rows of the input Matrix,
number of columns of the input Matrix).
示例:
SVDType SVDType SVDType SVDType SVDType svdtype = 'reduced' "reduced" "reduced" "reduced" "reduced" "reduced" or 'full' "full" "full" "full" "full" "full" ,
ComputeSingularVectors ComputeSingularVectors ComputeSingularVectors ComputeSingularVectors computeSingularVectors compute_singular_vectors = 'none' "none" "none" "none" "none" "none"
It should be noted that in the examples there are differences in the
meaning of the values of the output matrices: If a value is shown as
an integer number, e.g., 0 or 1, the value of this element is per
definition this certain value. If the number is shown as a floating
point number, e.g., 0.0 or 1.0, the value is computed by the
operator.
执行信息
多线程类型:可重入(与非独占算子并行运行)。
多线程作用域:全局(可从任何线程调用)。
未采用并行化处理。
参数
MatrixID MatrixID MatrixID MatrixID matrixID matrix_id (输入控制) matrix → HMatrix , HTuple HHandle HTuple Htuple (handle) (IntPtr ) (HHandle ) (handle )
输入矩阵的矩阵句柄。
SVDType SVDType SVDType SVDType SVDType svdtype (输入控制) string → HTuple str HTuple Htuple (string) (string ) (HString ) (char* )
Type of computation.
默认值:
'full'
"full"
"full"
"full"
"full"
"full"
值列表:
'full' "full" "full" "full" "full" "full" , 'reduced' "reduced" "reduced" "reduced" "reduced" "reduced"
ComputeSingularVectors ComputeSingularVectors ComputeSingularVectors ComputeSingularVectors computeSingularVectors compute_singular_vectors (输入控制) string → HTuple str HTuple Htuple (string) (string ) (HString ) (char* )
Computation of singular values.
默认值:
'both'
"both"
"both"
"both"
"both"
"both"
值列表:
'both' "both" "both" "both" "both" "both" , 'left' "left" "left" "left" "left" "left" , 'none' "none" "none" "none" "none" "none" , 'right' "right" "right" "right" "right" "right"
MatrixUID MatrixUID MatrixUID MatrixUID matrixUID matrix_uid (输出控制) matrix → HMatrix , HTuple HHandle HTuple Htuple (handle) (IntPtr ) (HHandle ) (handle )
Matrix handle with the left singular vectors.
MatrixSID MatrixSID MatrixSID MatrixSID matrixSID matrix_sid (输出控制) matrix → HMatrix , HTuple HHandle HTuple Htuple (handle) (IntPtr ) (HHandle ) (handle )
Matrix handle with singular values.
MatrixVID MatrixVID MatrixVID MatrixVID matrixVID matrix_vid (输出控制) matrix → HMatrix , HTuple HHandle HTuple Htuple (handle) (IntPtr ) (HHandle ) (handle )
Matrix handle with the right singular vectors.
结果
如果参数有效,算子 svd_matrix svd_matrix SvdMatrix SvdMatrix SvdMatrix svd_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
参考文献
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.
模块
基础