用 Woodbury 矩阵恒等式更新矩阵对角线并保持数值精度

计算科学 矩阵 精确 准确性
2021-11-29 09:01:17

我有一个密集矩阵 A 及其对应的逆矩阵A1. 伍德伯里矩阵恒等式状态:

(A+UCV)1=A1A1U(C1+VA1U)1VA1

我希望对对角线进行小更新A并计算相应的A1. 更新实际上可以描述为一个常数k乘以一个单位矩阵:kI就我而言U=VT在哪里V是一个只有 1 和 0 的高矩阵,用于选择所需的对角线位置A修改。

到目前为止一切都很好,除了k需要相当大(例如,106)。我注意到对于大k, 所做的更改在没有重大错误的情况下不是“可逆的”。我所说的可逆是执行两个更新步骤,一个是kI在原版上A还有一个kI在更新的矩阵上恢复原始A1. 如果k足够小,它工作正常,但否则我会遇到严重的准确性问题,并且生成的矩阵与最初的矩阵不匹配。对于我的目标应用程序,我需要能够申请k对角元素或k随意,所以我的问题是:是否有一种聪明的方法可以做到这一点,即使对于较大的值k?

注意:我对所有存储的值和计算使用双精度。此外,k是实数标量,但矩阵A很复杂,尽管在这种情况下这并不重要。

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