HOWTO · R

R の逆行列

このチュートリアルでは、R で逆行列を見つける方法を示します。

R で逆数を計算するには 2つの方法があります。1つ目はベース R の solve 関数で、もう 1つは matlib ライブラリの inv() メソッドです。 このチュートリアルでは、R で逆行列を見つける両方の方法を示します。

Solve を使用して、R で逆行列を見つける

solve() メソッドは行列をパラメータとして取り、与えられた行列の逆行列を出力します。 例を参照してください:

x1 <- c(10, 8, 4)
x2 <- c(7, 9, 3)
x3 <- c(11, 2, 5)

# bind the matrix
A <- rbind(x1, x2, x3)

# the original matrix
print(A)

# calculate the inverse.
Inverse_Matrix <- solve(A)

# the inverse of the matrix.
print(Inverse_Matrix)

上記のコードは、solve() を使用して与えられた行列の逆行列を計算します。 出力を参照してください:

   [,1] [,2] [,3]
x1   10    8    4
x2    7    9    3
x3   11    2    5

              x1         x2          x3
[1,]  1.14705882 -0.9411765 -0.35294118
[2,] -0.05882353  0.1764706 -0.05882353
[3,] -2.50000000  2.0000000  1.00000000

Matlib から Inv() を使用して、R で逆行列を見つける

Matlib ライブラリには、逆行列を求めることができる関数 inv() があります。 例を試してみましょう。

install.packages('matlib')

library(matlib)

x1 <- c(10, 8, 4)
x2 <- c(7, 9, 3)
x3 <- c(11, 2, 5)

# bind the matrix
A <- rbind(x1, x2, x3)

# the original matrix
print(A)

# calculate the inverse.
print(inv(t(A)))

上記のコードの出力は、元の行列と逆行列になります。 出力を参照してください。

   [,1] [,2] [,3]
x1   10    8    4
x2    7    9    3
x3   11    2    5

[1,]  1.14705882 -0.9411765 -0.35294118
[2,] -0.05882353  0.1764706 -0.05882353
[3,] -2.50000000  2.0000000  1.00000000