目前我正在使用 EIGEN C++ 库来尝试解决从方程=. 我遇到的一个问题是矩阵是一个大小 > 5000 的相关矩阵,有时可能是秩不足的,并且具有小的甚至是负的特征值。因此,矩阵往往具有巨大的条件数 100~1000+。
矩阵的特殊性质包括:对称的(因为它是一个相关矩阵)并且相关性随着两个条目越来越远而降低(例如>)。
我用来求解方程的当前方法是使用截断的 SVD 方法来获得的伪逆. 我还尝试通过使用自伴随特征求解器而不是 SVD来利用矩阵是对称的这一事实,这大大加快了该过程。然而,它仍然相当缓慢,从我读到的内容来看,人们总是说永远不要试图解决逆问题。
因此,我想知道是否有任何方法可以进一步加快这一进程。我读过可以使用 QR 方法来获得伪逆。我的理解是,对于=, 我可以替换和当对角线在是大于阈值的最后一个元素,并且任何后续行都将替换为 0。
所以,我的问题是:这种 QR 方法正确吗?或者有什么方法可以更好地求解这种方程?