我正在尝试使用 Eigen 中的 JacobiSVD 求解线性方程。JacobiSVD 有两个分解选项:ComputeThinU 和 ComputeFullU。它们的含义解释为
- ComputeFullU:在 JacobiSVD 中表示要计算方阵 U。
- ComputeThinU:在 JacobiSVD 中表示要计算细矩阵 U。
“薄矩阵”是什么意思?以及如何确定使用哪个选项?
我正在尝试使用 Eigen 中的 JacobiSVD 求解线性方程。JacobiSVD 有两个分解选项:ComputeThinU 和 ComputeFullU。它们的含义解释为
“薄矩阵”是什么意思?以及如何确定使用哪个选项?
如果您查看https://eigen.tuxfamily.org/dox/classEigen_1_1JacobiSVD.html然后在详细描述中可以找到这个
您可以要求仅计算细 U 或 V,这意味着以下内容。对于矩形n×p矩阵,设m为n和p中较小的值,则只有m个奇异向量;U 和 V 的其余列不对应于实际的奇异向量。要求细的 U 或 V 意味着只要求形成它们的 m 前列。所以 U 是一个 n×m 矩阵,而 V 是一个 p×m 矩阵。请注意,细 U 和 V 是(最小二乘)求解所需要的。
什么时候用什么?如果您需要充分展示 U 和 V,请选择“Full”,如果您只需要第一m
列来做最小二乘,那么请选择“Thin”。问候,M。