ベイジアン研究所

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

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

1. 記事の目的
以下の記事で行列の演算(積)について述べた。本記事では大きい型の行列をそれより小さい型の行列の演算(特に積)へと帰着させるテクニックである、行列の区分けについて解説する。

camelsan.hatenablog.com

2. 区分けの例
次の行列を考える。

A=\begin{pmatrix}1&2&5&6\\-3&-1&2&0\\3&8&-4&2\end{pmatrix}

Aの中の行列を、図1のように区画に分ける。

f:id:camelsan:20210122221403p:plain
図1 区分け
区分けした各ブロックの行列を次のように記号で置く。

\begin{split}A_{11}=\begin{pmatrix}1&2&5\\-3&-1&2\end{pmatrix}, A_{12}=\begin{pmatrix}0\\2 \end{pmatrix}, \\ A_{21}=\begin{pmatrix}3&8&-4\end{pmatrix}, A_{22}=\begin{pmatrix}2\end{pmatrix}\end{split}

区分けを行ったAを次のように表すこととする。

A=\begin{pmatrix}A_{11}&A_{12}\\A_{21}&A_{22}\end{pmatrix}

3. 行列の区分け
一般の(l,m)型の行列Aに関して述べる。Ap-1個の横線とq-1個の縦線によって、pq個の区画に分ける。上からs番目、左からt番目の区画の行列をA_{st}とするとき、Aは次のように表される。

A=\begin{pmatrix}A_{11}&A_{12}&\dots&A_{1q}\\A_{21}&A_{22}&\dots&A_{2q}\\ \vdots&\vdots&&\vdots\\A_{p1}&A_{p2}&\dots&A_{pq} \end{pmatrix}

3. 区分けされた行列の積
区分けされた二つの行列の積が、区分けされた行列の成分A_{st}を一つの数とみなして、あたかも普通の行列の積として計算できることを以下で見る。

まず、自然数の分割について説明する。例えば3という数は他の自然数の和として

\begin{split}3&=1+1+1\\&=2+1\end{split}

などと表すことができる。3をこのように表したとき、右辺お(1,1,1)(2,1)などのくみのことを3の分割という。一般に、自然数nに対して

n=l_1+l_2+\dots+l_s

と表したときに(l_1,\dots,l_s自然数)、(l_1,\dots,l_s)自然数nの分割という。

(l,m)型行列Aに対し、lmの分割

l=l_1+l_2+\dots+l_p\tag{1}
m=m_1+m_2+\dots+m_q\tag{2}

をとり、区分けされた行列の区画A_{st}(l_s,m_t)型行列であるとする。(m,n)型行列Bに関しても同様にして、mnの分割

m=m_1+m_2+\dots+m_q\tag{3}
n=n_1+n_2+\dots+n_r\tag{4}

をとり、区分けされた行列の区画B_{tu}(m_t,n_u)型行列であるとする。

注意 : mの分割の仕方は、ABで同じものでなくてはならない(積が定義できなくなるため)。即ち(2)と(3)は各m_1,\dots,m_qも等しくなければならない。

C=AB (ABの結果となりうる(l,m)型行列)をpr個の区画に分ける(区画分けしたときの結果が通常の行列の積と同様にpr個の区画になると予想している)。

C=\begin{pmatrix}C_{11}&C_{12}&\dots&C_{1r}\\ C_{21}&C_{22}&\dots&C_{2r}\\ \vdots &\vdots&&\vdots\\C_{p1}&C_{p2}&\dots&C_{pr} \end{pmatrix}

ここで、C_{su}(l_s,n_u)型であるとする。このとき通常の行列の積のように次が成り立つ。

C_{su}=A_{s1}B_{1u}+A_{s2}B_{2u}+\dots +A_{sq}B_{qu}\tag{5}

(5)の証明:
(5)の両辺が同じ型であることを示す。  A_{st}(l_s,m_t) 型、 B_{tu}(m_t,n_u)(t=1,\dots,q)であるから、積A_{st}B_{tu}は定義され、さらにtによらず、全て(l_s,n_u)型である。従って和 A_{s1}B_{1u}+\dots +A_{sq}B_{qu}(l_s,n_u)型行列で、左辺と同じ型である。
(5)の対応する成分が等しいことを示す。(\alpha,\beta)成分が等しいことを示す。

i=l_1+l_2+\dots+l_{s-1}+\alpha, k=n_1+n_2+\dots+n_{u-1}+\beta\tag{6}

と置くと、

C_{su}(\alpha,\beta)成分
=C(i,k)成分 (図2参照)
=\displaystyle\sum_{j=1}^m a_{ij}b_{jk} (C=ABより)

f:id:camelsan:20210123100159p:plain
図2 等式の図解
一方,

\begin{split}A_{st}B_{tu}\text{の}(\alpha,\beta)\text{成分}&=(A_{st}\text{の}\alpha\text{行目})(B_{tu}\text{の}\beta\text{列目}) \\ &=(A\text{の}i\text{行目の}m_1+\dots+m_{t-1}+1\text{成分から}m_1+\dots+m_t\text{成分目})(B\text{の}k\text{列目の}m_1+\dots+m_{t-1}+1\text{成分から}m_1+\dots+m_t\text{成分目}) \\ &=\begin{pmatrix}a_{(l_1+\dots+l_{s-1}+\alpha)(m_1+\dots+m_{t-1}+1)}&\dots&a_{(l_1+\dots+l_{s-1}+\alpha)(m_1+\dots+m_{t-1}+m_t)}\end{pmatrix}\begin{pmatrix}b_{(m_1+\dots+m_{t-1}+1)(n_1+\dots+n_{u-1}+\beta)}\\ \vdots \\ b_{(m_1+\dots+m_{t-1}+m_t)(n_1+\vdots+n_{u-1}+\beta)}\end{pmatrix} \\ &=\displaystyle\sum_{j=m_1+\dots+m_{t-1}+1}^{m_1+\dots+m_t} a_{(l_1+\dots+l_{s-1}+\alpha)j} b_{j(n_1+\dots+n_{u-1}+\beta)} \\ &=\displaystyle\sum_{j=m_1+\dots+m_{t-1}+1}^{m_1+\dots+m_t} a_{ij} b_{jk} \ \ \ \ \text{((6)式より)}\end{split}

よって

\begin{split}&(A_{s1}B_{1u}+\dots+A_{sq}B_{qu}\text{の}(\alpha,\beta)\text{成分}) \\ &=\displaystyle\sum_{j=1}^{m_1} a_{ij} b_{jk}+\displaystyle\sum_{j=m_1+1}^{m_1+m_2} a_{ij} b_{jk}+\dots+\displaystyle\sum_{j=m_1+\dots+m_{q-1}+1}^{m_1+\dots+m_q} a_{ij} b_{jk} \\ &=\displaystyle\sum_{j=1}^{m_1+\dots+m_q} a_{ij} b_{jk} \\ &=\displaystyle\sum_{j=1}^m a_{ij} b_{jk} \ \ \ \ \text{((2)式より)}\end{split}

従って

C_{su}\text{の}(\alpha,\beta)\text{成分}=A_{s1}B_{1u}+\dots+A_{sq}B_{qu}\text{の}(\alpha,\beta)\text{成分}

より、(5)の各成分が等しいので、(5)の等式が成立する。

4. 具体例
2つの行列を

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

とする。ABを図3 のように区分けすると、ABは次のように計算できる。

f:id:camelsan:20210123124723p:plain
図3 区分け

\begin{split}AB&=\begin{pmatrix}\begin{pmatrix}2&0 \\ 0&-1\end{pmatrix}\begin{pmatrix}-1&0\\0&2\end{pmatrix}+\begin{pmatrix}0\\ 0\end{pmatrix}\begin{pmatrix}0& 0\end{pmatrix} & \begin{pmatrix}2&0 \\ 0&-1\end{pmatrix}\begin{pmatrix}0\\0\end{pmatrix}+\begin{pmatrix}0\\ 0\end{pmatrix}\begin{pmatrix}1\end{pmatrix} \\  \begin{pmatrix}0&0 \end{pmatrix}\begin{pmatrix}-1&0\\0&2\end{pmatrix}+\begin{pmatrix}3\end{pmatrix}\begin{pmatrix}0&0\end{pmatrix}& \begin{pmatrix}0&0 \end{pmatrix}\begin{pmatrix}0\\0\end{pmatrix}+\begin{pmatrix}3\end{pmatrix}\begin{pmatrix}1\end{pmatrix}\end{pmatrix} \\ &=\begin{pmatrix}\begin{pmatrix}-2&0 \\ 0&-2\end{pmatrix}+\begin{pmatrix}0&0 \\ 0&0\end{pmatrix} &\begin{pmatrix}0&0 \end{pmatrix}+\begin{pmatrix}0&0 \end{pmatrix} \\ \begin{pmatrix}0\\0 \end{pmatrix}+\begin{pmatrix}0\\0 \end{pmatrix} & \begin{pmatrix}0 \end{pmatrix}+\begin{pmatrix}3 \end{pmatrix} \end{pmatrix}\ \\ &=\begin{pmatrix}-2&0&0 \\ 0&-2&0 \\ 0&0&3\end{pmatrix}\end{split}

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