関数を使わずに逆行列の値を求めたいsolve(x)
。
inversed matrix = 1/det(x) * "cofactor"^(transpose)
det(x)
matrix = の行列式と matrix =の転置であることは知っていt(x)
ます。しかし、行列 x の余因子を取得し、逆行列を取得する方法がわかりません。
行列の (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))
事前に計算されたコレスキー分解がある場合は、chol2inv
ソートされます。