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

Matrix 什么是保证矩阵求逆更安全的数值方法?,matrix,numerical-methods,inversion,Matrix,Numerical Methods,Inversion,我正在尝试为一个SEM(结构方程模型)问题开发一个算法(在梯度下降的框架内)。有一个参数矩阵B(n*n),其所有对角元素固定为零。在我的目标函数中有一项inv(I-B)(I-B的逆)。没有其他约束,例如B上的对称性 我的问题是,我们如何确保(I-B)在迭代中不是单数的 在这个问题中,由于目标函数的域不是整个R^n空间,梯度下降收敛的严格条件似乎不满足。标准教科书将假定目标在整个R^n空间中有一个域。梯度下降似乎不会保证收敛 在迭代算法的更新中,目前我的实现是检查(I-B)是否接近奇异值,如果不是

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

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

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


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

你可以尝试在
det(I-B)上设置对数屏障>0
det(I-B)您已经检查了简单的变量,例如| | B | | B是由数据确定的,没有可用的先验信息。我将进行简单的LU分解,并检查对角线是否为零。LU分解允许您直接从那里计算逆。还有,你确定你需要相反的结果吗?大多数时候,你根本不需要计算它。