一次変換と行列

アフィン変換についての記事を書いたのですが一次変換(線型変換)についての部分が長くなったので分割してこちらに書くとことにします。

一次変換は m \times n 実行列 \boldsymbol{A} による n 次元列ベクトル \boldsymbol{x}m 次元列ベクトルへの変換(\boldsymbol{x} \mapsto \boldsymbol{Ax}) のことです。厳密には以下の2つ性質を満たすような写像 f: V \rightarrow W (V,\,W は体 \mathbb{K} 上のベクトル空間とする):

1. 加法性: \forall \boldsymbol{x},\,\boldsymbol{y} \in V,\ f(\boldsymbol{x} + \boldsymbol{y}) = f(\boldsymbol{x}) + f(\boldsymbol{y})
2. 斉一次性: \forall \boldsymbol{x} \in V,\ \forall a \in \mathbb{K},\ f(a\boldsymbol{x}) = af(\boldsymbol{x})
のことなのですが、うまいこと変換写像を定めてやることで行列とベクトルに変換することができ、上の行列による変換はこの2性質を満たすので、そのように見なしてもいいということになっています。このとき、その変換を表す行列を表現行列と、その行列に依る表現を行列表現と言います。表現行列が \boldsymbol{A} である一次変換を f_{\boldsymbol{A}} と書いたりします。つまり、f_\boldsymbol{A}(\boldsymbol{x}) = \boldsymbol{Ax} と書けます。

基底と行列

この2つの性質は\forall \boldsymbol{x},\,\boldsymbol{y}  \in V,\ \forall a,\,b \in \mathbb{K},\ f(a\boldsymbol{x} + b\boldsymbol{y}) = af(\boldsymbol{x}) + bf(\boldsymbol{y}) としてまとめることもでき、この性質を線型性と言ったりします。また、この線型性から \boldsymbol{x} =\displaystyle\sum_{i=1}^{n}\,x_i\, \mathbf{e}_i とし、\boldsymbol{A} の第 i 列目の列ベクトルを \boldsymbol{a}_i とすると、\boldsymbol{A} = \displaystyle\sum_{i=1}^{n}\, \boldsymbol{a}_i\, \mathbf{e}_i^{\top} となり、


\begin{align}
\boldsymbol{Ax} & = \boldsymbol{A} \sum_{i=1}^{n}x_i\, \mathbf{e}_i = \sum_{i=1}^{n} x_i \boldsymbol{A} \mathbf{e}_i = \sum_{i=1}^{n} x_i \left(\sum_{j=1}^{n} \boldsymbol{a}_j\, \mathbf{e}_j^{\top} \right) \mathbf{e}_i = \sum_{i=1}^{n} x_i \left({\sum_{j=1}^{n}} \boldsymbol{a}_j\, \mathbf{e}_j^{\top} \mathbf{e}_i \right) \\
& = \sum_{i=1}^{n} x_i \left(\sum_{j=1}^{n} \boldsymbol{a}_j (\delta_{ij}) \right) = \sum_{i=1}^{n} x_i\, \boldsymbol{a}_i
\end{align}
となり、\boldsymbol{x} の各成分を係数とした \{\boldsymbol{a}_1,\,\dots,\,\boldsymbol{a}_n\} の線型結合で表されることが分かります。標準基底 \mathbf{e}_i\boldsymbol{a}_i 即ち、\boldsymbol{A} の第 i 列の列ベクトルへ移されることからそれらの線型結合となるわけですね。

因みに余談ですが、n=m のとき、\boldsymbol{A} は正方行列となり、行列式を定義することができますが、この行列式は標準基底 \{\mathbf{e}_1,\,\dots,\,\mathbf{e}_n\} の移動した先の \{\boldsymbol{a}_1,\,\dots,\,\boldsymbol{a}_n\} が張る平行 2n 胞体の超体積(n=2 のときは平行四辺形の面積、n=3 のときは平行六面体の体積)となります。行列式0 となるときは \{\boldsymbol{a}_1,\,\dots,\,\boldsymbol{a}_n\} が線形従属の時で、このとき縮退が起こっているといいます。始域がそのベクトル空間であっても、値域がそのベクトル空間そのものではなく、部分空間となります。

一次変換の合成

一次変換を行列で表す利点としては具体的な計算ができることが挙げられますが、他にも変換の合成が表せることが挙げられます。V \supseteq W*1 のとき f \circ f = f^2 という合成が可能ですが、このとき n=m 即ち、表現行列は正方行列となります。もしくは、f_1: V_1 \rightarrow W_1, f_2: V_2 \rightarrow W_2 については、V_2 \supseteq W_1*2 のとき f_2 \circ f_1 という合成が可能です。このとき \boldsymbol{x}\boldsymbol{A} によって変換したのち \boldsymbol{B} で変換するという変換即ち f_\boldsymbol{B} \circ f_\boldsymbol{A} の行列表現は \boldsymbol{B}(\boldsymbol{Ax}) となりますが、行列積の結合則によって


\boldsymbol{B}(\boldsymbol{Ax}) = (\boldsymbol{BA}) \boldsymbol{x}
となるのでこの変換は行列 \boldsymbol{BA} による変換となる、即ち f_\boldsymbol{B} \circ f_\boldsymbol{A} = f_{\boldsymbol{BA}} であることが分かります。つまり、変換の合成が行列の積で表せるのですね。

一次変換の例(2次元)

さて、ここからは重要な一次変換を表す行列を見ていきます。ここでは n=m=2 とし、 \boldsymbol{x} = \begin{pmatrix} x \\ y \\ \end{pmatrix} とします。

恒等操作(単位行列)

f:id:Flkanjin:20210205181312p:plain:w333:left\begin{pmatrix} x \\ y \\ \end{pmatrix} をそのまま \begin{pmatrix} x \\ y \\ \end{pmatrix} へ移す変換です。
表現行列は \begin{pmatrix} 1 & 0 \\ 0 & 1 \\ \end{pmatrix} です。行列積において単位元となっているため単位行列と言い \boldsymbol{E}\boldsymbol{I} と表記します。 \boldsymbol{E}_2\boldsymbol{I}_2 と行列の大きさを添え字として書いたりもします。

原点を中心とする相似変換と零行列

f:id:Flkanjin:20210205183931p:plain:w333:left\begin{pmatrix} x \\ y \\ \end{pmatrix}\begin{pmatrix} ax \\ ay \\ \end{pmatrix} = a \begin{pmatrix} x \\ y \\ \end{pmatrix} へ移す変換です。
a\begin{pmatrix} x \\ y \\ \end{pmatrix} = a \boldsymbol{E}_2 \begin{pmatrix} x \\ y \\ \end{pmatrix} より表現行列は a \boldsymbol{E}_2 = \begin{pmatrix} a & 0 \\ 0 & a \\ \end{pmatrix} です。この a を相似変換の拡大率と言います。

a=0 としたとき全ての点を原点に移します。この時表現行列は \begin{pmatrix} 0 & 0 \\ 0 & 0 \\ \end{pmatrix} で全ての成分が 0 となっています。この行列は行列積における吸収元、零元で、零行列と言い、 \boldsymbol{O} と書きます。 \boldsymbol{O}_2 \boldsymbol{O}_{2,2} と行列の型を表記することもあります。

原点を中心とする拡大・縮小

f:id:Flkanjin:20210205205804p:plain:w373:left\begin{pmatrix} x \\ y \\ \end{pmatrix}\begin{pmatrix} ax \\ by \\ \end{pmatrix} へ移す変換です。x 軸方向に a 倍、y 軸方向に b 倍です。この変換では正方形は長方形に変形されます
表現行列は \begin{pmatrix} a & 0 \\ 0 & b \\ \end{pmatrix} です。相似変換はこれの a=b の場合に対応します。

$x$ 軸や $y$ 軸対称の移動

f:id:Flkanjin:20210205194901p:plain:w345:left\begin{pmatrix} x \\ y \\ \end{pmatrix}x 軸対称に移動させると \begin{pmatrix} x \\ -y \\ \end{pmatrix}y 軸対称なら \begin{pmatrix} -x \\ y \\ \end{pmatrix} に移ります。
表現行列は \begin{pmatrix} 1 & 0 \\ 0 & -1 \\ \end{pmatrix}\begin{pmatrix} -1 & 0 \\ 0 & 1 \\ \end{pmatrix} となりますが、それぞれ
\left\{
    \begin{array}{ll}
      a=1\\
      b=-1
    \end{array}
  \right.\left\{
    \begin{array}{ll}
      a=-1\\
      b=1
    \end{array}
  \right. の拡大・縮小に対応します。

原点を中心とした回転(回転行列)

f:id:Flkanjin:20210205192643p:plain:w333:left\begin{pmatrix} x \\ y \\ \end{pmatrix} を原点中心に反時計周りに角度 \theta だけ回転させると \begin{pmatrix} x\cos\theta - y\sin\theta \\ x\sin\theta + y\cos\theta \\ \end{pmatrix} に移ります。これは x = r\cos\alpha, y = r\sin\alpha として r\cos(\alpha + \theta)r\sin(\alpha + \theta) を加法定理によって計算することやGauß*3平面上の (x + \mathrm{i} y) (\cos\theta + \mathrm{i} \sin\theta) を計算することで求まります。
表現行列は \begin{pmatrix} \cos\theta & -\sin\theta \\ \sin\theta & \cos\theta \\ \end{pmatrix} となり、回転行列と呼び、\boldsymbol{R}_{\theta}\boldsymbol{R}\,(\theta)と表記します。

剪断移動

f:id:Flkanjin:20210205211134p:plain:w373
f:id:Flkanjin:20210205211136p:plain:w176:left剪断せんだんとはある軸からの符号附き距離に比例した量だけその軸の方向へ移動させるような移動です。少しややこしい変換ですね。この変換では正方形が潰れて平行四辺形になりますが、その面積は変わりません。一次変換では原点を通る軸についての剪断移動を表現することができますが、事前に回転させておけば x 軸、もしくは y 軸に関する剪断移動で表すことができます。
x 軸についての剪断移動は \begin{pmatrix} x \\ y \\ \end{pmatrix}\begin{pmatrix} x + ay \\ y \\ \end{pmatrix} に、y 軸についての剪断移動は \begin{pmatrix} x \\ bx + y \\ \end{pmatrix} に移します。
表現行列はそれぞれ \begin{pmatrix} 1 & a \\ 0 & 1 \\ \end{pmatrix}\begin{pmatrix} 1 & 0 \\ b & 1 \\ \end{pmatrix} となります。


2次元平面上の一次変換は回転、拡大・縮小、剪断の組み合わせに分解することができます。つまり、上に挙げた表現行列の積で表現することができます。

原点を通る直線を軸とする対称移動

f:id:Flkanjin:20210205203451p:plain:w340:leftここで一例として原点を通る直線 y = (\tan\theta) x を軸とする対称移動を考えます。この移動変換は「-\theta 回転 → x 軸対称移動 → \theta 回転」と分化することができ、表現行列は \begin{pmatrix} \cos\theta & -\sin\theta \\ \sin\theta & \cos\theta \\ \end{pmatrix} \begin{pmatrix} 1 & 0 \\ 0 & -1 \\ \end{pmatrix} \begin{pmatrix} \cos\theta & \sin\theta \\ -\sin\theta & \cos\theta \\ \end{pmatrix}= \begin{pmatrix} \cos 2\theta & \sin 2\theta \\ \sin 2\theta & -\cos 2\theta \\ \end{pmatrix} となります。

一次変換の不動点

\boldsymbol{x} = \boldsymbol{Ax} となるような \boldsymbol{x}不動点と言います。不動点が存在するためには始域 V と終域 W で共通部分を持つ必要があります(このとき共通部分 V \cap W もベクトル空間となります)。この時 n = mで、零ベクトル \mathbf{0}_nV 内の任意のベクトル \boldsymbol{x} を用いて 0\boldsymbol{x} と書けることから

 f_{\boldsymbol{A}}(\mathbf{0}_n) = f_{\boldsymbol{A}}(0 \boldsymbol{x}) = 0f_{\boldsymbol{A}}(\boldsymbol{x}) = \mathbf{0}_n
より不動点となることが分かります。また、不動点の定義より固有値1 であるような固有ベクトルが存在すればそれら*4不動点となります。

*1:厳密には終域 W ではなく像 f(V) を考えるのですが、多分終域 W でも差し支えないと思います。

*2:こちらも厳密には終域 W_1 ではなく像 f_1(V_1)

*3:独[ɡaʊs]: ガウス(Carl Friedrich Gauß) 色々な功績を残したやばい人

*4:複数形なのは非零ベクトル \boldsymbol{v}固有値 \lambda固有ベクトルのとき非ゼロである定数 c を掛けた c\boldsymbol{v} も同じ固有値 \lambda固有ベクトルになるからです。