我怎样才能有效地解决一个_Ax=bb给定一种A是对称的并且使用 EIGEN 包含非常小的(甚至是负的)特征值

计算科学 矩阵 本征 逆问题
2021-12-26 02:32:21

目前我正在使用 EIGEN C++ 库来尝试解决x从方程Ax=b. 我遇到的一个问题是矩阵A是一个大小 > 5000 的相关矩阵,有时可能是秩不足的,并且具有小的甚至是负的特征值。因此,矩阵往往具有巨大的条件数 100~1000+。

矩阵的特殊性质A包括:对称的(因为它是一个相关矩阵)并且相关性随着两个条目越来越远而降低(例如R1,2>R1,6)。

我用来求解方程的当前方法是使用截断的 SVD 方法来获得的伪逆A. 我还尝试通过使用自伴随特征求解器而不是 SVD来利用矩阵是对称的这一事实,这大大加快了该过程。然而,它仍然相当缓慢,从我读到的内容来看,人们总是说永远不要试图解决逆问题。

因此,我想知道是否有任何方法可以进一步加快这一进程。我读过可以使用 QR 方法来获得伪逆。我的理解是,对于A=QR, 我可以替换RRk当对角线在k是大于阈值的最后一个元素,并且任何后续行都将替换为 0。

所以,我的问题是:这种 QR 方法正确吗?或者有什么方法可以更好地求解这种方程?

0个回答
没有发现任何回复~