動機 #
🔗関連記事: 抽象ベクトル空間と部分空間の復習メモで導入された抽象ベクトル空間の間の線形写像を復習する必要があると思ったので。
抽象ベクトル空間の間の線形写像 #
\(\Reals^n, \space \Reals^3 \)などの数ベクトル空間の間の線形写像\(f: \Reals^n \to \Reals^m\)は\(V\)の標準基底が\(f\)で写されたものを\(W\)の標準基底の一次結合で表したときの係数を考えることによって、\(m \times n \)行列を得ることができて、\(f\)に関してその行列は表現行列と呼ばれ、同一視することができた。
数ベクトル空間に限らない一般のベクトル空間、つまり、抽象ベクトル空間の間にも線形写像が定義される。
そしてその線形写像も行列で表現することができる。
抽象ベクトル空間の間の線形写像の定義については🔗関連記事: 抽象ベクトル空間と部分空間の復習メモの一番下の方で解説している。
では、具体的にどのように表現行列を得るのだろうか?
抽象ベクトル空間の間の線形写像の表現行列 #
\(V, \space W\)をベクトル空間として、\(\bm{v}_1, \space \dots, \space \bm{v}_n\), \(\bm{w}_1, \space \dots, \space \bm{w}_m\)をそれぞれの基底とする。
基底と線形写像の関係を調べる。
いま、線形写像\(f: V \to W\)に関して、\(f(\bm{v}_1), \space \dots, \space f(\bm{v}_n)\)は\(W\)のベクトルなので、以下のように、適当なスカラー\(a_{ij}\)を用いて\(W\)の基底の一次結合で表すことができる。
$$ f(\bm{v}_1) = a_{11} \bm{w}_1 + a_{21} \bm{w}_2 + \dots + a_{m1} \bm{w}_m \\ f(\bm{v}_2) = a_{12} \bm{w}_1 + a_{22} \bm{w}_2 + \dots + a_{m2} \bm{w}_m \\ \vdots \\ f(\bm{v}_n) = a_{1 n} \bm{w}_1 + a_{2 n} \bm{w}_2 + \dots + a_{m n} \bm{w}_m $$
ここで、係数を集めて\(m\)行\(n\)列の行列を作る。
$$ A_f = \begin{pmatrix} a_{11} && a_{12} && \dots && a_{1n} \\ a_{21} && a_{22} && \dots && a_{2n} \\ \vdots && \vdots && && \vdots \\ a_{m1} && a_{m2} && \dots && a_{mn} \end{pmatrix} $$
この行列\(A_f\)は\(f\)によって一意に定まる。
\(A_f\)によって先程の一次結合たちはまとめて $$ (f(\bm{v}_1), \space \dots, \space f(\bm{v}_n)) = (\bm{w}_1, \space \dots, \bm{w}_m) A_f \qquad (1) $$ と表すことができる。
実はこの\(A_f\)が線形写像\(f\)の表現行列だ。
更に議論を進めることによって成分ベクトルと表現行列の関係も調べることができる。
ここで、\(V\)の任意のベクトル\(\bm{x}\)は適当な成分\(x_i\)で $$ \bm{x} = x_1 \bm{v}_1 + \dots + x_n \bm{v}_n = (\bm{v}_1, \space \dots, \space \bm{v}_n) \begin{pmatrix} x_1 \\ \vdots \\ x_n \end{pmatrix} $$ とかける。
そして、\(\bm{x}\)を\(f\)で写したベクトル\(\bm{y} \in W\)は適当な成分\(y_i\)で $$ \bm{y} = f(\bm{x}) = y_1 \bm{w}_1 + \dots + y_m \bm{w}_m =(\bm{w}_1, \space \dots, \space \bm{w}_m) \begin{pmatrix} y_1 \\ \vdots \\ y_m \end{pmatrix} \qquad (2) $$ と表せる。
ここで、\(\bm{y}\)を\(f\)の線形性を利用して別の形で表現する。
$$ \bm{y} = f(\bm{x})= f(x_1 \bm{v}_1 + \dots + x_n \bm{v}_n) \\ = f(x_1 \bm{v}_1 ) + \dots + f(x_n \bm{v}_n) \\ = x_1 f(\bm{v}_1 ) + \dots + x_n f(\bm{v}_n) \\ = (f(\bm{v}_1), \space \dots , \space f(\bm{v}_n)) \begin{pmatrix} x_1 \\ \vdots \\ x_n \end{pmatrix} \\ = (\bm{w}_1, \space \dots, \bm{w}_m) A_f \begin{pmatrix} x_1 \\ \vdots \\ x_n \end{pmatrix} \because 式(1)より \qquad (3) $$
式\((2),\space (3)\)より、 $$ \begin{pmatrix} y_1 \\ \vdots \\ y_m \end{pmatrix} = A_f \begin{pmatrix} x_1 \\ \vdots \\ x_n \end{pmatrix} $$ となる。
省略するが、議論を逆に辿れば、任意の\(m \times n\)行列から\(f\)が定まることも示せる。
この関係は何を意味しているのだろうか?
\(V\)の任意のベクトル\(\bm{x}\)を\(f\)で\(W\)に写したものが\(\bm{y}\)であり、\(\bm{x}, \bm{y}\)それぞれの成分(成分ベクトル)の間の関係は\(A_f\)という行列で示すことができるということだ。
具体例: \(2 \times 2\)行列から\(3 \times 3\)行列への線形写像 #
\(V\)を\(2 \times 2\)行列全体からなるベクトル空間、\(W\)を\(3 \times 3\)行列全体からなるベクトル空間とする。
いま、線形写像\(f: V \to W\)が \(V\)の元 $$ \begin{pmatrix} a & b \\ c & d \end{pmatrix} \qquad (A) $$ を \(W\)の元 $$ \begin{pmatrix} a & b & a+b \\ c & d & c+d \\ a+c & b+d & 2(a+b+c+d) \end{pmatrix} \qquad (B) $$ へ写すとしよう。
他の記事でも同じことを書いているが、\(V, \space W\)の元は行列なのにベクトル空間になることがおかしい思うのであれば、抽象ベクトル空間を誤って解釈している可能性が高いので、🔗関連記事: 抽象ベクトル空間と部分空間の復習メモ内の抽象ベクトル空間の定義と抽象ベクトル空間の具体例(の注意点の項)を参考にしていただければと思う。
適当に基底を固定したとき、線形写像\(f\)の表現行列\(A_f\)は具体的にどのような行列になるのか観察する。
\(V\)の基底のひとつは $$ k_1 \begin{pmatrix} 1 & 0 \\ 0 & 0 \end{pmatrix} + k_2 \begin{pmatrix} 0 & 1 \\ 0 & 0 \end{pmatrix} + k_3 \begin{pmatrix} 0 & 0 \\ 1 & 0 \end{pmatrix} + k_4 \begin{pmatrix} 0 & 0 \\ 0 & 1 \end{pmatrix} = \begin{pmatrix} 0 & 0 \\ 0 & 0 \end{pmatrix} $$
が自明な解\( k_i = 0, \space i = 1, \space \dots, \space 4\)しか持たないことから、左辺の4つの行列の組であることがわかる。
ベクトル空間の次元とは基底を構成するベクトルの個数のことだったので、\(\mathrm{dim} \space V = 4\)である。
同様に\(W\)の基底を $$ k_1 \begin{pmatrix} 1 & 0 & 0 \\ 0 & 0 & 0 \\ 0 & 0 & 0 \end{pmatrix} + \dots + k_9 \begin{pmatrix} 0 & 0 & 0 \\ 0 & 0 & 0 \\ 0 & 0 & 1 \end{pmatrix} = \begin{pmatrix} 0 & 0 & 0 \\ 0 & 0 & 0 \\ 0 & 0 & 0 \end{pmatrix} $$ の左辺の行列9つの組に固定する。
\(\mathrm{dim} \space W = 9\)である
そうすると、\((A), \space (B)\)の固定された基底に関する成分ベクトルはそれぞれ、 $$ \begin{pmatrix} a \\ b \\ c \\ d \end{pmatrix}, \begin{pmatrix} a \\ b \\ a + b \\ c \\ d \\ c + d \\ a + c \\ b + d \\ 2 (a + b + c + d) \end{pmatrix} $$ となる。
すると、線形写像\(f\)の表現行列は $$ \begin{pmatrix} a \\ b \\ a + b \\ c \\ d \\ c + d \\ a + c \\ b + d \\ 2 (a + b + c + d) \end{pmatrix} = A_{9 \times 4} \begin{pmatrix} a \\ b \\ c \\ d \end{pmatrix} $$ を満たす9行4列の行列\(A_{9 \times 4}\)であることがわかる。
これを解くと、 $$ A_{9 \times 4} = \begin{pmatrix} 1 & 0 & 0 & 0 \\ 0 & 1 & 0 & 0 \\ 1 & 1 & 0 & 0 \\ 0 & 0 & 1 & 0 \\ 0 & 0 & 0 & 1 \\ 0 & 0 & 1 & 1 \\ 1 & 0 & 1 & 0 \\ 0 & 1 & 0 & 1 \\ 2 & 2 & 2 & 2 \end{pmatrix} $$ となる。
行列の積\(XY\)が定義されるのは\(X\)の列数と\(Y\)の行数が等しいときだった。
行ベクトル、列ベクトルはそれぞれ列、行数が1である行列とみることができる。
積の結果の行列の型は\(X\)の行数と\(Y\)の列数で決まる。
\(A_f\)にベクトルをかける(積)という操作は、4項数ベクトル(成分ベクトル)を9項数ベクトル(成分ベクトル)へ対応させる操作と見ることができる。
この行列\(A_{9 \times 4}\)こそが、線形写像\(f\)の表現行列というわけだ。
検算 #
検算がてら、行列\(A_{9 \times 4}\)で\(V\)の元\(\begin{pmatrix} 7 & 2 \\ 3 & 11 \end{pmatrix}\)を写してみよう。
先程固定した基底の一次結合で表したときの成分ベクトルは $$ \begin{pmatrix} 7 \\ 2 \\ 3 \\ 11 \end{pmatrix} $$ となる。
表現行列との積を計算すると、 $$ \begin{pmatrix} 1 & 0 & 0 & 0 \\ 0 & 1 & 0 & 0 \\ 1 & 1 & 0 & 0 \\ 0 & 0 & 1 & 0 \\ 0 & 0 & 0 & 1 \\ 0 & 0 & 1 & 1 \\ 1 & 0 & 1 & 0 \\ 0 & 1 & 0 & 1 \\ 2 & 2 & 2 & 2 \end{pmatrix} \begin{pmatrix} 7 \\ 2 \\ 3 \\ 11 \end{pmatrix} = \begin{pmatrix} 7 \\ 2 \\ 9 \\ 3 \\ 11 \\ 14 \\ 10 \\ 13 \\ 46 \end{pmatrix} $$
Juliaのプログラムを用いた検算(クリックで展開)
import Printf
function main()
A = [
1 0 0 0;
0 1 0 0;
1 1 0 0;
0 0 1 0;
0 0 0 1;
0 0 1 1;
1 0 1 0;
0 1 0 1;
2 2 2 2;
];
x = [
7;
2;
3;
11;
];
Printf.@printf "A is %s\n" A;
Printf.@printf "x is %s\n" x;
Ax = A*x;
Printf.@printf "Ax is %s\n" Ax;
end
main()
実行結果
julia calc.jl
A is [1 0 0 0; 0 1 0 0; 1 1 0 0; 0 0 1 0; 0 0 0 1; 0 0 1 1; 1 0 1 0; 0 1 0 1; 2 2 2 2]
x is [7, 2, 3, 11]
Ax is [7, 2, 9, 3, 11, 14, 10, 13, 46]
と行き先の一次結合の成分ベクトルが得られるので、得られた成分で固定した基底の一次結合を計算すると $$ \begin{pmatrix} 7 & 2 & 9 \\ 3 & 11 & 14 \\ 10 & 13 & 46 \end{pmatrix} $$ となる。
\((A), \space (B)\)と比べれば、表現行列が線形写像\(f\)の具体的な計算方法を示しているのは明らかだろう。