0

体積とグラム行列

65
0
$$\newcommand{bm}[1]{\boldsymbol{#1}} \newcommand{disp}[0]{\displaystyle} \newcommand{Hom}[0]{\mathrm{Hom}} \newcommand{Im}[0]{\mathrm{Im}} \newcommand{Ker}[0]{\mathrm{Ker}} \newcommand{matab}[2]{\begin{pmatrix} #1 & #2 \end{pmatrix}} \newcommand{matac}[3]{\begin{pmatrix} #1 & #2 & #3 \end{pmatrix}} \newcommand{matad}[4]{\begin{pmatrix} #1 & #2 & #3 & #4 \end{pmatrix}} \newcommand{matba}[2]{\begin{pmatrix} #1 \\ #2 \end{pmatrix}} \newcommand{matbb}[4]{\begin{pmatrix} #1 & #2 \\ #3 & #4 \end{pmatrix}} \newcommand{matbc}[6]{\begin{pmatrix} #1 & #2 & #3 \\ #4 & #5 & #6 \end{pmatrix}} \newcommand{matca}[3]{\begin{pmatrix} #1 \\ #2 \\ #3 \end{pmatrix}} \newcommand{matcb}[6]{\begin{pmatrix} #1 & #2 \\ #3 & #4 \\ #5 & #6 \end{pmatrix}} \newcommand{matcc}[9]{\begin{pmatrix} #1 & #2 & #3 \\ #4 & #5 & #6 \\ #7 & #8 & #9 \end{pmatrix}} \newcommand{ZZ}[1]{\mathbb Z / #1 \mathbb Z} $$

 体積とグラム行列の関係についてググったところ、一般次元の場合まで証明付きで書かれているページがほとんど見つからなかったので、自分で書くことにしました。

定義と主張

 この記事では、「$\mathbb R^n$における$k$次元平行体の体積」と「グラム行列」の関係について見ていきます。まずは用語の定義から。

 $k$個のベクトル $\bm a_1, \ldots, \bm a_k \in \mathbb R^n$ の張る$k$次元平行体とは、集合
$$ \{ t_1 \bm a_1 + \cdots + t_k \bm a_k \in \mathbb R^n \ | \ 0 \leq t_i \leq 1 \ (i=1, \ldots, k) \}$$
のことを言う。

 これは、平行四辺形や平行六面体の一般化です。なお、$\bm a_1, \ldots, \bm a_k$ が1次独立であるとは仮定しません。したがって、$k>n$ であることも許します。ちなみに、後で見るように、1次従属なベクトルたちの張る$k$次元平行体の「$k$次元体積」は$0$になります。  

 ベクトル $\bm a_1, \ldots, \bm a_k \in \mathbb R^n$グラム行列とは、内積の値を並べた行列
$$ G(\bm a_1, \ldots, \bm a_k) = \matcc{\bm a_1 \cdot \bm a_1}{\cdots}{\bm a_1 \cdot \bm a_k}{\vdots}{}{\vdots}{\bm a_k \cdot \bm a_1}{\cdots}{\bm a_k \cdot \bm a_k}$$
のことを言う。ここで、内積は標準内積である。

 一般の内積を扱う場合や複素ベクトル空間上で考える場合もありますが、この記事では$\mathbb R^n$の標準内積のみを扱います。

 行列$A$$A = \matac{\bm a_1}{\cdots}{\bm a_k}$ で定めたとき、
$$ G(\bm a_1, \ldots, \bm a_k) = {}^t\!AA$$
と表せます。このときグラム行列を$G(A)$とも書きます。

 この記事の目標は、以下を示すことです。

 ベクトル $\bm a_1, \ldots, \bm a_k \in \mathbb R^n$ の張る$k$次元平行体の$k$次元体積は
$$ \sqrt{\det(G(\bm a_1, \ldots, \bm a_k))}$$
に等しい。

この主張は、「$\det(G(\bm a_1, \ldots, \bm a_k)) \geq 0$ が常に成り立つ」という主張も含んでいます。また、定理中に「$k$次元体積」という言葉が出てきましたが、これについては次節で見ていきます。

$k$次元平行体の$k$次元体積

 ここでは、$k$次元平行体の$k$次元体積を定義します。

 $\mathbb R^n$における一般の図形の$k$次元体積とは何か、という問題は意外と厄介です。例えば「曲面積の定義」などで検索してみれば、その難しさの一端を垣間見ることができると思います。この記事ではそのような問題には触れず、「$k$次元平行体の$k$次元体積」のみを扱います。

 この記事では、以下のように帰納的に定義することにします。

 1つのベクトル $\bm a \in \mathbb R^n$ の張る1次元平行体の1次元体積を、
$$ \mathrm{Vol}_1(\bm a) = ||\bm a||$$
で定める。

 $k \geq 2$ とする。$k$個のベクトル $\bm a_1, \ldots, \bm a_k \in \mathbb R^n$ の張る$k$次元平行体の、$\bm a_1, \ldots, \bm a_{k-1}$ の張る$k-1$次元平行体を底面としたときの高さを以下で定める: $\bm a_1, \ldots, \bm a_{k-1}$ の張る$\mathbb R^n$の部分空間を$W$とする。$\bm a_k$$W$の成分と$W$に垂直な成分に分解し、
$$ \bm a_k = \bm b + \bm c \qquad (\bm b \in W, \ \bm c \perp W)$$
とする(このような分解は一意に存在することが知られている)。このときの $||\bm c||$ を高さと定める。
 さらにこのとき、$\bm a_1, \ldots, \bm a_k$ の張る$k$次元平行体の$k$次元体積を、底面の$k-1$次元体積と高さの積、すなわち
$$ \mathrm{Vol}_k(\bm a_1, \ldots, \bm a_k) = ||\bm c|| \mathrm{Vol}_{k-1}(\bm a_1, \ldots, \bm a_{k-1})$$
によって定義する。

 少し長くなってしまいましたが、平行四辺形や平行六面体の場合を自然に一般化したものになっています。定義中にある $\bm a_k=\bm b + \bm c$ という分解は $\mathbb R^n = W \oplus W^{\perp}$ という等式から来るもので、この等式はちゃんとした線形代数の本であれば載っているはずです。
 なお、定義が $\bm a_1, \ldots, \bm a_k$ の並び順に依存してしまっていますが、定理1が証明できれば並び順によらないことも確かめられます(後述)。

証明

 では、定理1を証明します。もちろん帰納法を用います。

 $k=1$ のとき、$\bm a \in \mathbb R^n$ に対し
$$ \mathrm{Vol}_1(\bm a) = ||\bm a||$$
である。一方、$G(\bm a) = \bm a \cdot \bm a = ||\bm a||^2$ より $G(\bm a)$ は非負であり、
$$ \sqrt{\det(G(\bm a))} = ||\bm a||$$
であるから主張が成り立つ。

 $k \geq 2$ とし、$k-1$ 個のベクトルについては定理1が成り立つとする。$\bm a_1, \ldots, \bm a_k \in \mathbb R^n$ とする。$\bm a_1, \ldots, \bm a_{k-1}$ の張る$\mathbb R^n$の部分空間を$W$とし、
$$ \bm a_k = \bm b + \bm c \qquad (\bm b \in W, \ \bm c \perp W)$$
とおく。すると
$$ \mathrm{Vol}_k (\bm a_1, \ldots, \bm a_k) = ||\bm c|| \mathrm{Vol}_{k-1} (\bm a_1, \ldots, \bm a_{k-1})$$
である。
 ここで $\bm b \in W$ であるから、$\bm b$$\bm a_1, \ldots, \bm a_{k-1}$ の線形結合で表せる。
$$ \bm b = \lambda_1 \bm a_1 + \cdots + \lambda_{k-1} \bm a_{k-1}$$
とおくと
$$ \bm c = \bm a_k - \lambda_1 \bm a_1 - \cdots - \lambda_{k-1} \bm a_{k-1}$$
である。この式の形から、行列 $\matac{\bm a_1}{\cdots}{\bm a_k}$ に「ある列の定数倍を他の列に加える」という列基本変形を施すことで $\matad{\bm a_1}{\cdots}{\bm a_{k-1}}{\bm c}$ に変形することができる。この基本変形を表す正則行列を$P$とすれば
$$ \matad{\bm a_1}{\cdots}{\bm a_{k-1}}{\bm c} = \matac{\bm a_1}{\cdots}{\bm a_k}P$$
であり、さらに $\det P = 1$ となる。$A = \matac{\bm a_1}{\cdots}{\bm a_k}$, $A' = \matac{\bm a_1}{\cdots}{\bm a_{k-1}}$ とおけば、$\matab{A'}{\bm c} = AP$ と書ける。すると
$$ \begin{aligned}   G(A) &= {}^t\!AA\\   &= {}^t\!(\matab{A'}{\bm c}P^{-1})(\matab{A'}{\bm c}P^{-1})\\   &= {}^t\!P^{-1} \matba{{}^t\!A'}{{}^t\!\bm c} \matab{A'}{\bm c}P^{-1}\\   &= {}^t\!P^{-1} \matbb{G(A')}{\mathbf 0}{\mathbf 0}{||\bm c||^2} P^{-1} \end{aligned}$$
となる。ここで、最後の等号では $\bm c$$\bm a_1, \ldots, \bm a_{k-1}$ に直交することを用いた。したがって
$$ \det(G(A)) = \det \matbb{G(A')}{\mathbf 0}{\mathbf 0}{||\bm c||^2} = ||\bm c||^2 \det(G(A')) = ||\bm c||^2 \mathrm{Vol}_{k-1} (\bm a_1, \ldots, \bm a_{k-1})^2$$
となる。ここで、最後の等号では帰納法の仮定を用いた。最右辺は非負であるから、$\det(G(A)) \geq 0$である。平方根をとることで
$$ \sqrt{\det(G(A))} = ||\bm c|| \mathrm{Vol}_{k-1} (\bm a_1, \ldots, \bm a_{k-1})$$
となり、主張が成り立つ。

 定理1が証明できたので、並び順によらないことも示せます。

$\mathrm{Vol}_k(\bm a_1, \ldots, \bm a_k)$ の値は$\bm a_1,\ldots, \bm a_k$ の並び順によらない。

 $\bm a_1,\ldots, \bm a_k$ の並び替え $\bm a_{i_1}, \ldots, \bm a_{i_k}$ を考える。行列 $\matac{\bm a_1}{\cdots}{\bm a_k}$ に「列を入れ替える」という列基本変形を施せば $\matac{\bm a_{i_1}}{\cdots}{\bm a_{i_k}}$ が得られる。この基本変形を表す正則行列を$P$とすれば、
$$ \matac{\bm a_{i_1}}{\cdots}{\bm a_{i_k}} = \matac{\bm a_1}{\cdots}{\bm a_k} P$$
であり、さらに $\det P= \pm 1$ である。$A =\matac{\bm a_1}{\cdots}{\bm a_k}$, $A' = \matac{\bm a_{i_1}}{\cdots}{\bm a_{i_k}}$ とおけば、
$$ \begin{aligned} \mathrm{Vol}_k(\bm a_{i_1}, \ldots, \bm a_{i_k}) &= \sqrt{\det({}^t\!A'A')}\\ &=\sqrt{\det({}^t\!P \ {}^t\!AAP)}\\ &= \sqrt{(\det P)^2 \ \det({}^t\!AA)}\\ &= \mathrm{Vol}_k(\bm a_1, \ldots, \bm a_k) \end{aligned}$$
を得る。

 いやあ、基本変形って大事ですね。

1次独立性とグラム行列

 グラム行列は以下の性質を持ちます。

 ベクトル $\bm a_1, \ldots, \bm a_k \in \mathbb R^n$ が1次独立であるための必要十分条件は、$\det(G(\bm a_1, \ldots, \bm a_k)) \neq 0$ が成り立つことである。

 定理1を念頭に置けば、この性質は直感的に納得することができます。すなわち
$$ \begin{aligned}   \text{$\bm a_1, \ldots, \bm a_k$ が1次従属} \ &\Longleftrightarrow \ \text{$\bm a_1, \ldots, \bm a_k$ の張る$k$次元平行体が$k-1$次元以下に「つぶれて」いる}\\   &\Longleftrightarrow \ \text{$\bm a_1, \ldots, \bm a_k$ の張る$k$次元平行体の$k$次元体積が$0$}\\   &\Longleftrightarrow \ \text{$\det(G(\bm a_1, \ldots, \bm a_k)) = 0$} \end{aligned}$$
という具合です。

 一応ちゃんとした証明を書いておきましょう。直接「1次独立 $\Longleftrightarrow \ \det(G(\bm a_1, \ldots, \bm a_k)) \neq 0$」を示すか、代わりに「1次独立 $\Longleftrightarrow \ \mathrm{Vol}_k(\bm a_1, \ldots, \bm a_k) \neq 0$」を示すかという2通りの方針が考えられますが、どちらを書くか迷ったので両方書きます。

 $\bm a_1, \ldots, \bm a_k$ が1次独立 $\Longleftrightarrow \ \det(G(\bm a_1, \ldots, \bm a_k)) \neq 0$ を示す。$A = \matac{\bm a_1}{\cdots}{\bm a_k}$とおく。

$\bm a_1, \ldots, \bm a_k$ が1次独立 $\Longrightarrow$ $\det(G(A)) \neq 0$」について:

 対偶を示す。$\det(G(A)) = 0$ であるとする。このとき、ある$\mathbf 0$でないベクトル $\bm x \in \mathbb R^k$ が存在して

$$ G(A) \bm x = \mathbf 0,$$

すなわち

$$ {}^t\!AA\bm x = \mathbf 0$$

が成り立つ。両辺に左から${}^t\!\bm x$をかけると

$$ {}^t\!\bm x{}^t\!AA\bm x = 0$$

となる。すると

$$ \begin{aligned}  0 = {}^t\!\bm x{}^t\!AA\bm x  = {}^t\!(A\bm x)(A \bm x)  = ||A\bm x||^2 \end{aligned}$$

より、$A \bm x = \mathbf 0$ となる。$\bm x = \matca{x_1}{\vdots}{x_k}$ とおけばこれは

$$ x_1 \bm a_1 + \cdots x_k \bm a_k = \mathbf 0$$

を意味するので、$\bm x \neq \mathbf 0$ であったことから $\bm a_1, \ldots, \bm a_k$ は1次従属である。

$\det(G(A)) \neq 0$ $\Longrightarrow$ $\bm a_1, \ldots, \bm a_k$ が1次独立」について:

 $\det(G(A)) \neq 0$ であるとする。実数 $c_1, \ldots, c_k$

$$ c_1 \bm a_1 + \cdots + c_k \bm a_k = \mathbf 0$$

を満たしていると仮定する。このとき

$$ A \matca{c_1}{\vdots}{c_k} = \mathbf 0$$

である。両辺に左から ${}^t\!A$ をかければ

$$ G(A) \matca{c_1}{\vdots}{c_k} = \mathbf 0$$

となるが、$\det(G(A)) \neq 0$ であったので、両辺に左から $G(A)^{-1}$ をかけて

$$ \matca{c_1}{\vdots}{c_k} = \mathbf 0$$

を得る。したがって、$\bm a_1, \ldots, \bm a_k$ は1次独立である。

 $\bm a_1, \ldots, \bm a_k$ が1次独立 $\Longleftrightarrow \ \mathrm{Vol}_k(\bm a_1, \ldots, \bm a_k) \neq 0$ を示す。

 $k=1$ のとき、$\bm a \in \mathbb R^n$ の張る1次元平行体の1次元体積は$||\bm a||$であるから、
$$ \text{$\bm a$ が1次独立} \ \Longleftrightarrow \ \bm a \neq \mathbf 0 \ \Longleftrightarrow \ ||\bm a|| \neq 0 \ \Longleftrightarrow \ \mathrm{Vol}_1(\bm a) \neq 0$$
となり、成り立つ。

 $k \geq 2$ とし、$k-1$個のベクトルに対しては成り立つとする。$\bm a_1, \ldots, \bm a_{k-1}$ の張る$\mathbb R^n$の部分空間を$W$とし、
$$ \bm a_k = \bm b + \bm c \qquad (\bm b \in W, \ \bm c \perp W)$$
と分解しておく。

$\bm a_1, \ldots, \bm a_k$ が1次独立 $\Longrightarrow \ \mathrm{Vol}_k(\bm a_1, \ldots, \bm a_k) \neq 0$」について:

 $\bm a_1, \ldots, \bm a_k$ が1次独立であるとする。このとき $\bm a_1, \ldots, \bm a_{k-1}$ も1次独立であるので、帰納法の仮定から$$ \mathrm{Vol}_{k-1}(\bm a_1, \ldots, \bm a_{k-1}) \neq 0$$
である。また、$\bm c = \mathbf 0$ と仮定すると $\bm a_k = \bm b \in W$ となり、$\bm a_1, \ldots, \bm a_k$ が1次独立であったことに矛盾。よって $\bm c \neq \mathbf 0$ である。したがって
$$ \mathrm{Vol}_{k}(\bm a_1, \ldots, \bm a_{k}) = ||\bm c|| \mathrm{Vol}_{k-1}(\bm a_1, \ldots, \bm a_{k-1}) \neq 0$$
を得る。

$\mathrm{Vol}_k(\bm a_1, \ldots, \bm a_k) \neq 0 \ \Longrightarrow$ $\bm a_1, \ldots, \bm a_k$ が1次独立」について:

 $\mathrm{Vol}_k(\bm a_1, \ldots, \bm a_k) \neq 0$ であるとすると、$k$次元体積の定義から
$$ ||\bm c|| \mathrm{Vol}_{k-1}(\bm a_1, \ldots, \bm a_{k-1}) \neq 0,$$
すなわち $||\bm c|| \neq 0$ かつ $\mathrm{Vol}_{k-1}(\bm a_1, \ldots, \bm a_{k-1}) \neq 0$ となる。$||\bm c|| \neq 0$ から $\bm c \neq \mathbf 0$ であり、これは $\bm a_k \not\in W$ を意味する。また、帰納法の仮定から、$\mathrm{Vol}_{k-1}(\bm a_1, \ldots, \bm a_{k-1}) \neq 0$$\bm a_1, \ldots, \bm a_{k-1}$ が1次独立であることを意味する。ここで、実数 $c_1, \ldots, c_k$
$$ c_1 \bm a_1 + \cdots + c_k \bm a_k = \mathbf 0$$
を満たしているとする。もし $c_k \neq 0$ なら、$\bm a_k$$\bm a_1, \ldots, \bm a_{k-1}$ の線形結合で表せてしまい、$\bm a_k \not\in W$ に矛盾。したがって $c_k=0$ となる。さらに、$\bm a_1, \ldots, \bm a_{k-1}$ が1次独立であることから $c_1=\cdots = c_{k-1} = 0$ となるので、$\bm a_1, \ldots, \bm a_k$ は1次独立である。

有名公式の導出

 定理1は、いくつかのよく知られた公式を含んでいます。

$\mathbb R^n$における$n$次元平行体の$n$次元体積

 $n$個のベクトル $\bm a_1, \ldots, \bm a_n \in \mathbb R^n$ の張る$n$次元平行体の$n$次元体積は
$$ |\det \matac{\bm a_1}{\cdots}{\bm a_n}|$$
に等しい。

 $A = \matac{\bm a_1}{\cdots}{\bm a_n}$ とおけば、$A$は正方行列であり、$\det({}^t\!A) = \det A$ が成り立つ。よって
$$ \mathrm{Vol}_n(\bm a_1, \ldots, \bm a_n) = \sqrt{\det({}^t\!AA)} = \sqrt{(\det A)^2} = |\det \matac{\bm a_1}{\cdots}{\bm a_n}|$$

平行四辺形の面積の内積表示

 $\bm a, \bm b \in \mathbb R^n$ で張られる平行四辺形の面積は
$$ \sqrt{||\bm a||^2 ||\bm b||^2 - (\bm a \cdot \bm b)^2}$$
に等しい。

$$ \mathrm{Vol}_2(\bm a, \bm b) = \sqrt{\det(G(\bm a, \bm b))} = \sqrt{\det \matbb{\bm a \cdot \bm a}{\bm a \cdot \bm b}{\bm b \cdot \bm a}{\bm b \cdot \bm b}} = \sqrt{||\bm a||^2 ||\bm b||^2 - (\bm a \cdot \bm b)^2}$$

$\mathbb R^3$における平行四辺形の面積の外積表示

 ベクトル $\bm a=\matca {a_1}{a_2}{a_3}, \ \bm b=\matca {b_1}{b_2}{b_3}$ に対し、その外積は
$$ \bm a \times \bm b = \matca{a_2b_3 - a_3b_2}{a_3b_1-a_1b_3}{a_1b_2 - a_2b_1}$$
によって定義されます。

 $\bm a, \bm b \in \mathbb R^3$ で張られる平行四辺形の面積は
$$ |\bm a \times \bm b|$$
に等しい。

 $\mathrm{Vol}_2(\bm a,\bm b)^2 = \det(G(\bm a,\bm b))$なので、$\bm a=\matca {a_1}{a_2}{a_3}, \ \bm b=\matca {b_1}{b_2}{b_3}$として
$$ \det\left( \matbc{a_1}{a_2}{a_3}{b_1}{b_2}{b_3}\matcb{a_1}{b_1}{a_2}{b_2}{a_3}{b_3} \right) = (a_2b_3 - a_3b_2)^2 + (a_3b_1-a_1b_3)^2 + (a_1b_2 - a_2b_1)^2$$
を示せば良いことになります。成分を地道に計算すれば示せますが、この記事ではここまで「地道な成分計算」を極力避けてきたので、最後まで美しく決めたいところです。そこで、以下の公式を紹介します。

コーシー・ビネの公式

 $A$$m \times n$行列、$B$$n \times m$行列としたとき、
$$ \det(AB) = \sum_{1 \leq i_1 < \cdots < i_m \leq n} \det(A_{c(i_1, \ldots, i_m)})\det(B_{r(i_1, \ldots, i_m)})$$
が成り立つ。ここで、$A_{c(i_1, \ldots, i_m)}$$A$の第$i_1$列, $\ldots$, 第$i_m$列をこの順に左から並べてできる行列、$B_{r(i_1, \ldots, i_m)}$$B$の第$i_1$行, $\ldots$, 第$i_m$行をこの順に上から並べてできる行列である。

 積の行列式の公式 $|AB| = |A||B|$ を、正方行列とは限らない行列まで一般化した公式です。証明は、 Wikipedia もしくは 高校数学の美しい物語 の記事をご覧下さい。ちなみに、前者は地道な成分計算によるもの、後者は地道な成分計算を避けたものになっています。

 コーシー・ビネの公式は、まさに
$$ \det\left( \matbc{a_1}{a_2}{a_3}{b_1}{b_2}{b_3}\matcb{a_1}{b_1}{a_2}{b_2}{a_3}{b_3} \right) = (a_2b_3 - a_3b_2)^2 + (a_3b_1-a_1b_3)^2 + (a_1b_2 - a_2b_1)^2$$
が成り立つことを意味します(確かめてみて下さい)。したがって、命題6が成り立ちます。無事、地道な成分計算を避けることができました。

 コーシー・ビネの公式を用いれば、より一般的な公式を得ることもできます。

 ベクトル $\bm a_1, \ldots, \bm a_k \in \mathbb R^n$ に対し、$A = \matac{\bm a_1}{\cdots}{\bm a_k}$ とおく。このとき、$\bm a_1, \ldots, \bm a_k$ の張る$k$次元平行体の$k$次元体積は
$$ \sqrt{\sum_{i_1 < \cdots < i_k}(\det(A_{r(i_1, \ldots, i_k)}))^2}$$
に等しい。

おわりに

 途中でも触れましたが、この記事は「地道な成分計算」を極力避けて書きました。けっこう上手くいったので満足してます。特に、定理1の正射影や基本変形を利用した証明は我ながら傑作ではないかと思っています。
 あと、コーシー・ビネの公式はもっと知られてても良いと思ってます。ぜひ覚えていって下さい。

 ではまた

2025/8/12 追記:
同じ方針による証明が既にありました。 記事はこちら。 さらにその記事で参考文献としてあげられている論文は こちら。
「グラム行列」という言葉を使っていなかったので、以前検索したときには引っかからなかったようです。まあ、内容が丸被りという訳ではないので、私の記事にも存在意義はあると信じます。

投稿日:722
更新日:812
OptHub AI Competition

この記事を高評価した人

高評価したユーザはいません

この記事に送られたバッジ

バッジはありません。

投稿者

koumei
koumei
29
5104
(2023/11/30)別名義を使ってましたが、OMCでの名義に揃えました。

コメント

他の人のコメント

コメントはありません。
読み込み中...
読み込み中