1 参考マニュアル

2 単位行列

\[ \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} \]

2.1 R

(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

2.2 Python

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]]

3 対角行列

\[ \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} \]

3.1 R

(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

3.2 Python

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)

4 転置

\[ \boldsymbol{A} = \begin{bmatrix}1&3\\2&4\end{bmatrix}, \boldsymbol{A}^T = \begin{bmatrix}1&2\\3&4\end{bmatrix} \]

4.1 R

(A <- matrix(1:4, nrow = 2))
##      [,1] [,2]
## [1,]    1    3
## [2,]    2    4
t(A)
##      [,1] [,2]
## [1,]    1    2
## [2,]    3    4

4.2 Python

A = np.matrix([[1, 3], [2, 4]])
print(A)
## [[1 3]
##  [2 4]]
A.T
## matrix([[1, 2],
##         [3, 4]])

5 行列積

\[ \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} \]

5.1 R

(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

5.2 Python

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

6 逆行列

\[ \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} \]

6.1 R

(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

6.2 Python

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