線形代数2
行列の計算の基本!行列の積はなぜこうなる?

線形代数学の基本
線形代数学の基本

前回の記事では線形代数がどのような分野で,線形代数の基本的な概念である行列ベクトルがどのようなものかを説明しました.

この記事では行列とベクトルの計算について説明します.適切に行列とベクトルの計算を定義すると

行列の和$A+B$については分配法則

   \begin{align*} (A+B)\m{x}=A\m{x}+B\m{x} \end{align*}

が成り立ち,行列の積$AB$については結合法則

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

が成り立ちます.

この記事では

  • ベクトルの和,スカラー倍,行列倍
  • 行列の和,スカラー倍
  • 行列の積

について具体例を交えながらそれぞれ丁寧に説明します.

なお,この記事では特に断らない限り実行列・実ベクトルを扱うことにしますが,複素行列など一般のを成分とする行列・ベクトルに対しても同様です.

参考文献(線形代数)

手を動かしてまなぶ 線形代数

線形代数の入門書で,説明も非常に丁寧なので初学者にも読み進めやすい教科書です.

線型代数入門

理論系でガッツリ線形代数を学ぶ人のための入門書です.

ベクトルの計算

単なる数$\alpha$を行列やベクトルと区別してスカラー (scalar)といいます.例えば,この記事では主に実行列・実ベクトルを扱うので,スカラーは実数です.

scalar(スカラー)はラテン語で「梯子」を意味するscalaが語源となっています.また,「目盛り」や「縮尺」を意味する英語のscale(スケール)もラテン語のscalaが語源となっています.

このことから,行列やベクトルとは違い,スカラーは「量」を表すというニュアンスが感じられますね.

ここでは,ベクトルの計算として

  • ベクトルの
  • ベクトルのスカラー倍
  • ベクトルの行列倍

を定義します.

ベクトルの和

$n$次実列ベクトル$\m{a}=\bmat{a_1\\\vdots\\a_n}$, $\m{b}=\bmat{b_1\\\vdots\\b_n}$の和$\m{a}+\m{b}$を

   \begin{align*} \m{a}+\m{b}:=\bmat{a_1+b_1\\\vdots\\a_n+b_n} \end{align*}

で定義する.

これは高校数学で学ぶ成分で表されたベクトルの和と同じですね.

図形的には$\m{a}+\m{b}$は「ベクトル$\m{a}$, $\m{b}$を繋げてできたベクトル」と言えますね.

Rendered by QuickLaTeX.com

$n$次実列ベクトル$\m{a}$に対して,

   \begin{align*} \m{a}+\m{b}=\m{b}+\m{a}=\m{0} \end{align*}

をみたす$\m{b}\in\R^n$を$\m{a}$の逆ベクトル (inverse vector)といい,$-\m{a}$と表す.

$n$次実列ベクトル$\m{a}$の逆ベクトル$-\m{a}$は$(-1)\m{a}$に一致します.つまり,成分を考えれば$-\m{a}=(-1)\m{a}$であることが分かりますね.

また,$n$次実列ベクトル$\m{x},\m{y}$に対して,$\m{x}+(-\m{y})$を$\m{x}-\m{y}$と表します.

ベクトルのスカラー倍

$n$次実列ベクトル$\m{a}=\bmat{a_1\\\vdots\\a_n}$と実数$c$に対して,$c$を$\m{a}$にかけてできる$n$次実ベクトル$c\m{a}$を

   \begin{align*} c\m{a}:=\bmat{ca_1\\\vdots\\ca_n} \end{align*}

で定義する.

これも高校数学で学ぶ成分で表されたベクトルの実数倍と同じですね.

図形的には$c\m{a}$は「ベクトル$\m{a}$の長さを$c$倍してできたベクトル」と言えますね.

Rendered by QuickLaTeX.com

$\m{0}$でない$n$次実列ベクトル$\m{a}$, $\m{b}$が平行であるとは

   \begin{align*} k\m{a}=\m{b} \end{align*}

をみたす$k\in\R$が存在することをいう.

図形的には$\m{a},\m{b}\in\R^{n}$が平行であるとは「$\m{a}$を伸び縮みだけで$\m{b}$に一致させられること」と言えますね.

ただし,$k<0$の場合には$\m{a}$と$\m{b}$は逆向きになります.すなわち,逆向きに伸び縮みさせると考えます.

ベクトルの行列倍

前回の記事で説明したように,線形代数の世界では連立方程式

   \begin{align*} \begin{cases}y_1=x_1+2x_2+3x_3\\y_2=4x_1+5x_2+6x_3\end{cases} \end{align*}

は右辺を係数部分と変数部分に分けて

   \begin{align*} \bmat{y_1\\y_2}=\bmat{1&2&3\\4&5&6}\bmat{x_1\\x_2\\x_3} \end{align*}

と表すことを説明しました.

実はこの右辺は行列$\bmat{1&2&3\\4&5&6}$をベクトル$\bmat{x_1\\x_2\\x_3}$にかけてできるベクトルと考えており,このベクトルの行列倍は一般に以下のように定義されます.

$n$次実列ベクトル$\m{x}=\bmat{x_{1}\\\vdots\\x_{n}}$と$m\times n$行列$A=\bmat{a_{11}&\dots&a_{1n}\\\vdots&\ddots&\vdots\\a_{m1}&\dots&a_{mn}}$に対して,$A$を$\m{x}$に左からかけてできる$n$次実ベクトル$A\m{x}$を

   \begin{align*} A\m{x}:=\bmat{a_{11}x_{1}+\dots+a_{1n}x_{n}\\\vdots\\a_{m1}x_{1}+\dots+a_{mn}x_{n}} \end{align*}

で定義する.

例1

   \begin{align*} \bmat{1&2&3\\4&5&6}\bmat{x\\y\\z} =\bmat{x+2y+3z\\4x+5y+6z},\quad \bmat{1&2\\3&4\\5&6}\bmat{a\\b} =\bmat{a+2b\\3a+4b\\5a+6b} \end{align*}

ですね.

例2(定義できない例)

列ベクトルの行列倍で大切なことは,行列の列の個数と列ベクトルの成分の個数が一致していないと定義されない点です.

例えば,$\bmat{1&2&3\\4&5&6}$は3列の行列で,$\bmat{a\\b}$は2成分の列ベクトルなので,

   \begin{align*} \bmat{1&2&3\\4&5&6}\bmat{a\\b} \end{align*}

定義されません.

行列の計算

それでは次に行列の計算の定義に移ります.

行列のスカラー倍と和

$m\times n$実行列$A=(a_{ij})$, $B=(b_{ij})$と$\alpha\in\R$を考える.$A=(a_{ij})$の$\alpha$倍と,和$A+B$をそれぞれ

  • $\alpha A=\bmat{\alpha a_{11}&\dots&\alpha a_{1n}\\\vdots&\ddots&\vdots\\\alpha a_{m1}&\dots&\alpha a_{mn}}$
  • $A+B=\bmat{a_{11}+b_{11}&\dots&a_{1n}+ b_{1n}\\\vdots&\ddots&\vdots\\a_{m1}+b_{m1}&\dots&a_{mn}+b_{mn}}$

で定義する.

すなわち,$\alpha$倍は全ての成分に$\alpha$をかければ良く,和と差は同じ成分同士で和と差を取れば良いわけですね.

行列の和の具体例

たとえば,$A=\bmat{1&2\\3&6}$, $B=\bmat{-1&3\\1&0}$に対して,

   \begin{align*} &A+B =\bmat{1+(-1)&2+3\\3+1&6+0} =\bmat{0&5\\4&6} \end{align*}

となります.

また,$m\times n$実行列$A$に対して

   \begin{align*} A+B=B+A=O \end{align*}

をみたす$m\times n$実行列$B$を$-A$と表します.つまり,成分を考えれば$-A=(-1)A$ですね.

また,$m\times n$実行列$X$, $Y$に対して$X+(-Y)$を$X-Y$と表します.

列ベクトル$\m{a}$に対して$-\m{a}$を逆ベクトルといいましたが,行列$A$に対して$-A$は逆行列とは言いません.

しかし,逆行列と呼ばれる行列もあり,逆行列については次の記事で説明します.

行列の和と分配法則

行列の和とベクトルの行列倍について,次のように分配法則が成り立ちます.

$m\times n$実行列$A$, $B$と$n$次実列ベクトル$\m{x}$に対して,

   \begin{align*} (A+B)\m{x}=A\m{x}+B\m{x} \end{align*}

で定義する.

実際に$A$, $B$, $\m{x}$の成分を文字でおいて計算すれば簡単に証明できるので,ぜひ計算練習のつもりで証明してみてください.

行列の積

次に行列の積を定義しますが,どのように定義するのが良いか考えましょう.

行列とベクトルの積については,定義から

  • $m\times n$行列$B$を左から$\m{x}\in\R^n$にかけて$B\m{x}\in\R^m$
  • さらに左から$\ell\times m$行列$A$をかけると$A(B\m{x})\in\R^{\ell}$

となります:

   \begin{align*} \begin{matrix} \R^n & \to & \R^m & \to & \R^\ell \\ \rotatebox[origin=c]{90}{$\in$} &  & \rotatebox[origin=c]{90}{$\in$} &  & \rotatebox[origin=c]{90}{$\in$} \\ \m{x} & \mapsto & B\m{x} & \mapsto & A(B\m{x}) \end{matrix}. \end{align*}

さて,ここで行列$A$と$B$の積$AB$をするとき,結合法則$A(B\m{x})=(AB)\m{x}$が成り立っていて欲しいと思うのは自然なことですね.

たとえば,$A=\bmat{2&2\\-3&1}$, $B=\bmat{-2&0\\3&1}$, $\m{x}=\bmat{x\\y}$の場合を考えると,

   \begin{align*} A(B\m{x}) =&A\bra{\bmat{-2&0\\3&1}\bmat{x\\y}} =A\bmat{-2x\\3x+y} \\=&\bmat{2&2\\-3&1}\bmat{-2x\\3x+y} =\bmat{2(-2x)+2(3x+y)\\-3(-2x)+(3x+y)} \\=&\bmat{2x+2y\\9x+y} =\bmat{2&2\\9&1}\bmat{x\\y} =\bmat{2&2\\9&1}\m{x} \end{align*}

となるので,$AB=\bmat{2&2\\9&1}$と定義されていれば,結合法則$A(B\m{x})=(AB)\m{x}$が成り立ちます.

このように,行列の積が結合法則をもつように定義しようとすると,行列の積の定義は以下のようになります.

$\ell\times m$行列$A=(a_{ij})$,$m\times n$行列$B=(b_{ij})$とする.このとき,積$AB$を以下で定義する.

   \begin{align*} AB :=\bra{\sum_{k=1}^{n} a_{ik}b_{kj}}_{1\leqq i\leqq \ell,1\leqq j\leqq n} =\bmat{ \sum_{k=1}^{n} a_{1k}b_{k1}&\dots&\sum_{k=1}^{n} a_{1k}b_{k\ell}\\ \vdots&\ddots&\vdots\\ \sum_{k=1}^{n} a_{mk}b_{k1}&\dots&\sum_{k=1}^{n} a_{mk}b_{k\ell} } \end{align*}

たとえば,$A=\bmat{1&2\\3&6}$, $B=\bmat{-1&3\\1&0}$, $C=\bmat{2&0\\-1&0}$とすると,

   \begin{align*} &AB =\bmat{1\cdot(-1)+2\cdot1&1\cdot3+2\cdot0\\3\cdot(-1)+6\cdot1&3\cdot3+6\cdot0} =\bmat{1&3\\3&9}, \\&BA =\bmat{(-1)\cdot1+3\cdot3&(-1)\cdot2+3\cdot6\\1\cdot1+0\cdot3&1\cdot2+0\cdot6} =\bmat{8&16\\1&2}, \\&AC =\bmat{1\cdot2+2\cdot(-1)&1\cdot0+2\cdot0\\3\cdot2+6\cdot(-1)&3\cdot0+6\cdot0} =\bmat{0&0\\0&0} \end{align*}

となります.

さて,この例から$AB\neq BA$, $AC=O$となることが分かります.このように,

  • 行列の積は可換(交換可能)とは限らないし,
  • 行列の積が零行列であってもどちらかが零行列であるとは限らない

ということに注意してください.

行列の積の表し方

ベクトルで区分けされた行列の積を計算することはよくあります.

そこで次の命題も当たり前にしておいてください.

$m\times n$行列$A=(a_{ij})$,$n\times\ell$行列$B=(b_{ij})$を

   \begin{align*} A=\bmat{\m{a}_1\\\vdots\\\m{a}_m},\quad B=[\m{b}_1,\dots,\m{b}_{\ell}] \end{align*}

とすると,以下のいずれも積$AB$に等しい.

  1. $\bmat{\m{a}_1\m{b}_1&\dots&\m{a}_1\m{b}_\ell\\\vdots&\ddots&\vdots\\\m{a}_m\m{b}_1&\dots&\m{a}_m\m{b}_\ell}$
  2. $[A\m{b}_1,\dots,A\m{b}_\ell]$
  3. $\bmat{\m{a}_{1}B\\\vdots\\\m{a}_{m}B}$

(1) $A$, $B$の区分けの仕方から,任意の$i=1,\dots,m$に対して,

   \begin{align*} \m{a}_{i}=[a_{i1},\dots,a_{in}],\quad \m{b}_{i}=\bmat{b_{1i}\\\vdots\\b_{ni}} \end{align*}

であることに注意する.

また,定義から積$AB$の$(i,j)$成分は$\sum_{k=1}^{n}a_{ik}b_{kj}$であり,これは

   \begin{align*} \sum_{k=1}^{n}a_{ik}b_{kj} =a_{i1}b_{1j}+\dots+a_{in}b_{nj} =\m{a}_{i}\m{b}_{j} \end{align*}

と変形できるから,

   \begin{align*} AB=\bmat{\m{a}_1\m{b}_1&\dots&\m{a}_1\m{b}_\ell\\ \vdots&\ddots&\vdots\\ \m{a}_m\m{b}_1&\dots&\m{a}_m\m{b}_\ell} \end{align*}

が成り立つ.

(2) (1)の等式の第$j$列は

   \begin{align*} \bmat{\m{a}_1\m{b}_j\\\vdots\\\m{a}_m\m{b}_j} =\bmat{\m{a}_1\\\vdots\\\m{a}_m}\m{b}_j =A\m{b}_j \end{align*}

だから,積$AB$は

   \begin{align*} AB=[A\m{b}_1,\dots,A\m{b}_l] \end{align*}

と表せる.

(3) 同様に,(1)の等式の第$i$列は

   \begin{align*} [\m{a}_i\m{b}_1,\dots,\m{a}_i\m{b}_l] =\m{a}_{i}[\m{b}_1,\dots,\m{b}_l] =\m{a}_{i}B \end{align*}

だから,積$AB$は

   \begin{align*} AB=\bmat{\m{a}_{1}B\\\vdots\\\m{a}_{m}B} \end{align*}

と表せる.

逆行列

実数$a$が$0$でなければ,逆数$a^{-1}$が存在することは小学校から当たり前のように用いてきました.

実は正方行列についても逆数に相当するものが定義され,これを逆行列といいます.

実数$a$の逆数$b$は「$a\cdot b=b\cdot a=1$を満たす数」として定義されるのですが,逆行列も同様に行列$A$に対して

   \begin{align*}AB=BA=I\end{align*}

となる行列$B$が$A$の逆行列と定義され,$A^{-1}$と表されます.なお,$I$は単位行列で前回の記事で説明したものですね.

次の記事では,この逆行列について解説します.

コメント

タイトルとURLをコピーしました