有效计算辅因子矩阵

计算科学 矩阵
2021-11-30 02:36:47

中矩阵的辅因子矩阵O(n5)

该算法只是逐步迭代整个矩阵(),然后对于矩阵中的每个,它计算“子矩阵”的行列式(通过使用中的bareiss 算法列。O(n2)(i,j)ijO(n3)

有没有更快的方法来做到这一点?

2个回答

我更喜欢使用 SVD(奇异值分解)而不是直接计算逆和行列式。SVD 在时间复杂度上仍然是,但我认为要稳定得多。对于奇异分解,您有:O(n3)A

A=UΣVT

其中是正交矩阵,而只是对角矩阵。所以:UVΣ

|det(A)|=idiag(Σ)i

请注意上面公式中的 abs,因为我们唯一知道的是此外,可以从 SVD 计算逆,因为是正交矩阵:det(U),det(V)=±1UV

A1=VΣ1UT

所以辅助因素是:

C=det(A)AT

行列式和矩阵求逆在数值上相当不稳定,但如果你只追求速度,你可以,然后我们得到由 A1O(n3)

C=det(A)(A1)T