行列の積(行列積、行列の掛け算)は、単に同じ位置の成分を掛ける計算ではありません。左の行列の「行」と右の行列の「列」を組み合わせて、新しい行列を作る演算です。そのため、どの行列どうしでも掛けられるわけではなく、掛ける順番にも意味があります。

最初に結論

\(A\)が\(m\times n\)行列、\(B\)が\(n\times p\)行列なら、積\(AB\)を定義でき、結果は\(m\times p\)行列になります。

\begin{align*}(m\times n)(n\times p)\longrightarrow m\times p\end{align*}

中央の数\(n\)が一致することが、行列の積を計算できる条件です。

行列の積とは

\(A=(a_{ik})\)を\(m\times n\)行列、\(B=(b_{kj})\)を\(n\times p\)行列とします。このとき、積\(AB\)の第\((i,j)\)成分を

\begin{align*}(AB)_{ij}=\sum_{k=1}^{n}a_{ik}b_{kj}\end{align*}

で定義します。言葉で表すと、\(A\)の第\(i\)行と\(B\)の第\(j\)列について、対応する成分を掛け、その結果をすべて足したものです。

行列Aのオレンジ色の第1行と行列Bの青色の第1列を掛け、積ABの左上成分58を求める計算図
左の行列の行と右の行列の列を組み合わせて、積の各成分を計算します。

たとえば、行ベクトルと列ベクトルの積は

\begin{align*} \begin{pmatrix}a&b&c\end{pmatrix} \begin{pmatrix}x\\y\\z\end{pmatrix} =ax+by+cz \end{align*}

となります。行列の積では、この「行と列の計算」を必要なすべての組について行います。

なぜ行と列を掛けるのか:線形変換の合成

行列の積がこの形で定義される理由は、行列を線形変換として考えると分かりやすくなります。\(x\in\mathbb{R}^{p}\)に、まず\(n\times p\)行列\(B\)を作用させると、\(Bx\in\mathbb{R}^{n}\)になります。続いて\(m\times n\)行列\(A\)を作用させると、

\begin{align*} x\longmapsto Bx\longmapsto A(Bx) \end{align*}

という2段階の変換になります。この2段階を1つの行列で表すものが積\(AB\)であり、

\begin{align*} A(Bx)=(AB)x \end{align*}

が成り立つように定義されています。\(A\)の各出力を決める「行」と、\(B\)が作る各方向の情報を持つ「列」を組み合わせると、この合成変換の各成分が得られます。行列の積で順番が重要なのも、どの変換を先に適用するかが変わるためです。

行列の積を定義できるサイズの条件

左の行列の列数と、右の行列の行数が一致するときに限り、行列の積を定義できます。

計算定義できるか結果のサイズ
\((2\times3)(3\times4)\)できる\(2\times4\)
\((3\times2)(2\times3)\)できる\(3\times3\)
\((2\times3)(2\times4)\)できない左の列数3と右の行数2が不一致
\((1\times3)(3\times1)\)できる\(1\times1\)

サイズだけを並べて、中央の2つが同じかを見ると判定しやすくなります。中央の数は計算後に消え、外側の2つが答えの行数と列数として残ります。

掛ける順番に注意

\(AB\)を定義できても、逆向きの\(BA\)を定義できるとは限りません。また、両方を定義できても、結果のサイズや成分が同じになるとは限りません。

行列の積の計算方法

具体例として、次の\(2\times3\)行列\(A\)と\(3\times2\)行列\(B\)の積を計算します。

\begin{align*} A= \begin{pmatrix} 1&2&3\\ 4&5&6 \end{pmatrix}, \qquad B= \begin{pmatrix} 7&8\\ 9&10\\ 11&12 \end{pmatrix} \end{align*}

中央のサイズがどちらも3なので、\(AB\)を定義できます。結果は外側のサイズを取った\(2\times2\)行列です。

第1行と第1列から左上の成分を求める

\begin{align*} (AB)_{11} =1\cdot7+2\cdot9+3\cdot11 =58 \end{align*}

同じ方法ですべての成分を求める

\begin{align*} AB &= \begin{pmatrix} 1\cdot7+2\cdot9+3\cdot11 & 1\cdot8+2\cdot10+3\cdot12\\ 4\cdot7+5\cdot9+6\cdot11 & 4\cdot8+5\cdot10+6\cdot12 \end{pmatrix}\\ &= \begin{pmatrix} 58&64\\ 139&154 \end{pmatrix} \end{align*}

「左の行列から1行を選ぶ」「右の行列から1列を選ぶ」「対応する成分を掛けて足す」の3段階を繰り返せば計算できます。

行列の積の主な性質

交換法則は一般に成立しない

実数の掛け算では\(ab=ba\)ですが、行列では一般に\(AB=BA\)とはなりません。たとえば、

\begin{align*} A= \begin{pmatrix} 1&1\\ 0&1 \end{pmatrix}, \qquad B= \begin{pmatrix} 1&0\\ 1&1 \end{pmatrix} \end{align*}

とすると、

\begin{align*} AB= \begin{pmatrix} 2&1\\ 1&1 \end{pmatrix}, \qquad BA= \begin{pmatrix} 1&1\\ 1&2 \end{pmatrix} \end{align*}

なので、\(AB\ne BA\)です。行列の積では「どちらを先に作用させるか」が結果に反映されるため、順番を勝手に入れ替えることはできません。

結合則は成立する

積を定義できるサイズの行列\(A,B,C\)に対して、

\begin{align*}(AB)C=A(BC)\end{align*}

が成り立ちます。これは行列の順番を変える性質ではなく、どの2つから先に計算してもよいという性質です。各成分と二重和を使った厳密な証明は、行列の積が結合則を満たすことの証明で解説しています。

分配法則は成立する

必要な積と和を定義できるサイズであれば、

\begin{align*} A(B+C)&=AB+AC,\\ (A+B)C&=AC+BC \end{align*}

が成り立ちます。行列の積を成分ごとに書くと、実数の分配法則を各項へ適用できるためです。

単位行列を掛けても変わらない

\(n\times n\)単位行列を\(I_n\)とすると、サイズの合う行列\(A\)について

\begin{align*}I_mA=A,\qquad AI_n=A\end{align*}

が成り立ちます。単位行列は、実数の掛け算における1に相当する行列です。

行列の積でよくある間違い

同じ位置の成分どうしを掛ける

行列の積は成分ごとの掛け算ではありません。成分ごとの積はアダマール積と呼ばれる別の演算です。通常の行列積では、左の行と右の列を使います。

サイズを確認せずに計算する

最初に左の列数と右の行数を確認してください。数が一致しなければ、その順番での積は定義できません。

結合則と交換法則を混同する

\((AB)C=A(BC)\)は成立しますが、\(AB=BA\)は一般に成立しません。括弧を変えることと、行列の並びを入れ替えることは別です。

練習問題

問題1:積を定義できるか判定する

\(A\)を\(3\times2\)行列、\(B\)を\(2\times4\)行列とします。\(AB\)と\(BA\)を定義できるか判定し、定義できる場合は結果のサイズを答えてください。

答えを見る

\(AB\)は\((3\times2)(2\times4)\)なので定義でき、結果は\(3\times4\)行列です。\(BA\)は\((2\times4)(3\times2)\)となり、中央の4と3が一致しないため定義できません。

問題2:2次正方行列の積を計算する

次の積を求めてください。

\begin{align*} \begin{pmatrix} 2&-1\\ 3&4 \end{pmatrix} \begin{pmatrix} 1&5\\ 2&0 \end{pmatrix} \end{align*}

答えを見る

\begin{align*} \begin{pmatrix} 2\cdot1+(-1)\cdot2&2\cdot5+(-1)\cdot0\\ 3\cdot1+4\cdot2&3\cdot5+4\cdot0 \end{pmatrix} = \begin{pmatrix} 0&10\\ 11&15 \end{pmatrix} \end{align*}

問題3:順番を逆にした積を比較する

本文の計算例で使った\(A\)と\(B\)について、\(BA\)のサイズを予想してから実際に計算してください。

答えを見る

\(B\)は\(3\times2\)、\(A\)は\(2\times3\)なので、\(BA\)は\(3\times3\)行列です。

\begin{align*} BA= \begin{pmatrix} 39&54&69\\ 49&68&87\\ 59&82&105 \end{pmatrix} \end{align*}

\(AB\)は\(2\times2\)行列だったので、順番を逆にするとサイズまで変わる例になっています。

まとめ

行列の積を計算するときは、次の順番で考えると迷いにくくなります。

  1. 左の列数と右の行数が一致するか確認する。
  2. 答えのサイズを外側の数から決める。
  3. 左の行と右の列の対応する成分を掛けて足す。
  4. 掛ける順番は勝手に入れ替えない。

行列の積には交換法則は一般に成立しませんが、結合則と分配法則は成立します。特に結合則を成分表示から確認したい場合は、行列の積が結合則を満たすことの証明をわかりやすく解説も参照してください。