想要在不使用求解函数的情况下得到矩阵求逆

时间:2013-05-24 01:46:28

标签: r matrix

我想在不使用函数solve(x)的情况下找到反转矩阵的值。

inversed matrix = 1/det(x)  *  "cofactor"^(transpose) 

我知道矩阵= det(x)的决定因素和矩阵的转置= t(x)。但我无法找到如何获得矩阵x的辅助因子并获得反转矩阵。

2 个答案:

答案 0 :(得分:4)

矩阵的第(i,j)个次要是删除了第i行和第j列的矩阵。

minor <- function(A, i, j)
{
  A[-i, -j]  
}

第(i,j)个辅助因子是(i,j)次要次数-1到幂i + j。

cofactor <- function(A, i, j)
{
  -1 ^ (i + j) * minor(A, i, j)
}

警告:你不应该使用这种计算矩阵求逆的方法,除了作业目的,因为它是计算密集型的,并且(如果我没记错的话)不是非常稳定的数值。出于实际目的,请使用solveqr.solvechol2inv。比较这些:

A <- matrix(c(5,1,1,3),2,2)
solve(A)
qr.solve(A)
chol2inv(chol(A))

答案 1 :(得分:1)

如果您有预先计算的cholesky分解,chol2inv将对您进行排序。