1

我正在尝试使用 Eigen 中的 JacobiSVD 求解线性方程。JacobiSVD 有两个分解选项:ComputeThinU 和 ComputeFullU。它们的含义解释为

  • ComputeFullU:在 JacobiSVD 中表示要计算方阵 U。
  • ComputeThinU:在 JacobiSVD 中表示要计算细矩阵 U。

“薄矩阵”是什么意思?以及如何确定使用哪个选项?

4

1 回答 1

2

如果您查看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。

于 2020-02-09T18:09:02.220 回答