我想在不使用函数solve(x)
的情况下找到反转矩阵的值。
inversed matrix = 1/det(x) * "cofactor"^(transpose)
我知道矩阵= det(x)
的决定因素和矩阵的转置= t(x)
。但我无法找到如何获得矩阵x的辅助因子并获得反转矩阵。
答案 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)
}
警告:你不应该使用这种计算矩阵求逆的方法,除了作业目的,因为它是计算密集型的,并且(如果我没记错的话)不是非常稳定的数值。出于实际目的,请使用solve
或qr.solve
或chol2inv
。比较这些:
A <- matrix(c(5,1,1,3),2,2)
solve(A)
qr.solve(A)
chol2inv(chol(A))
答案 1 :(得分:1)
如果您有预先计算的cholesky分解,chol2inv
将对您进行排序。