エレファント・ビジュアライザー調査記録

ビジュアルプログラミングで数式の変形を表すことを考えていくブロクです。

現代数学のエレファント(7)

逆行列行列式の関係

記法

 K を体、 V K 上の  n 次元ベクトル空間、 \{e_1, e_2, \cdots, e_n\} V の基底とします。 f_j \in V^{*} f_j(e_i) = \delta_{ij} g_i \in \mathcal{L}(K, V) g_i(a) = ae_i とおくと、 \mathcal{L}(V, V) の元は  \displaystyle \sum_{i=1}^{n} \sum_{j=1}^{n} a_{ij} g_i f_j ( a_{ij} \in K)と表すことができます。

 a_1, a_2, \cdots, a_n \in \mathcal{L}(K, V) に対して  f^*(a_1, a_2, \cdots, a_n) \in \mathcal{L}(V, V)

  •  f^*(a_1, a_2, \cdots, a_n) = a_1 f_1 + a_2 f_2 + \cdots + a_n f_n

とします。

 b_1, b_2, \cdots, b_n \in \mathcal{L}(V, K) に対して  g^*(b_1, b_2, \cdots, b_n) \in \mathcal{L}(V, V)

  •  g^*(b_1, b_2, \cdots, b_n) = g_1 b_1 + g_2 b_2 + \cdots + g_n b_n

とします。

  •  f^*(a_1, a_2, \cdots, a_k) = f^*(a_1, a_2, \cdots, a_k, g_{k+1}, \cdots, g_n)
  •  g^*(b_1, b_2, \cdots, b_k) = g^*(b_1, b_2, \cdots, b_k, f_{k+1}, \cdots, f_n)

と書くことにします。

記法については今後検討します。

行列式の成分による表示方法

 X = \{1, 2, \cdots, n\} の置換( X から  X への全単射)全体の集合を  S_n = \operatorname{Sym}(X) とおきます。 s \in S_n に対して
 \displaystyle r_s = \sum_{i=1}^{n} g_i f_{s(i)} = g^*(f_{s(1)}, f_{s(2)}, \cdots, f_{s(n)})
 \displaystyle c_s = \sum_{i=1}^{n} g_{s(i)} f_i = f^*(g_{s(1)}, g_{s(2)}, \cdots, g_{s(n)})
とおきます。 \displaystyle e= \bigwedge_{i=1}^{n} \sum_{j=1}^{n} g_i f_j とおくと
 \displaystyle (\det r_s) e = \bigwedge_{k=1}^{n} g_k f_k \sum_{i=1}^{n} g_i f_{s(i)} = \bigwedge_{k=1}^{n} g_k f_k g^*(f_{s(1)}, f_{s(2)}, \cdots, f_{s(n)}) = \bigwedge_{k=1}^{n} g_k f_{s(k)}
 \displaystyle (\det c_s) e = \bigwedge_{k=1}^{n} g_k f_k \sum_{i=1}^{n} g_{s(i)} f_i = \bigwedge_{k=1}^{n} g_k f_k f^*(g_{s(1)}, g_{s(2)}, \cdots, g_{s(n)}) = \bigwedge_{k=1}^{n} g_k f_{s^{-1}(k)}
より
 \displaystyle (\det c_s) e = \bigwedge_{k=1}^{n} g_k f_{s^{-1}(k)} = \bigwedge_{l=1}^{n} g_l f_{s^{-1}(l) }= \bigwedge_{k=1}^{n} g_k f_{s(k)} = (\det r_s) e
となります。

 \operatorname{sgn} s = \det r_s = \det c_s とおきます。 \displaystyle \alpha = \sum_{i=1}^{n} \sum_{j=1}^{n} a_{ij} g_i f_j に対して
 \hspace{1em} \begin{eqnarray*}
(\det \alpha) e & = & \bigwedge_{i=1}^{n} \sum_{j=1}^{n} a_{ij} g_i f_j \\
 & = & \left(\sum_{j=1}^{n} a_{1j} g_1 f_j \right) \wedge \cdots \wedge \left(\sum_{j=1}^{n} a_{nj} g_n f_j \right) \\
 & = & \sum_{j_1,\cdots, j_n=1}^{n} a_{1j_1} \cdots a_{nj_n} ( g_1 f_{j_1} \wedge \cdots \wedge g_n f_{j_n} ) \\
 & = & \sum_{\{j_1,\cdots, j_n\}=\{1,\cdots,n\}} a_{1j_1} \cdots a_{nj_n} ( g_1 f_{j_1} \wedge \cdots \wedge g_n f_{j_n} ) \\
 & = & \sum_{s \in S_n} a_{1,s(1)} \cdots a_{n,s(n)} ( g_1 f_{s(1)} \wedge \cdots \wedge g_n f_{s(n)} ) \\
 & = & \sum_{s \in S_n} (\operatorname{sgn} s) a_{1,s(1)} \cdots a_{n,s(n)} e \\
\end{eqnarray*}
より  \displaystyle \det \alpha = \sum_{s \in S_n} (\operatorname{sgn} s) a_{1,s(1)} \cdots a_{n,s(n)} が成り立ちます。

掃き出し法で行列式を計算する方法(1)

 \displaystyle \alpha = \sum_{i=1}^{n} \sum_{j=1}^{n} a_{n,i,j} g_i f_j \displaystyle \alpha_k = \left( \sum_{i=1}^{k} \sum_{j=1}^{k} a_{k, i, j} g_i f_j \right) + \left( \sum_{i=k+1}^{n} \sum_{j=1}^{n} g_i f_j \right) とおくと  \alpha = \alpha_n となります。

 \psi'_{k} = g^*(f_1, \cdots, f_{k-1}, \cfrac{1}{a_{k,k,k}} f_k)
 \psi''_{k} = g^*(f_1 - a_{k,1,k} f_k, \cdots, f_{k-1} - a_{k,k-1,k} f_k, f_k)
 \psi_k = \psi''_{k} \psi'_{k}
 \sigma_k = g^*(f_1, \cdots, f_{k-1}, f_k - (\cfrac{a_{k,k,1}}{a_{k,k,k}} f_1 + \cdots + \cfrac{a_{k,k,k-1}}{a_{k,k,k}} f_{k-1}))
とおき、 a_{k, i, j} については  a_{k-1, i, j} = \cfrac{a_{k, i, j} a_{k, k, k} - a_{k, i, k} a_{k, k, j}}{a_{k, k, k}} を満たすとすると、 \alpha_{k-1} = \psi_k \alpha_k となります。 \alpha_{k-1} \alpha_{k} に対して「順序が決められた掃き出し法」で「前進消去」を1回だけ行ったものとなります。 \sigma_k は「後退代入」を1回だけ行う操作となります。連立一次方程式に関する掃き出し法では変数の順序や式の順序は決まっていないのですが、ここでは行列に関する掃き出し法のように順序が決まっているものとするので「順序が決められた掃き出し法」ということにします。

 \varphi_{n} = \sigma_n \cdots \sigma_1 \psi_1 \cdots \psi_n とおくと上記の掃き出し法により  \varphi_{n} \alpha = 1_V となります。 1_V V の恒等写像とします。

 \det \psi'_{k} = \det g^*(f_1, \cdots, f_{k-1}, \cfrac{1}{a_{k,k,k}} f_k) = \cfrac{1}{a_{k,k,k}} \det \psi''_{k} = \det g^*(f_1 - a_{k,1,k} f_k, \cdots, f_{k-1} - a_{k,k-1,k} f_k, f_k) = 1 より  \det \psi_k = \cfrac{1}{a_{k,k,k}} \det \sigma_k = \det g^*(f_1, \cdots, f_{k-1}, f_k - (\cfrac{a_{k,k,1}}{a_{k,k,k}} f_1 + \cdots + \cfrac{a_{k,k,k-1}}{a_{k.k.k}} f_{k-1})) = 1 となります。よって
 \hspace{1em} \begin{eqnarray*}
\det \varphi_{n} & = & (\det \sigma_n) \cdots (\det \sigma_1) (\det \psi_1) \cdots (\det \psi_n) \\
 & = & \cfrac{1}{a_{1,1,1} a_{2,2,2} \cdots a_{n,n,n}}
\end{eqnarray*}
となって  a_{1,1,1} a_{2,2,2} \cdots a_{n,n,n} \ne 0 ならば  \det \alpha = a_{1,1,1} a_{2,2,2} \cdots a_{n,n,n} となります。

掃き出し法で行列式を計算する方法(2)

 a_{k,k,k} で割らずに行列式を求めることを考えます。 \bar{\psi}'_{k} = a_{k,k,k} \psi'_{k} \bar{\psi}_{k} = \psi''_{k} \bar{\psi}'_{k} \bar{\sigma}_{k} = a_{k,k,k} \sigma_{k} とおきます。 \det \bar{\psi}_{k} = a_{k,k,k}^{n-1} \det \bar{\sigma}_{k} = a_{k,k,k}^n となります。

 \bar{\varphi}_{n} = \bar{\sigma}_n \cdots \bar{\sigma}_1 \bar{\psi}_1 \cdots \bar{\psi}_n とおくと
 \bar{\varphi}_{n} \alpha = (a_{1,1,1} a_{2,2,2} \cdots a_{n,n,n})^2 \varphi_{n} \alpha = (a_{1,1,1} a_{2,2,2} \cdots a_{n,n,n})^2 1_V
より  (\det \bar{\varphi}_{n}) (\det \alpha) = (a_{1,1,1} a_{2,2,2} \cdots a_{n,n,n})^{2n} が成り立ちます。
 \hspace{1em} \begin{eqnarray*}
\det \bar{\varphi}_{n} & = & (\det \bar{\sigma}_n) \cdots (\det \bar{\sigma}_1) (\det \bar{\psi}_1) \cdots (\det \bar{\psi}_n) \\
 & = & (a_{1,1,1} a_{2,2,2} \cdots a_{n,n,n})^{2n-1} \\
\end{eqnarray*}
より
 (a_{1,1,1} a_{2,2,2} \cdots a_{n,n,n})^{2n-1} (\det \alpha) = (\det \bar{\varphi}_{n}) (\det \alpha) = (a_{1,1,1} a_{2,2,2} \cdots a_{n,n,n})^{2n}
が成り立ちます。

ここで  a_{11}, \cdots, a_{1n}, \cdots, a_{n1}, \cdots, a_{nn} を変数(不定元)と考えて  K(a_{11}, \cdots, a_{1n}, \cdots, a_{n1}, \cdots, a_{nn}) で考えると、行列式は成分の有理式で表すことができるので  \det \alpha = a_{1,1,1} a_{2,2,2} \cdots a_{n,n,n} が成り立ちます。

逆行列行列式で表す方法

 \displaystyle \alpha = \sum_{i=1}^{n} \sum_{j=1}^{n} a_{ij} g_i f_j \displaystyle \beta = \sum_{i=1}^{n} \sum_{j=1}^{n} b_{ij} g_i f_j \alpha \beta = 1_V とします。

 a_k = \alpha g_k とおくと  \displaystyle a_k = \alpha g_k = \sum_{i=1}^{n} \sum_{j=1}^{n} a_{ij} g_i f_j g_k = \sum_{i=1}^{n} a_{ik} g_i f_k g_k = \sum_{i=1}^{n} a_{ik} g_i となって  \alpha = f^*(a_{1}, a_{2}, \cdots, a_{n}) となります。

 b_k = \beta g_k とおくと  \beta = f^*(b_{1}, b_{2}, \cdots, b_{n}) となります。

 \begin{eqnarray*}
 & & \alpha f^*(g_{1}, \cdots, g_{k-1}, b_j, g_{k+1}, \cdots, g_{n}) \\
 & = & f^*(a_{1}, \cdots, a_{k-1}, g_j, a_{k+1}, \cdots, a_{n})
\end{eqnarray*}
となります。この行列式を考えると
 \begin{eqnarray*}
 & & (\det \alpha) (\det f^*(g_{1}, \cdots, g_{k-1}, b_j, g_{k+1}, \cdots, g_{n})) \\
 & = & \det f^*(a_{1}, \cdots, a_{k-1}, g_j, a_{k+1}, \cdots, a_{n})
\end{eqnarray*}
となって  \det f^*(g_{1}, \cdots, g_{k-1}, b_j, g_{k+1}, \cdots, g_{n}) = b_{kj} なので  \det \alpha \ne 0 のとき
 b_{ij} = \cfrac{1}{\det \alpha} \det f^*(a_{1}, \cdots, a_{i-1}, g_j, a_{i+1}, \cdots, a_{n})
となります。