行列の積の定義とその理由

行列の積(2×2)

行列積の定義,計算の具体例,および行列の積の定義の背景についてわかりやすく解説します。

2×2の場合の定義と計算の具体例

2×2の行列どうしの積が特に重要です。

行列積の定義(2×2の場合)

A=(a11a12a21a22)A=\begin{pmatrix} a_{11}& a_{12}\\ a_{21}& a_{22} \end{pmatrix}B=(b11b12b21b22)B=\begin{pmatrix} b_{11}& b_{12}\\ b_{21}& b_{22} \end{pmatrix} のとき,

AB=(a11b11+a12b21a11b12+a12b22a21b11+a22b21a21b12+a22b22)AB=\begin{pmatrix} a_{11}b_{11}+a_{12}b_{21}& a_{11}b_{12}+a_{12}b_{22}\\ a_{21}b_{11}+a_{22}b_{21}& a_{21}b_{12}+a_{22}b_{22} \end{pmatrix}

A=(2110)A=\begin{pmatrix} 2 & 1\\ 1& 0 \end{pmatrix}B=(1102)B=\begin{pmatrix} 1 & -1\\ 0& -2 \end{pmatrix} のとき

AB=(21+102(1)+1(2)11+001(1)+0(2))=(2411)AB=\begin{pmatrix} 2\cdot 1+1\cdot 0 &2(-1)+1\cdot (-2)\\ 1\cdot 1+0\cdot 0& 1\cdot (-1)+0\cdot (-2) \end{pmatrix}=\begin{pmatrix} 2 &-4\\ 1& -1 \end{pmatrix}

BABA も計算すると,BA=(1120)BA=\begin{pmatrix} 1 &1\\ -2& 0 \end{pmatrix} となり,ABBAAB\neq BA です。行列積は交換法則を満たしません。

行ベクトルと列ベクトルの内積

一般の行列の積について解説する前に,行ベクトル a\boldsymbol{a} と列ベクトル b\boldsymbol{b} の内積について見ておきます。

行ベクトルと列ベクトルの内積

行ベクトル a=(a1,a2,...,an)\boldsymbol{a} = (a_1, a_2, ... , a_n),列ベクトル b=(b1b2bn)\boldsymbol{b} = \left( \begin{array}{c} b_1 \\ b_2 \\ \vdots \\ b_n \end{array} \right) の内積は

ab=k=1nakbk \boldsymbol{a} \cdot \boldsymbol{b} = \displaystyle \sum_{k=1}^n a_k b_{k}

と定義される。

行列の積の定義

行列の積は以下のように定義されます。

行列の積

行列 A=(aij),B=(bij)A=(a_{ij}),B=(b_{ij}) に対してその積 ABAB

C=(cij)C=(c_{ij}) ただし, cij=k=1naikbkjc_{ij}=\displaystyle\sum_{k=1}^na_{ik}b_{kj}

で定義する。ただし,AA の列数と BB の行数(=n=n とおく)が一致しているときのみABAB は定義される。

  • 行列 CCijij 成分 cijc_{ij} は,AAii 行目 (ai1,ai2,...,ain)(a_{i1}, a_{i2}, ... , a_{in})BBjj 列目 (b1jb2jbnj)\left( \begin{array}{c} b_{1j} \\ b_{2j} \\ \vdots \\ b_{nj} \end{array} \right) の内積となっています。

  • また,AAl×ml \times m 行列,BBm×nm \times n 行列であれば,その積 C=ABC = ABl×nl \times n 行列になります。

行列の積の性質

行列の積の性質
  1. 一般に,ABBAAB \neq BA
  2. 常に,(AB)C=A(BC)(AB)C = A(BC)

1.については,冒頭の計算例からわかります。2.については,成分表示をして計算することにより示すことができますが,煩雑になってしまうのでここでは割愛します。興味のある方は計算してみてください。

行列積の定義の理由

行列の足し算,引き算は成分同士の和,差でOKなのに,行列のかけ算はなぜこのようなめんどうな定義になっているのでしょうか。成分同士の積を定義とした方が計算が楽で,しかも交換法則を満たすのに!

その答えは 「以下のとても嬉しい性質を満たすから」と言えます。

行列積 ABAB を上記のように定義すると,(BB の列数と等しいサイズの)任意の縦ベクトル xundefined\overrightarrow{x} に対して

(AB)xundefined=A(Bxundefined)(AB)\overrightarrow{x}=A(B\overrightarrow{x})

なぜこの性質が嬉しいのかは後述します。

2×2の場合の証明

xundefined=(x1x2)\overrightarrow{x}=\begin{pmatrix} x_1\\x_2\end{pmatrix} とおく。

右辺を計算していくと,

A(Bxundefined)=A(b11x1+b12x2b21x1+b22x2)A(B\overrightarrow{x})\\ =A\begin{pmatrix}b_{11}x_1+b_{12}x_2\\b_{21}x_1+b_{22}x_2\end{pmatrix}

=(a11(b11x1+b12x2)+a12(b21x1+b22x2)a21(b11x1+b12x2)+a22(b21x1+b22x2))=\begin{pmatrix}a_{11}(b_{11}x_1+b_{12}x_2)+a_{12}(b_{21}x_1+b_{22}x_2)\\a_{21}(b_{11}x_1+b_{12}x_2)+a_{22}(b_{21}x_1+b_{22}x_2)\end{pmatrix}

=(a11b11+a12b21a11b12+a12b22a21b11+a22b21a21b12+a22b22)(x1x2)=\begin{pmatrix} a_{11}b_{11}+a_{12}b_{21}& a_{11}b_{12}+a_{12}b_{22}\\ a_{21}b_{11}+a_{22}b_{21}& a_{21}b_{12}+a_{22}b_{22} \end{pmatrix}\begin{pmatrix} x_1\\x_2\end{pmatrix}

=(AB)xundefined=(AB)\overrightarrow{x}

となり左辺と一致した!

線形写像

なぜ上記の性質が嬉しいのか?

それは,「行列=線形写像(の表現)」という見方をすると,上記の性質は 線形写像の合成が行列の積に対応することを表しているからです。

線形写像と言うと難しそうですが,大雑把には 原点を通る一次関数 y=axy=ax の多変数バージョンです。「原点を通る一次関数の多変数バージョン」と言うといろいろなところに登場しそうですよね!

つまり,上記の性質のおかげで「原点を通る一次関数の多変数バージョン」の合成を簡潔に記述できます(もっと詳しい&厳密なことは線形代数で習って下さい)。

ちなみに,2×2の行列の場合,線形写像は「xyxy 座標系における一次変換」と考えるとイメージしやすいです。一次変換については,一次変換の意味と重要な5つの例(折り返し・回転・対称移動)で解説しています。

結論

  • 行列を扱うときには「単なる数字の羅列」ではなく「線形写像の表現」とみなすことが多い。そのときに(行列積と関数の合成が対応するという)便利な性質を満たすように行列積は定義されている。

  • 成分ごとの積による行列積も考えることもある(アダマール積と呼ばれる)が,役に立つことは少ない。

線形代数は大学に入って真っ先に好きになった分野です。