Rの行列演算 RjpWiki:行列Tips大全
Pyhonの行列演算 NumPy入門:行列の演算
\[ \boldsymbol{I}_2 = \begin{bmatrix}1&0\\0&1\end{bmatrix}, \boldsymbol{I}_3 = \begin{bmatrix}1&0&0\\0&1&1\\0&0&1\end{bmatrix} \]
(I2 <- diag(nrow = 2))
## [,1] [,2]
## [1,] 1 0
## [2,] 0 1
(I3 <- diag(nrow = 3))
## [,1] [,2] [,3]
## [1,] 1 0 0
## [2,] 0 1 0
## [3,] 0 0 1
import numpy as np
I2 = np.identity(2, int)
I3 = np.identity(3, int)
print(I2)
## [[1 0]
## [0 1]]
print(I3)
## [[1 0 0]
## [0 1 0]
## [0 0 1]]
\[ \boldsymbol{D}_2 = \begin{bmatrix}2&0\\0&3\end{bmatrix}, \boldsymbol{D}_3 = \begin{bmatrix}2&0&0\\0&3&0\\0&0&4\end{bmatrix}\\ \boldsymbol{D}_2^6 = \begin{bmatrix}64&0\\0&729\end{bmatrix} \]
(D2 <- diag(2:3, nrow = 2))
## [,1] [,2]
## [1,] 2 0
## [2,] 0 3
(D3 <- diag(2:4, nrow = 3))
## [,1] [,2] [,3]
## [1,] 2 0 0
## [2,] 0 3 0
## [3,] 0 0 4
D2^6
## [,1] [,2]
## [1,] 64 0
## [2,] 0 729
D2 = np.array([2, 3])
D3 = np.array([2, 3, 4])
print(D2)
## [2 3]
print(D3)
## [2 3 4]
D2**6
## array([ 64, 729], dtype=int32)
\[ \boldsymbol{A} = \begin{bmatrix}1&3\\2&4\end{bmatrix}, \boldsymbol{A}^T = \begin{bmatrix}1&2\\3&4\end{bmatrix} \]
(A <- matrix(1:4, nrow = 2))
## [,1] [,2]
## [1,] 1 3
## [2,] 2 4
t(A)
## [,1] [,2]
## [1,] 1 2
## [2,] 3 4
A = np.matrix([[1, 3], [2, 4]])
print(A)
## [[1 3]
## [2 4]]
A.T
## matrix([[1, 2],
## [3, 4]])
\[ \boldsymbol{A} = \begin{bmatrix}1&3\\2&4\end{bmatrix}, \boldsymbol{B} = \begin{bmatrix}1&2\\3&4\end{bmatrix}\\ \boldsymbol{A}\cdot \boldsymbol{B} = \begin{bmatrix}10&14\\14&20\end{bmatrix} \]
(A <- matrix(1:4, nrow = 2))
## [,1] [,2]
## [1,] 1 3
## [2,] 2 4
(B <- matrix(1:4, nrow = 2, byrow = T ))
## [,1] [,2]
## [1,] 1 2
## [2,] 3 4
A %*% B
## [,1] [,2]
## [1,] 10 14
## [2,] 14 20
A * B #cf. 要素積
## [,1] [,2]
## [1,] 1 6
## [2,] 6 16
A = np.matrix([[1, 3], [2, 4]])
B = np.matrix([[1, 2], [3, 4]])
print(A)
## [[1 3]
## [2 4]]
print(B)
## [[1 2]
## [3 4]]
A.dot(B)
## matrix([[10, 14],
## [14, 20]])
np.multiply(A, B) # cf. 要素積
## matrix([[ 1, 6],
## [ 6, 16]])
\[ \boldsymbol{A} = \begin{bmatrix}1&3\\2&4\end{bmatrix}\\ \det{\boldsymbol{A}}=1\cdot 4 - 3\cdot 2=-2\\ \boldsymbol{A}^{-1} = \begin{bmatrix}-2&\frac{3}{2}\\1&-\frac{1}{2}\end{bmatrix} \]
(A <- matrix(1:4, nrow = 2))
## [,1] [,2]
## [1,] 1 3
## [2,] 2 4
(Ainv <- solve(A))
## [,1] [,2]
## [1,] -2 1.5
## [2,] 1 -0.5
A = np.matrix([[1, 3], [2, 4]])
print(A)
## [[1 3]
## [2 4]]
Ainv = np.linalg.inv(A)
print(Ainv)
## [[-2. 1.5]
## [ 1. -0.5]]
(A <- matrix(c(1,2,7,2,3,4,3,5,1), nrow = 3))
## [,1] [,2] [,3]
## [1,] 1 2 3
## [2,] 2 3 5
## [3,] 7 4 1
(B <- matrix(c(1,-2,1,-3,6,-3), nrow = 3))
## [,1] [,2]
## [1,] 1 -3
## [2,] -2 6
## [3,] 1 -3
A%*%B
## [,1] [,2]
## [1,] 0 0
## [2,] 1 -3
## [3,] 0 0