在我正在进行的一个软件项目中,对于密集的低秩矩阵,某些计算要容易得多。一些问题实例涉及密集的低秩矩阵,但它们是完整给我的,而不是作为因子,所以如果我想利用低秩结构,我将不得不检查秩和矩阵的因子.
所讨论的矩阵通常是完全或几乎完全密集的,n 的范围从一百到几千。如果矩阵具有低秩(例如小于 5 到 10),那么计算 SVD 并使用它形成低秩分解是值得的。然而,如果矩阵不是低秩的,那么努力就会被浪费掉。
因此,在投入精力进行完整的 SVD 分解之前,我想找到一种快速且合理可靠的方法来确定排名是否低。如果在任何时候很明显等级高于截止值,则该过程可以立即停止。如果程序错误地将矩阵声明为低秩而不是,这不是一个大问题,因为我仍然会做一个完整的 SVD 来确认低秩并找到一个低秩分解。
我考虑过的选项包括显示 LU 或 QR 分解的等级,然后是完整的 SVD 作为检查。还有其他我应该考虑的方法吗?