R言語での行列の演算

R言語でxとyという2つの2x2の行列を使った演算

x <- matrix(1:4, nrow=2, ncol=2)
y <- matrix(5:8, nrow=2, ncol=2)
> x
     [,1] [,2]
[1,]    1    3
[2,]    2    4
> y
     [,1] [,2]
[1,]    5    7
[2,]    6    8

四則演算

> x+y
     [,1] [,2]
[1,]    6   10
[2,]    8   12

$$\begin{bmatrix} 1 & 3 \\ 2 & 4 \end{bmatrix} + \begin{bmatrix} 5 & 7 \\ 6 & 8 \end{bmatrix} = \begin{bmatrix} 1 + 5 & 3 + 7 \\ 2 + 6 & 4 + 8 \end{bmatrix} = \begin{bmatrix} 6 & 10 \\ 8 & 12 \end{bmatrix}$$

> x-y
     [,1] [,2]
[1,]   -4   -4
[2,]   -4   -4

$$\begin{bmatrix} 1 & 3 \\ 2 & 4 \end{bmatrix} - \begin{bmatrix} 5 & 7 \\ 6 & 8 \end{bmatrix} = \begin{bmatrix} 1 - 5 & 3 - 7 \\ 2 - 6 & 4 - 8 \end{bmatrix} = \begin{bmatrix} -4 & -4 \\ -4 & -4 \end{bmatrix}$$

> x*y
     [,1] [,2]
[1,]    5   21
[2,]   12   32

$$\begin{bmatrix} 1 & 3 \\ 2 & 4 \end{bmatrix} \odot \begin{bmatrix} 5 & 7 \\ 6 & 8 \end{bmatrix} = \begin{bmatrix} 1 \cdot 5 & 3 \cdot 7 \\ 2 \cdot 6 & 4 \cdot 8 \end{bmatrix} = \begin{bmatrix} 5 & 21 \\ 12 & 32 \end{bmatrix}$$

> x/y
          [,1]      [,2]
[1,] 0.2000000 0.4285714
[2,] 0.3333333 0.5000000

$$\begin{bmatrix} 1 & 3 \\ 2 & 4 \end{bmatrix} \oslash \begin{bmatrix} 5 & 7 \\ 6 & 8 \end{bmatrix} = \begin{bmatrix} 1 / 5 & 3 / 7 \\ 2 / 6 & 4 / 8 \end{bmatrix} = \begin{bmatrix} 0.2000000 & 0.4285714 \\ 0.3333333 & 0.5000000 \end{bmatrix}$$

スカラー倍

> 5*x
     [,1] [,2]
[1,]    5   15
[2,]   10   20

$$5 \begin{bmatrix} 1 & 3 \\ 2 & 4 \end{bmatrix} = \begin{bmatrix} 5 \cdot 1 & 5 \cdot 3 \\ 5 \cdot 2 & 5 \cdot 4 \end{bmatrix} = \begin{bmatrix} 5 & 15 \\ 10 & 20 \end{bmatrix}$$

行列の積

> x %*% y
     [,1] [,2]
[1,]   23   31
[2,]   34   46

$$\begin{bmatrix} 1 & 3 \\ 2 & 4 \end{bmatrix} \begin{bmatrix} 5 & 7 \\ 6 & 8 \end{bmatrix} = \begin{bmatrix} 1 \cdot 5 + 3 \cdot 6 & 1 \cdot 7 + 3 \cdot 8 \\ 2 \cdot 5 + 4 \cdot 6 & 2 \cdot 7 + 4 \cdot 8 \end{bmatrix} = \begin{bmatrix} 23 & 31 \\ 34 & 46 \end{bmatrix}$$