6.5 Rによる行列積の計算

ベクトルや行列の演算は,四則演算とは異なる手続きとなる.Rではベクトルや行列の演算を実行するオペレーターが用意されている. 実際には,ベクトルは1行または1列の行列と見做せるので,行列の演算としてまとめられる. 具体的には行列積を%*%というオペレーターで実行できる.

例を示す.

A <- matrix(seq(1,9), nrow=3, ncol=3) # 1 ~ 9までのの整数を要素にもつ3x3の正方行列
print(A)
##      [,1] [,2] [,3]
## [1,]    1    4    7
## [2,]    2    5    8
## [3,]    3    6    9
B <- matrix(seq(from=1, by=3, length.out=9), nrow=3, ncol=3) # 1から3つ飛ばしの整数を要素にもつ3x3の正方行列
print(B)
##      [,1] [,2] [,3]
## [1,]    1   10   19
## [2,]    4   13   22
## [3,]    7   16   25
A %*% B
##      [,1] [,2] [,3]
## [1,]   66  174  282
## [2,]   78  213  348
## [3,]   90  252  414

Exercise 6.4 (行列積の計算) 次の行列積の計算をRで実行せよ.

\[\begin{pmatrix} 1 & 4 & 4 \\ 3 & 2 & 5 \\ 5 & 0 & 6 \\ 7 & -2 & 7 \end{pmatrix} \begin{pmatrix} 5 & 10 & 15 & 1 \\ 2 & 9 & 11 & 2 \\ -1 & 8 & 7 & 3 \end{pmatrix}\]