3 行列の積のいくつかの表現

以下、 $A=[a_{ij}]_{m,n}$ $B=[b_{ij}]_{n,p}$ とし、 2 節同様に $A$, $B$ の 列ベクトルを $\mbox{\boldmath$a$}_j$ ($m$ 次元), $\mbox{\boldmath$b$}_j$ ($n$ 次元), 行ベクトルの転置を $\,{}^T\!{A}_i=\mbox{\boldmath$\hat{a}$}_i$ ($n$ 次元), $\,{}^T\!{B}_i=\mbox{\boldmath$\hat{b}$}_i$ ($p$ 次元) と書くことにする。

$\displaystyle A = [\mbox{\boldmath$a$}_1\ \mbox{\boldmath$a$}_2\ \cdots\ \mbox{...
...}$}_2}}\\ \vdots\\ {\,{}^T\!{\mbox{\boldmath$\hat{b}$}_n}}
\end{array}\right]
$

ここで、

$\displaystyle \mbox{\boldmath$a$}_j = \left[\begin{array}{c}{a_{1j}}\\ {a_{2j}}...
...ft[\begin{array}{c}{b_{i1}}\\ {b_{i2}}\\ \vdots\\ {b_{ip}}
\end{array}\right]
$

である。

さて、積 $AB$ は、$B$ を列ベクトルで表すことで、 まず次の形に書くことができる。

  $\displaystyle
AB = A[\mbox{\boldmath$b$}_1\ \mbox{\boldmath$b$}_2\ \cdots\ \mb...
...A\mbox{\boldmath$b$}_1\ A\mbox{\boldmath$b$}_2\ \cdots\ A\mbox{\boldmath$b$}_p]$ (3)
最後の式は、各列ベクトルが $A\mbox{\boldmath$b$}_j$ の形の行列の積で、 これは $m\times n$ 行列と $n\times 1$ 行列 (列ベクトル) の積だから $m\times 1$ 行列の $m$ 次元列ベクトルとなり、 よって結果としてそれが $p$ 個並んだ $m\times p$ 行列となる。

見た目はベクトルのスカラー倍のような計算にも見えるが、 実際には各列が行列の積になっているわけである。証明は、 $A\mbox{\boldmath$b$}_j$ の上から $i$ 番目の成分が、

$\displaystyle \,{}^T\!{\mbox{\boldmath$\hat{a}$}_i}\mbox{\boldmath$b$}_j
= \sum_{k=1}^n a_{ik}b_{kj} = c_{ij}
$

となることから明らか。

次に、$A$ を行ベクトルで表すことで、次の形にも書くことができる。

  $\displaystyle
AB = \left[\begin{array}{c}{\,{}^T\!{\mbox{\boldmath$\hat{a}$}_1...
...$}_2}B}\\ \vdots\\ {\,{}^T\!{\mbox{\boldmath$\hat{a}$}_m}B}
\end{array}\right]$ (4)
これも、一見ベクトルのスカラー倍にも見えるが、 実際には各行が $1\times n$ 行列 $\,{}^T\!{\mbox{\boldmath$\hat{a}$}_j}$$n\times p$ 行列 $B$ の積である $p$ 次元の行ベクトルで、 よって $m\times p$ 行列になっている。

これも、証明は、 $\,{}^T\!{\mbox{\boldmath$\hat{a}$}_i}B$ の左から $j$ 番目の成分が、

$\displaystyle \,{}^T\!{\mbox{\boldmath$\hat{a}$}_i}\mbox{\boldmath$b$}_j
= \sum_{k=1}^n a_{ik}b_{kj} = c_{ij}
$

となることから成立する。

さらに、$A$ を行ベクトル、$B$ を列ベクトルで表すと、

  $\displaystyle
AB = \left[\begin{array}{c}{\,{}^T\!{\mbox{\boldmath$\hat{a}$}_1...
..._j]_{m,p}
= [\mbox{\boldmath$\hat{a}$}_i\mathop{・}\mbox{\boldmath$b$}_j]_{m,p}$ (5)
となる。

これも、一見 $m\times 1$ 行列と $1\times p$ 行列の積にも見え、 そしてそれと同じ計算をしているようだが、 各要素が $\,{}^T\!{\mbox{\boldmath$\hat{a}$}_i}\mbox{\boldmath$b$}_j$ という $1\times n$ 行列と $n\times 1$ 行列の積、 すなわち、$n$ 次元ベクトル同士の内積 $\mbox{\boldmath$\hat{a}$}_i\mathop{・}\mbox{\boldmath$b$}_j$ になっていて、単純なスカラー同士の積ではない。

これも証明は、その $(i,j)$ 成分が

$\displaystyle \,{}^T\!{\mbox{\boldmath$\hat{a}$}_i}\mbox{\boldmath$b$}_j
= \sum_{k=1}^n a_{ik}b_{kj} = c_{ij}
$

であることから明らか。

また、逆に $A$ を列ベクトル、$B$ を行ベクトルで表すと、

  $\displaystyle
AB = [\mbox{\boldmath$a$}_1\ \mbox{\boldmath$a$}_2\ \cdots\ \mbo...
...ight]
= \sum_{k=1}^n\mbox{\boldmath$a$}_k\,{}^T\!{\mbox{\boldmath$\hat{b}$}_k}$ (6)
となる。

これは、一見 $1\times n$ 行列と $n\times 1$ 行列の積と同じ計算にも 見えるが、実際には、各項が $m\times 1$ 行列 $\mbox{\boldmath$a$}_k$$1\times p$ 行列 $\,{}^T\!{\mbox{\boldmath$\hat{b}$}_k}$ の積、 すなわち $m\times p$ 行列となっていて、 すなわち $m\times p$ 行列の $n$ 個の和になっている。

この証明は、 $\mbox{\boldmath$a$}_k\,{}^T\!{\mbox{\boldmath$\hat{b}$}_k}$$(i,j)$ 成分が $a_{ik}b_{kj}$ のただ 1 項であり、 よって (6) の右辺の $(i,j)$ 成分が

$\displaystyle \sum_{k=1}^na_{ik}b_{kj} = c_{ij}
$

となることから成り立つことがわかる。

また、$A$ を列ベクトル、$B$ を成分で表せば、

  $\displaystyle
AB = [\mbox{\boldmath$a$}_1\ \mbox{\boldmath$a$}_2\ \cdots\ \mbo...
...hspace{0.5zw}\cdots\hspace{0.5zw}\sum_{k=1}^n\mbox{\boldmath$a$}_kb_{kp}\right]$ (7)
の形に表すことができるが、これは一見 $1\times n$ 行列と $n\times p$ 行列の 積の計算のようにも見える。

この証明は、 $\displaystyle \sum_{k=1}^n\mbox{\boldmath$a$}_kb_{kj}$ の上から $i$ 番目の成分が

$\displaystyle \sum_{k=1}^na_{ik}b_{kj} = c_{ij}
$

となるので成立する。

逆に、$A$ を成分、$B$ を行ベクトルで表せば、

  $\displaystyle
AB = \left[\begin{array}{ccc}
a_{11} & \cdots & a_{1n}\\
\vdo...
...e \sum_{k=1}^n a_{mk}\,{}^T\!{\mbox{\boldmath$\hat{b}$}_k}}
\end{array}\right]$ (8)
の形に表すこともできるが、これは一見 $m\times n$ 行列と $n\times 1$ 行列の 積の計算のようにも見える。

この証明は、 $\displaystyle \sum_{k=1}^n a_{ik}\,{}^T\!{\mbox{\boldmath$\hat{b}$}_k}$ の 左から $j$ 番目の成分が

$\displaystyle \sum_{k=1}^na_{ik}b_{kj} = c_{ij}
$

となるので成立する。

竹野茂治@新潟工科大学
2021-09-10