java - ojalgo 中的 QR/SVD 分解是否需要与列一样多的行?

标签 java math matrix decomposition ojalgo

在 ojalgo 中对 m x n 矩阵 A 进行 QR 或 SVD 分解时,我遇到了障碍。我的目的是找到列零空间的基础。如果 m >= n,则一切正常。例如,对秩为 2 的 5 x 4 矩阵 A 的转置 A' 进行 QR 分解,得到一个 4 x 4 Q 矩阵,其最后两列跨越 A 的零空间。

另一方面,如果我从秩为 5 的 5 x 7 矩阵 A 开始(并对 A' 进行 QR 分解),我会得到正确的秩,但 Q 是 5 x 5 而不是 7 x 7,并且我没有得到零空间基础。类似地,具有相同矩阵 A 的 SVD 得到五个正奇异值(无零),并且 Q2 矩阵是 5 x 7 而不是 7 x 7(无空 vector )。

这是预期的行为吗?我找到了 n > m 矩阵的解决方法(向 A 添加 n-m 行零),但它很笨重。

最佳答案

矩阵可以是任何大小/形状,但计算经济大小的分解是默认行为。这是大多数用户需要/想要的。但是有一个接口(interface)MatrixDecomposition.EconomySize可以让您控制它(可以选择获得完整的尺寸分解)。目前有QR、SVD和双对角分解来实现。

关于java - ojalgo 中的 QR/SVD 分解是否需要与列一样多的行?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50847140/

相关文章:

java - Fragment 中的 RecyclerView 错误

java - 旧 Java 代码中的异常

javascript - 如何求单位圆上两个 Angular 之间的顺时针 Angular

c# - 如何计算聚类熵?工作示例或软件代码

java - 如何对 Clob 转换为 String 进行单元测试?

java - java中http url之间的空格

math - 直方图匹配-图像处理-c/c++

Matlab - 查找每个零矩阵元素的最近非零元素的索引

python - Tensorflow:如何从向量字典构建矩阵?

prolog中的矩阵乘法