ベイジアン研究所

プログラミング言語(アルゴリズム的な話が中心)やガジェットの紹介をしています。時々心理学の話も。

【線形代数学入門】行列の演算(積)

1. 記事の目的
以下の記事で行列の演算(和とスカラー倍)について述べた。本記事では行列の積に関して解説する。

camelsan.hatenablog.com

2. 行列の積
A(l,m)型行列、B(m,n)型行列であるとき、積AB(l,n)型行列として次のように定義する。(l,n)型行列AB(i,j)成分は、

\displaystyle\sum_{s=1}^m a_{is}b_{sj}=a_{i1}b_{1j}+a_{i2}b_{2j}+\dots +a_{im}b_{mj}\tag{1}

とする。

(1)式の作り方は次のように考えられる。Aの第i\textbf{a}Bの第j\textbf{b}を取り出す。

\textbf{a}=\begin{pmatrix}a_{i1} & a_{i2} &\dots & a_{im} \end{pmatrix}, \textbf{b}=\begin{pmatrix}b_{1j} \\ b_{2j} \\ \vdots \\ b_{mj} \end{pmatrix}

\textbf{a}の一番上の成分と\textbf{b}の一番左の成分をかけた値、\textbf{a}の上から2番目の成分と\textbf{b}の左から2番目の成分をかけた値、・・・、\textbf{a}の1番下の成分と\textbf{b}の一番左の成分をかけた値、を全て加える。Aの行の長さと、Bの列の長さが同じことから、ちょうど1成分づつ掛け合わされる(逆に言えば、この状況が満たされないとき行列の積は定義されない)。

Aの行の取り出し方はl通り、Bの列の取り出し方はn通りあることから、行列の成分の数はl\times n個なので、(l,n)型行列となる。

ABが定義できたとしても、積BAは定義できるとは限らない。
例:

A=\begin{pmatrix}1 & 2\end{pmatrix},B=\begin{pmatrix} 3 & 2 \\ 1 & 5 \end{pmatrix}

のとき、

\begin{split}AB&=\begin{pmatrix}1&2\end{pmatrix}\begin{pmatrix}3&2\\1&5\end{pmatrix}=\begin{pmatrix}1\times 3+2\times 1 &1\times 2+2\times 5 \end{pmatrix} \\ &=\begin{pmatrix}3+2 &2+10\end{pmatrix}=\begin{pmatrix}5&12\end{pmatrix}\end{split}

となる。

BA=\begin{pmatrix}3&2\\1&5\end{pmatrix}\begin{pmatrix}1&2\end{pmatrix}

は、Aの列の長さとBの行の長さが異なるので、定義ができない。

BAが定義できたとしても、ABと等しいとは限らない。
例:

A=\begin{pmatrix}1 & 2 \\3&4\end{pmatrix},B=\begin{pmatrix} 2 & 2 \\ 4 & 3 \end{pmatrix}

のとき、

\begin{split}AB&=\begin{pmatrix}1&2\\3&4\end{pmatrix}\begin{pmatrix}2&2\\4&3\end{pmatrix}=\begin{pmatrix}1\times 2+2\times 4 &1\times 2+2\times 3 \\3\times 2+4\times 4 & 3\times 2+4\times 3 \end{pmatrix} \\ &=\begin{pmatrix}2+8 &2+6\\ 6+16 & 6+12\end{pmatrix}=\begin{pmatrix}10&8 \\ 22&18\end{pmatrix}\end{split}

となる。一方で、BAは定義可能だが、

\begin{split}AB&=\begin{pmatrix}2&2\\4&3\end{pmatrix}\begin{pmatrix}1&2\\3&4\end{pmatrix}=\begin{pmatrix}2\times 1+2\times 3 &2\times 2+2\times 4 \\4\times 1+3\times 3 & 4\times 2+3\times 4 \end{pmatrix} \\ &=\begin{pmatrix}2+6 &4+8\\ 4+9 & 8+12\end{pmatrix}=\begin{pmatrix}8&12 \\ 13&20\end{pmatrix}\neq AB\end{split}

である。

3. 行列の積の演算法則
行列の積に関して次の演算法則が成り立つ。
A(k,l)型、Bが[(l,m)]型、C(m,n)型の行列ならば

(AB)C=A(BC)\tag{2}

証明:行列が等しいことの定義より、(2)式の両辺の形が等しく、対応する成分が同じであることを示す。ABの型は(k,m)型で、(AB)Cの型は(k,n)型より左辺の型は(k,n)型である。また、BCの型は(l,n)型でA(BC)の型は(k,l)型より右辺の型は(k,l)型である、よって両辺の型は等しい。

A = \begin{pmatrix}
a_{11} & \cdots & a_{1q} & \cdots & a_{1l}\\
\vdots & \ddots & & & \vdots \\
a_{p1} & & a_{pq} & & a_{pl} \\
\vdots & & & \ddots & \vdots \\
a_{k1} & \cdots & a_{kq} & \cdots & a_{kl}
\end{pmatrix},B=\begin{pmatrix}
b_{11} & \cdots & b_{1r} & \cdots & b_{1m}\\
\vdots & \ddots & & & \vdots \\
b_{q1} & & b_{qr} & & b_{qm} \\
\vdots & & & \ddots & \vdots \\
b_{l1} & \cdots & b_{lr} & \cdots & b_{lm}
\end{pmatrix},C=\begin{pmatrix}
c_{11} & \cdots & c_{1s} & \cdots & c_{1n}\\
\vdots & \ddots & & & \vdots \\
c_{r1} & & c_{rs} & & c_{rn} \\
\vdots & & & \ddots & \vdots \\
c_{m1} & \cdots & c_{ms} & \cdots & c_{mn}
\end{pmatrix}

とする。AB(p,r)成分は、

\displaystyle\sum_{q=1}^l a_{pq}b_{qr}

より、(AB)C(p,s)成分は、

\begin{split}\displaystyle\sum_{r=1}^m\{(\displaystyle\sum_{q=1}^l a_{pq}b_{qr})c_{rs}\}&=\displaystyle\sum_{r=1}^m \{(a_{p1}b_{1r}+\dots + a_{pl}b_{lr})c_{rs}\} \\ &=\displaystyle\sum_{r=1}^m (a_{p1}b_{1r}c_{rs}+\dots + a_{pl}b_{lr}c_{rs}) \\ &=\displaystyle\sum_{r=1}^m a_{p1}b_{1r}c_{rs}+\dots +\displaystyle\sum_{r=1}^m a_{pl}b_{lr}c_{rs} \\&=\displaystyle\sum_{q=1}^l(\displaystyle\sum_{r=1}^m a_{pq}b_{qr}c_{rs})\end{split}

一方、BC(q,s)成分は、

\displaystyle\sum_{r=1}^m b_{qr}c_{rs}

であるから、A(BC)(p,s)成分は

\displaystyle\sum_{q=1}^l\{\displaystyle\sum_{r=1}^m a_{pq}(b_{qr}c_{rs})\}=\displaystyle\sum_{q=1}^l(\displaystyle\sum_{r=1}^m a_{pq}b_{qr}c_{rs})

従って、(AB)CA(BC)(p,s)成分は等しい。よって、(AB)C=A(BC)

行列の積と和に関して、次の演算法則が成り立つ。
A(k,l)型、BC(l,m)型の行列ならば

A(B+C)=AB+AC\tag{3}

AB(k,l)型、C(l,m)型の行列ならば

(A+B)C=AC+BC\tag{4}

A(k,l)型の行列ならば

AO_{l,n}=O_{k,n}, O_{n,k}A=O_{n,l}\tag{5}

(3)の証明:

A = \begin{pmatrix}
a_{11} & \cdots & a_{1q} & \cdots & a_{1l}\\
\vdots & \ddots & & & \vdots \\
a_{p1} & & a_{pq} & & a_{pl} \\
\vdots & & & \ddots & \vdots \\
a_{k1} & \cdots & a_{kq} & \cdots & a_{kl}
\end{pmatrix},B=\begin{pmatrix}
b_{11} & \cdots & b_{1r} & \cdots & b_{1m}\\
\vdots & \ddots & & & \vdots \\
b_{q1} & & b_{qr} & & b_{qm} \\
\vdots & & & \ddots & \vdots \\
b_{l1} & \cdots & b_{lr} & \cdots & b_{lm}
\end{pmatrix},C=\begin{pmatrix}
c_{11} & \cdots & c_{1r} & \cdots & c_{1m}\\
\vdots & \ddots & & & \vdots \\
c_{q1} & & c_{qr} & & c_{qm} \\
\vdots & & & \ddots & \vdots \\
c_{l1} & \cdots & c_{lr} & \cdots & c_{lm}
\end{pmatrix}

とする。B+C(l,m)型の行列で、A(B+C)(k,m)型の行列である。一方ABAC(k,m)型の行列で、AB+AC(k,m)型の行列である。よって両辺の行列の型は等しい。

B+C=\begin{pmatrix}
b_{11}+c_{11} & \cdots & b_{1r}+c_{1r} & \cdots & b_{1m}+c_{1m}\\
\vdots & \ddots & & & \vdots \\
b_{q1}+c_{q1} & & b_{qr}+c_{qr} & & b_{qm}+c_{qm} \\
\vdots & & & \ddots & \vdots \\
b_{l1}+c_{l1} & \cdots & b_{lr}+c_{lr} & \cdots & b_{lm}+c_{lm}
\end{pmatrix}

よりA(B+C)(p,r)成分は

\displaystyle\sum_{q=1}^l a_{pq}(b_{qr}+c_{qr})=\displaystyle\sum_{q=1}^l a_{pq}b_{qr}+\displaystyle\sum_{q=1}^l a_{pq}c_{qr}

一方、AB(p,r)成分は、

\displaystyle\sum_{q=1}^l a_{pq}b_{qr}

AC(p,r)成分は、

\displaystyle\sum_{q=1}^l a_{pq}c_{qr}

よりAB+AC(p,r)成分は、

\displaystyle\sum_{q=1}^l a_{pq}b_{qr}+\displaystyle\sum_{q=1}^l a_{pq}c_{qr}

である。従って、A(B+C)AB+ACの各成分は等しいので、A(B+C)=AB+AC

(4)の証明:

A = \begin{pmatrix}
a_{11} & \cdots & a_{1q} & \cdots & a_{1l}\\
\vdots & \ddots & & & \vdots \\
a_{p1} & & a_{pq} & & a_{pl} \\
\vdots & & & \ddots & \vdots \\
a_{k1} & \cdots & a_{kq} & \cdots & a_{kl}
\end{pmatrix},B=\begin{pmatrix}
b_{11} & \cdots & b_{1q} & \cdots & b_{1l}\\
\vdots & \ddots & & & \vdots \\
b_{p1} & & b_{pq} & & b_{pl} \\
\vdots & & & \ddots & \vdots \\
b_{k1} & \cdots & b_{kq} & \cdots & b_{kl}
\end{pmatrix},C=\begin{pmatrix}
c_{11} & \cdots & c_{1r} & \cdots & c_{1m}\\
\vdots & \ddots & & & \vdots \\
c_{q1} & & c_{qr} & & c_{qm} \\
\vdots & & & \ddots & \vdots \\
c_{l1} & \cdots & c_{lr} & \cdots & c_{lm}
\end{pmatrix}

とする。A+B(k,l)型の行列で、(A+B)C(k,m)型の行列である。一方ACBC(k,m)型の行列で、AC+BC(k,m)型の行列である。よって両辺の行列の型は等しい。

A+B=\begin{pmatrix}
a_{11}+b_{11} & \cdots & a_{1q}+b_{1q} & \cdots & a_{1l}+b_{1l}\\
\vdots & \ddots & & & \vdots \\
a_{p1}+b_{p1} & & a_{pq}+b_{pq} & & a_{pl}+b_{pl} \\
\vdots & & & \ddots & \vdots \\
a_{k1}+b_{k1} & \cdots & a_{kq}+b_{kq} & \cdots & a_{kl}+b_{kl}
\end{pmatrix}

より(A+B)C(p,r)成分は、

\displaystyle\sum_{q=1}^l (a_{pq}+b_{qr})c_{qr})=\displaystyle\sum_{q=1}^l a_{pq}c_{qr}+\displaystyle\sum_{q=1}^l b_{pq}c_{qr}

一方、AC(p,r)成分は、

\displaystyle\sum_{q=1}^l a_{pq}c_{qr}

BC(p,r)成分は、

\displaystyle\sum_{q=1}^l b_{pq}c_{qr}

よりAC+BC(p,r)成分は、

\displaystyle\sum_{q=1}^l a_{pq}c_{qr}+\displaystyle\sum_{q=1}^l b_{pq}c_{qr}

である。従って、(A+B)CAC+BCの各成分は等しいので、(A+B)C=AC+BC

(5)の証明:
AO_{l,n}(p,r) 成分は、

\displaystyle\sum_{q=1}^n a_{pq} \cdot 0=0

より AO_{l,n}(k,n) 型の零行列である。

O_{n,k}A(p,r) 成分は、

\displaystyle\sum_{q=1}^k 0 \cdot a_{qr}=0

より O_{n,k}A(n,l) 型の零行列である。

次の記事

camelsan.hatenablog.com

camelsan.hatenablog.com

4. 参考文献
[1]線型代数入門