使用linalg.solve计算条件协方差矩阵的数值稳定方法



我知道建议不要使用linalg.inv,而是在反转矩阵时使用linalg.solve。当我遇到像Ax = b这样的情况并且我想得到x时,这是有道理的,但是有没有办法计算这样的东西:A - B * D^{-1} * C不使用linalg.inv?或者处理表达式中逆运算的最数值稳定方法是什么? 谢谢!

请不要inv——它并不像大多数人想象的那么糟糕,但有更简单的方法:你提到了np.linalg.solve(A, b)如何等于A^{-1} . b,但没有要求b是什么。您可以使用solve来解决您的问题,A - np.dot(B, np.linalg.solve(D, C)).

(注意,如果你正在做逐块矩阵反演,C很可能B.transpose(),对吧?

最新更新