行列
今回は行列について簡単にまとめていこうと思います。
行列とは
その名の通り「行」と「列」で構成されているものを言います。
具体例をいうと下記のような物になります。
[5, 13]
[4, 6]
[20, 7]
この場合、「行」は[5,13]。
列は[5, 4, 20]のことを言います。
行列の加減
2つの行列の加減は要素同士で加減ができます。
具体例) pythonではnumpyのmatix関数で行列を定義できます。
>>> A = np.matrix([[5, 13], [4, 6], [20, 7]])
>>> B = np.matrix([[8, 15], [9, 10], [20, 8]])
>>> print(A)
[[ 5 13]
[ 4 6]
[20 7]]
>>> print(B)
[[ 8 15]
[ 9 10]
[20 8]]
>>> C = A + B
>>> print(C)
[[13 28]
[13 16]
[40 15]]
行列の掛け算
行列の掛け算は加減よりちょっと面倒です。
掛けるものが、単純に1つの実数であれば、各要素に掛ければできます。
>>> print(A)
[[ 5 13]
[ 4 6]
[20 7]]
>>> print(A * 2)
[[10 26]
[ 8 12]
[40 14]]
>>>
しかし、下記のように行列かける行列だと、単純に要素同士というわけにはいきません。
>>> print(A)
[[ 5 13]
[ 4 6]
[20 7]]
>>> print(D)
[[1 2]
[3 4]]
>>> print(A * D)
[[44 62]
[22 32]
[41 68]]
>>>
上記で何をやっているかを見ていきます。
まず、行列Aの1行目にあたる、[5, 13]を見ます。
そこに、行列Dの1列目にあたる、[1, 3]を要素ごとに掛け合わせて、合計を足すという動きをしています。
行列A2の2,3行目と行列Dの2列でも同じことをやります。
具体的には、
[5 * 1 + 13 * 3] = 44
[4 * 1 + 6 * 3] = 22
[20 * 1 + 7 * 3] = 41
[5 * 2 + 13 * 4] = 62
[4 * 2 + 6 * 4] = 32
[20 * 2 + 7 * 4] = 68
[44 62]
[22 32]
[41 68]
また、行列の掛け算には掛ける側と掛けられる側の順番を入れ替えると、値が変わってしまうという性質があります。