1

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

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

我知道矩阵 = 的行列式和矩阵 =det(x)的转置t(x)。但我不知道如何获得矩阵 x 的辅因子并获得逆矩阵。

4

2 回答 2

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)
}

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

A <- matrix(c(5,1,1,3),2,2)
solve(A)
qr.solve(A)
chol2inv(chol(A))
于 2013-05-24T08:09:46.120 回答
1

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

于 2013-05-24T01:53:39.137 回答