保证更安全的矩阵求逆的数值方法是什么?

时间:2019-01-28 22:02:36

标签: matrix numerical-methods inversion

我正在尝试开发一种用于SEM(结构方程模型)问题的算法(在梯度下降框架内)。有一个参数矩阵B(n * n),其对角线元素均固定为零。我的目标函数中的inv(IB)项(I-B的倒置)。没有其他约束,例如B的对称性。

我的问题是,如何确保迭代中(I-B)不单数?

在此问题中,由于目标函数的域不是整个R ^ n空间,因此似乎无法满足梯度下降收敛的严格条件。标准教科书将假定目标具有一个域在整个R ^ n空间中。似乎梯度下降将无法保证收敛。

在迭代算法的更新中,目前我的实现是检查(IB)是否接近奇异值,如果不是,则梯度下降的步长会缩小。是否有更好的数值方法处理这个问题?

1 个答案:

答案 0 :(得分:1)

您可以尝试在det(I-B)>0det(I-B)<0上设置对数屏障,具体取决于哪一个可以为您带来更好的结果,或者您是否有更多有关问题的信息。 logdet的渐变非常好https://math.stackexchange.com/questions/38701/how-to-calculate-the-gradient-of-log-det-matrix-inverse

您还可以计算Fenchel对偶,因此有可能使用原始对偶方法。