コンテンツにスキップ

行列式とその性質:符号付き体積としての det

前提:行列と連立一次方程式:線形写像の座標表示と解の構造

生 Markdown
  • 行列式 detA\det A は、nn 個の列ベクトルに数を対応させる写像のうち、各列について線形(多重線形性)・同じ列が 2 本あれば 00(交代性)・単位行列で 11(正規化)という 3 条件を満たすものとしてただ一つに定まります。ライプニッツの公式も余因子展開も、この特徴づけから導かれる表示式にすぎません。
  • det(AB)=detAdetB\det(AB) = \det A \cdot \det B が成り立ちます。これは「変換を合成すると体積の拡大率は掛け算になる」という幾何的事実の代数版です。
  • detA0\det A \ne 0 であること、AA が正則であること、AA の列ベクトルが一次独立であること、Ax=0A\boldsymbol{x} = \boldsymbol{0} が自明な解しか持たないことは、すべて同値です。行列式は「空間がつぶれているかどうか」を 1 個の数で判定する道具です。
  • detA|\det A| は単位立方体が AA によって写った平行体の体積であり、符号は変換が向きを保つか裏返すかを表します。
  • 実際の数値計算にライプニッツの公式(n!n! 項の和)は使いません。行基本変形で三角化すれば乗除算 O(n3)O(n^3) 回で済みます。

1. 動機:解けるかどうかを 1 個の数で言い当てる

Section titled “1. 動機:解けるかどうかを 1 個の数で言い当てる”

2 元 1 次連立方程式

{ax+by=pcx+dy=q\begin{cases} ax + by = p \\ cx + dy = q \end{cases}

を素朴に解いてみます。第 1 式を dd 倍、第 2 式を bb 倍して差を取ると (adbc)x=pdbq(ad-bc)x = pd - bq、第 1 式を cc 倍、第 2 式を aa 倍して差を取ると (adbc)y=aqpc(ad-bc)y = aq - pc が得られます。したがって adbc0ad - bc \ne 0 でありさえすれば

x=pdbqadbc,y=aqpcadbcx = \frac{pd - bq}{ad - bc}, \qquad y = \frac{aq - pc}{ad - bc}

と解が確定します。逆に adbc=0ad - bc = 0 のときは、左辺だけを見ても解が一意に決まらない状況(解なし、または無数の解)が起こります。係数だけから作った 1 個の数 adbcad-bc が、右辺 p,qp, q に依らずに「解けるかどうか」を判定しているわけです。

3 元 1 次の場合に同じ計算を押し進めると、判定を担う数は

a11a22a33+a12a23a31+a13a21a32a13a22a31a11a23a32a12a21a33a_{11}a_{22}a_{33} + a_{12}a_{23}a_{31} + a_{13}a_{21}a_{32} - a_{13}a_{22}a_{31} - a_{11}a_{23}a_{32} - a_{12}a_{21}a_{33}

という 6 項の和になります。ここで素朴な疑問が二つ生まれます。第一に、一般の nn 元 1 次連立方程式に対して、この「判定する数」はどう書けるのか。第二に、なぜそんな数が存在するのか、つまり n2n^2 個の係数のあいだの複雑な関係が、どうして 1 個のスカラーに凝縮できるのか。

第一の問いには 17 世紀末から答えが出ています。関孝和は 1683 年の『解伏題之法』で消去法の途中に現れる式として、ライプニッツは 1693 年のロピタル宛書簡で同様の式を扱いました。クラメルは 1750 年の著書で nn 元連立一次方程式の解を分数の形で書き下しています。行列式の一般論として整理され、determinant という呼び名が今日の意味で定着したのは 19 世紀初頭のコーシーの仕事によります。

この記事では第一の問いに二通りの答えを与えます。**置換の符号を使った明示式(ライプニッツの公式)**と、次数を 1 つ下げる帰納的な式(余因子展開)です。この二つは見た目がまったく違いますが、どちらも同じ関数を表します。そして第二の問いへの答えが、その「同じ関数」の正体、すなわち多重線形性と交代性です。行列式は、この二つの性質と正規化条件だけで一意に決まってしまう関数であり、二つの公式はその関数の別々の計算手順にすぎません。

さらに最終節で、行列式が本質的には符号付き体積であることを見ます。連立方程式が一意に解けないのは、係数行列の定める線形変換が空間をつぶして次元を落としているからであり、「つぶれている」ことは「体積が 00」ということです。adbcad - bc が判定に使えた理由は、それが平行四辺形の面積だったから、というのが最終的な答えになります。

なお、行列の積・逆行列・連立一次方程式の掃き出し法については 行列と連立一次方程式 を前提とします(積の定義は 定義 4.1[行列と連立一次方程式]、掃き出し法は 定理 7.4[行列と連立一次方程式] を見てください)。

この記事を通じて K\mathbb{K}R\mathbb{R} または C\mathbb{C} を表します(以下の議論は一般の可換体でもそのまま通用します)。nn 次正方行列全体を Mn(K)M_n(\mathbb{K}) と書き、A=(aij)Mn(K)A = (a_{ij}) \in M_n(\mathbb{K}) の第 jj 列を ajKn\boldsymbol{a}_j \in \mathbb{K}^n として

A=(a1 a2  an)A = (\boldsymbol{a}_1\ \boldsymbol{a}_2\ \cdots\ \boldsymbol{a}_n)

と列に区切って書きます。e1,,en\boldsymbol{e}_1, \ldots, \boldsymbol{e}_nKn\mathbb{K}^n の標準基底、InI_n は単位行列、OO は零行列です。

行列式の定義には、nn 個の行番号を並べ替える操作を数え上げる道具が必要です。

定義 2.1置換とその符号

{1,2,,n}\{1, 2, \ldots, n\} から自分自身への全単射を nn 次の置換といい、置換全体の集合を SnS_n と書きます。SnS_n は写像の合成 (στ)(i)=σ(τ(i))(\sigma\tau)(i) = \sigma(\tau(i)) について群をなし、SnS_n の元の個数は n!n! です。

相異なる p,qp, q について pqp \mapsto qqpq \mapsto p とし、他はすべて動かさない置換を互換といい (p q)(p\ q) と書きます。

σSn\sigma \in S_n に対し、順序が食い違う番号の組の個数

inv(σ)=#{(i,j)1i<jn, σ(i)>σ(j)}\mathrm{inv}(\sigma) = \#\{(i, j) \mid 1 \le i < j \le n,\ \sigma(i) > \sigma(j)\}

σ\sigma転倒数といい、sgn(σ)=(1)inv(σ)\mathrm{sgn}(\sigma) = (-1)^{\mathrm{inv}(\sigma)}σ\sigma符号といいます。sgn(σ)=1\mathrm{sgn}(\sigma) = 1 のとき σ\sigma を偶置換、1-1 のとき奇置換といいます。

たとえば σ(1)=3, σ(2)=1, σ(3)=2\sigma(1) = 3,\ \sigma(2) = 1,\ \sigma(3) = 2 という置換では、組 (1,2)(1,2)3>13 > 1 で転倒、(1,3)(1,3)3>23 > 2 で転倒、(2,3)(2,3)1<21 < 2 で転倒しません。よって inv(σ)=2\mathrm{inv}(\sigma) = 2sgn(σ)=+1\mathrm{sgn}(\sigma) = +1 です。

符号の扱いやすさは、次の補題に尽きます。証明には差積

Δ(x1,,xn)=1i<jn(xjxi)\Delta(x_1, \ldots, x_n) = \prod_{1 \le i < j \le n} (x_j - x_i)

という多項式を使います。これは変数の入れ替えに対して符号だけを変える、という性質を持つ最も単純な多項式です。

補題 2.2符号の基本性質

n2n \ge 2 とし、σ,τSn\sigma, \tau \in S_n とします。このとき次が成り立ちます。

  1. 多項式の恒等式として Δ(xσ(1),,xσ(n))=sgn(σ)Δ(x1,,xn)\Delta(x_{\sigma(1)}, \ldots, x_{\sigma(n)}) = \mathrm{sgn}(\sigma)\, \Delta(x_1, \ldots, x_n)
  2. sgn(στ)=sgn(σ)sgn(τ)\mathrm{sgn}(\sigma\tau) = \mathrm{sgn}(\sigma)\,\mathrm{sgn}(\tau)。また sgn(id)=1\mathrm{sgn}(\mathrm{id}) = 1sgn(σ1)=sgn(σ)\mathrm{sgn}(\sigma^{-1}) = \mathrm{sgn}(\sigma)
  3. 任意の互換 (p q)(p\ q) に対し sgn((p q))=1\mathrm{sgn}((p\ q)) = -1
  4. 任意の σSn\sigma \in S_n は有限個の互換の積として書け、σ\sigmakk 個の互換の積で書けたならば sgn(σ)=(1)k\mathrm{sgn}(\sigma) = (-1)^k である。とくに互換の個数の偶奇は書き方によらない。
証明(補題 2.2)

(1) Δ(xσ(1),,xσ(n))=i<j(xσ(j)xσ(i))\Delta(x_{\sigma(1)}, \ldots, x_{\sigma(n)}) = \prod_{i < j}(x_{\sigma(j)} - x_{\sigma(i)}) です。σ\sigma は全単射なので、{i,j}\{i, j\}{σ(i),σ(j)}\{\sigma(i), \sigma(j)\} に対応させる写像は 2 元部分集合全体の上への 1 対 1 対応です。したがって右辺の各因子は、符号を除けば Δ(x1,,xn)\Delta(x_1,\ldots,x_n) の因子とちょうど 1 対 1 に対応します。因子 xσ(j)xσ(i)x_{\sigma(j)} - x_{\sigma(i)}(ここで i<ji < j)は、σ(i)<σ(j)\sigma(i) < \sigma(j) ならそのまま Δ\Delta の因子であり、σ(i)>σ(j)\sigma(i) > \sigma(j) なら (xσ(i)xσ(j))-(x_{\sigma(i)} - x_{\sigma(j)}) と符号が 1 つ出ます。後者が起きる組の個数はちょうど inv(σ)\mathrm{inv}(\sigma) ですから、全体として (1)inv(σ)Δ=sgn(σ)Δ(-1)^{\mathrm{inv}(\sigma)}\Delta = \mathrm{sgn}(\sigma)\Delta となります。

(2) (1) は多項式の恒等式なので、変数に何を代入しても成り立ちます。yi=xσ(i)y_i = x_{\sigma(i)} とおくと yτ(i)=xσ(τ(i))=x(στ)(i)y_{\tau(i)} = x_{\sigma(\tau(i))} = x_{(\sigma\tau)(i)} ですから、

sgn(στ)Δ(x)=Δ(x(στ)(1),,x(στ)(n))=Δ(yτ(1),,yτ(n))=sgn(τ)Δ(y1,,yn)=sgn(τ)Δ(xσ(1),,xσ(n))=sgn(τ)sgn(σ)Δ(x)\begin{aligned} \mathrm{sgn}(\sigma\tau)\,\Delta(x) &= \Delta(x_{(\sigma\tau)(1)}, \ldots, x_{(\sigma\tau)(n)}) = \Delta(y_{\tau(1)}, \ldots, y_{\tau(n)}) \\ &= \mathrm{sgn}(\tau)\,\Delta(y_1, \ldots, y_n) = \mathrm{sgn}(\tau)\,\Delta(x_{\sigma(1)}, \ldots, x_{\sigma(n)}) = \mathrm{sgn}(\tau)\,\mathrm{sgn}(\sigma)\,\Delta(x) \end{aligned}

が得られます。Δ\Delta は零多項式ではないので両辺の係数を比べて sgn(στ)=sgn(σ)sgn(τ)\mathrm{sgn}(\sigma\tau) = \mathrm{sgn}(\sigma)\mathrm{sgn}(\tau) です。id\mathrm{id} には転倒がないので sgn(id)=1\mathrm{sgn}(\mathrm{id}) = 1、これと σσ1=id\sigma\sigma^{-1} = \mathrm{id} から sgn(σ)sgn(σ1)=1\mathrm{sgn}(\sigma)\mathrm{sgn}(\sigma^{-1}) = 1、符号は ±1\pm 1 しか取らないので sgn(σ1)=sgn(σ)\mathrm{sgn}(\sigma^{-1}) = \mathrm{sgn}(\sigma) です。

(3) τ=(p q)\tau = (p\ q)p<qp < q として転倒数を直接数えます。転倒する組は次の 3 種類しかありません。組 (p,q)(p, q) 自身は τ(p)=q>p=τ(q)\tau(p) = q > p = \tau(q) で転倒します(1 個)。p<k<qp < k < q なる kk に対する組 (p,k)(p, k)τ(p)=q>k=τ(k)\tau(p) = q > k = \tau(k) で転倒します(qp1q - p - 1 個)。同じ kk に対する組 (k,q)(k, q)τ(k)=k>p=τ(q)\tau(k) = k > p = \tau(q) で転倒します(qp1q - p - 1 個)。これ以外の組は両方の番号が固定されるか、片方だけが pp または qqkk が区間の外にある場合であり、大小関係は変わりません。よって inv(τ)=2(qp1)+1\mathrm{inv}(\tau) = 2(q - p - 1) + 1 は奇数で、sgn(τ)=1\mathrm{sgn}(\tau) = -1 です。

(4) 互換の積で書けることを σ\sigma が動かす番号の個数に関する帰納法で示します。σ=id\sigma = \mathrm{id} なら空積(互換 0 個の積)と見なします。σid\sigma \ne \mathrm{id} なら σ(m)m\sigma(m) \ne m なる mm を取り、σ=(m σ(m))σ\sigma' = (m\ \sigma(m))\,\sigma とおくと σ(m)=m\sigma'(m) = m となり、さらに σ\sigma が固定していた番号は σ\sigma' でも固定されます。よって σ\sigma' が動かす番号は σ\sigma より真に少なく、帰納法の仮定から σ\sigma' は互換の積で書けます。(m σ(m))(m\ \sigma(m)) は自分自身が逆元なので σ=(m σ(m))σ\sigma = (m\ \sigma(m))\,\sigma' もそうです。後半は (2) と (3) から直ちに従います。

3 次の場合の 6 項の和をよく見ると、各項は「各列からちょうど 1 個ずつ、しかも互いに異なる行から」成分を選んだ積になっています。列 1,2,,n1, 2, \ldots, n に対して選ぶ行番号を σ(1),σ(2),,σ(n)\sigma(1), \sigma(2), \ldots, \sigma(n) と書けば、σ\sigma は置換にほかなりません。符号は置換の符号として付きます。これを一般の nn でそのまま定義に採用します。

定義 3.1行列式(ライプニッツの公式)

A=(aij)Mn(K)A = (a_{ij}) \in M_n(\mathbb{K}) に対し、

detA=σSnsgn(σ)aσ(1)1aσ(2)2aσ(n)n=σSnsgn(σ)j=1naσ(j)j\det A = \sum_{\sigma \in S_n} \mathrm{sgn}(\sigma)\, a_{\sigma(1)1}\, a_{\sigma(2)2} \cdots a_{\sigma(n)n} = \sum_{\sigma \in S_n} \mathrm{sgn}(\sigma) \prod_{j=1}^{n} a_{\sigma(j)\,j}

AA行列式といいます。detA\det AA|A| のほか、成分を縦棒で囲んで書くこともあります。

和は n!n! 項からなり、そのうち半分が正、半分が負の符号を持ちます。定義を小さい nn で書き下してみます。

  • n=1n = 1S1={id}S_1 = \{\mathrm{id}\} なので det(a11)=a11\det (a_{11}) = a_{11}

  • n=2n = 2S2={id,(1 2)}S_2 = \{\mathrm{id}, (1\ 2)\} で符号はそれぞれ +1,1+1, -1 ですから

    det(a11a12a21a22)=a11a22a21a12.\det \begin{pmatrix} a_{11} & a_{12} \\ a_{21} & a_{22} \end{pmatrix} = a_{11}a_{22} - a_{21}a_{12}.

    §1 で解の判定に現れた adbcad - bc が再現されました。

  • n=3n = 3S3S_3 の 6 元のうち、id\mathrm{id} と 2 つの 3 次巡回置換が偶置換(符号 +1+1)、3 つの互換が奇置換(符号 1-1)です。したがって

    detA=a11a22a33+a13a21a32+a12a23a31a13a22a31a11a23a32a12a21a33\det A = a_{11}a_{22}a_{33} + a_{13}a_{21}a_{32} + a_{12}a_{23}a_{31} - a_{13}a_{22}a_{31} - a_{11}a_{23}a_{32} - a_{12}a_{21}a_{33}

    となり、これも §1 の式と一致します。3×33 \times 3 に限っては「右下がりの 3 本の積を足し、右上がりの 3 本の積を引く」というサラスの規則として覚えられますが、この覚え方は 44 次以上では成り立ちません44 次の項数は 4!=244! = 24 であり、たすき掛けで得られる 8 項ではまったく足りません)。

例 3.23 次行列式を定義どおり計算する

A=(213041522)A = \begin{pmatrix} 2 & -1 & 3 \\ 0 & 4 & 1 \\ 5 & 2 & -2 \end{pmatrix}

の行列式を、上の 6 項の式にそのまま代入して求めます。

a11a22a33=24(2)=16,a13a21a32=302=0,a12a23a31=(1)15=5,a13a22a31=345=60,a11a23a32=212=4,a12a21a33=(1)0(2)=0.\begin{aligned} a_{11}a_{22}a_{33} &= 2 \cdot 4 \cdot (-2) = -16, \\ a_{13}a_{21}a_{32} &= 3 \cdot 0 \cdot 2 = 0, \\ a_{12}a_{23}a_{31} &= (-1) \cdot 1 \cdot 5 = -5, \\ a_{13}a_{22}a_{31} &= 3 \cdot 4 \cdot 5 = 60, \\ a_{11}a_{23}a_{32} &= 2 \cdot 1 \cdot 2 = 4, \\ a_{12}a_{21}a_{33} &= (-1) \cdot 0 \cdot (-2) = 0. \end{aligned}

前半 3 つを足し、後半 3 つを引いて

detA=(16+05)(60+4+0)=2164=85\det A = (-16 + 0 - 5) - (60 + 4 + 0) = -21 - 64 = -85

を得ます。この値は後で 定理 5.2 による展開でも確かめられます。

ライプニッツの公式は計算の道具としては非効率ですが(§9 で見ます)、理論的には非常に見通しがよいという長所があります。定義式の対称性を眺めるだけで得られる性質を二つ挙げておきます。

命題 3.3転置不変性と三角行列

AMn(K)A \in M_n(\mathbb{K}) について次が成り立ちます。

  1. detAT=detA\det A^{\mathsf{T}} = \det A。すなわち行列式は転置で不変であり、行について成り立つ性質と列について成り立つ性質は常に対になります。
  2. AA が上三角行列(i>ji > j ならば aij=0a_{ij} = 0)または下三角行列(i<ji < j ならば aij=0a_{ij} = 0)ならば detA=a11a22ann\det A = a_{11}a_{22}\cdots a_{nn} である。とくに detIn=1\det I_n = 1、対角行列の行列式は対角成分の積である。
証明(命題 3.3)

(1) B=ATB = A^{\mathsf{T}} とおくと bij=ajib_{ij} = a_{ji} です。定義より

detAT=σSnsgn(σ)j=1nbσ(j)j=σSnsgn(σ)j=1najσ(j).\det A^{\mathsf{T}} = \sum_{\sigma \in S_n} \mathrm{sgn}(\sigma) \prod_{j=1}^{n} b_{\sigma(j)\,j} = \sum_{\sigma \in S_n} \mathrm{sgn}(\sigma) \prod_{j=1}^{n} a_{j\,\sigma(j)}.

各項の積は有限個の因子の積なので順序を入れ替えられます。i=σ(j)i = \sigma(j) すなわち j=σ1(i)j = \sigma^{-1}(i) と番号を付け替えると jajσ(j)=iaσ1(i)i\prod_{j} a_{j\,\sigma(j)} = \prod_{i} a_{\sigma^{-1}(i)\,i} です。さらに 補題 2.2 (2) より sgn(σ)=sgn(σ1)\mathrm{sgn}(\sigma) = \mathrm{sgn}(\sigma^{-1}) であり、σ\sigmaSnS_n 全体を動くとき τ=σ1\tau = \sigma^{-1}SnS_n 全体を動きます。したがって

detAT=τSnsgn(τ)i=1naτ(i)i=detA.\det A^{\mathsf{T}} = \sum_{\tau \in S_n} \mathrm{sgn}(\tau) \prod_{i=1}^{n} a_{\tau(i)\,i} = \det A.

(2) AA を上三角とします。項 jaσ(j)j\prod_j a_{\sigma(j)j}00 でないためには、すべての jj について aσ(j)j0a_{\sigma(j)j} \ne 0、すなわち σ(j)j\sigma(j) \le j が必要です。j=1j = 1 では σ(1)1\sigma(1) \le 1 より σ(1)=1\sigma(1) = 1j=2j = 2 では σ(2)2\sigma(2) \le 2 かつ σ(2)σ(1)=1\sigma(2) \ne \sigma(1) = 1 より σ(2)=2\sigma(2) = 2。以下同様に jj について順に進めれば(σ(1),,σ(j1)\sigma(1), \ldots, \sigma(j-1)1,,j11, \ldots, j-1 を使い切っているので σ(j)j\sigma(j) \le j から σ(j)=j\sigma(j) = j)、σ=id\sigma = \mathrm{id} に限ることがわかります。残るのは sgn(id)jajj\mathrm{sgn}(\mathrm{id}) \prod_j a_{jj} の 1 項だけです。下三角の場合は転置が上三角なので (1) に帰着します。InI_n は対角成分がすべて 11 の対角行列なので detIn=1\det I_n = 1 です。

4. 行列式を特徴づける二つの性質

Section titled “4. 行列式を特徴づける二つの性質”

ライプニッツの公式は定義としては明快ですが、これを毎回展開して性質を証明するのは苦しい作業です。実は行列式の性質のほとんどは、公式の細部ではなく、次の二つの性質だけから出てきます。

定義 4.1多重線形性と交代性

写像 D:(Kn)nKD : (\mathbb{K}^n)^n \to \mathbb{K}、すなわち nn 個のベクトル v1,,vnKn\boldsymbol{v}_1, \ldots, \boldsymbol{v}_n \in \mathbb{K}^n にスカラーを対応させる写像を考えます。

  • DD多重線形であるとは、各 kk について、他の変数を固定したとき vk\boldsymbol{v}_k の関数として線形であること、つまり任意の u,wKn\boldsymbol{u}, \boldsymbol{w} \in \mathbb{K}^ncKc \in \mathbb{K} に対して D(,u+w,)=D(,u,)+D(,w,),D(,cu,)=cD(,u,)\begin{aligned} D(\ldots, \boldsymbol{u} + \boldsymbol{w}, \ldots) &= D(\ldots, \boldsymbol{u}, \ldots) + D(\ldots, \boldsymbol{w}, \ldots), \\ D(\ldots, c\,\boldsymbol{u}, \ldots) &= c\, D(\ldots, \boldsymbol{u}, \ldots) \end{aligned} が成り立つことをいいます(\ldots の位置の変数は共通で固定されています)。
  • DD交代的であるとは、iji \ne j かつ vi=vj\boldsymbol{v}_i = \boldsymbol{v}_j ならば D(v1,,vn)=0D(\boldsymbol{v}_1, \ldots, \boldsymbol{v}_n) = 0 となることをいいます。

A=(a1  an)A = (\boldsymbol{a}_1\ \cdots\ \boldsymbol{a}_n) に対して detA=det(a1,,an)\det A = \det(\boldsymbol{a}_1, \ldots, \boldsymbol{a}_n) と見なし、det\det を列ベクトルの関数として扱います。

定理 4.2行列式の特徴づけ

D:(Kn)nKD : (\mathbb{K}^n)^n \to \mathbb{K} が多重線形かつ交代的であれば、任意の v1,,vnKn\boldsymbol{v}_1, \ldots, \boldsymbol{v}_n \in \mathbb{K}^n に対して

D(v1,,vn)=D(e1,,en)detV,V=(v1  vn)D(\boldsymbol{v}_1, \ldots, \boldsymbol{v}_n) = D(\boldsymbol{e}_1, \ldots, \boldsymbol{e}_n) \cdot \det V, \qquad V = (\boldsymbol{v}_1\ \cdots\ \boldsymbol{v}_n)

が成り立ちます。とくに、多重線形・交代的で D(e1,,en)=1D(\boldsymbol{e}_1, \ldots, \boldsymbol{e}_n) = 1 を満たす写像は det\det ただ一つです。

証明(定理 4.2)

第 1 段(交代性から反対称性へ) DD は多重線形かつ交代的とします。i<ji < j を固定し、第 ii 変数と第 jj 変数に同じベクトル u+w\boldsymbol{u} + \boldsymbol{w} を入れると交代性から

0=D(,u+w,,u+w,)0 = D(\ldots, \boldsymbol{u} + \boldsymbol{w}, \ldots, \boldsymbol{u} + \boldsymbol{w}, \ldots)

です。左辺を第 ii 変数、続いて第 jj 変数について多重線形性で展開すると 4 項になり、そのうち D(,u,,u,)D(\ldots, \boldsymbol{u}, \ldots, \boldsymbol{u}, \ldots)D(,w,,w,)D(\ldots, \boldsymbol{w}, \ldots, \boldsymbol{w}, \ldots) は交代性からともに 00 です。残るのは

D(,u,,w,)+D(,w,,u,)=0,D(\ldots, \boldsymbol{u}, \ldots, \boldsymbol{w}, \ldots) + D(\ldots, \boldsymbol{w}, \ldots, \boldsymbol{u}, \ldots) = 0,

すなわち二つの変数を入れ替えると符号が変わる(反対称性)ことです。

次に、任意の σSn\sigma \in S_n に対し

D(vσ(1),,vσ(n))=sgn(σ)D(v1,,vn)D(\boldsymbol{v}_{\sigma(1)}, \ldots, \boldsymbol{v}_{\sigma(n)}) = \mathrm{sgn}(\sigma)\, D(\boldsymbol{v}_1, \ldots, \boldsymbol{v}_n)

を示します。補題 2.2 (4) により σ=τ1τ2τk\sigma = \tau_1 \tau_2 \cdots \tau_kτm\tau_m は互換)と書け、sgn(σ)=(1)k\mathrm{sgn}(\sigma) = (-1)^k です。kk に関する帰納法を使います。k=0k = 0 は自明です。σ=ρτ\sigma = \rho\,\tauτ\tau は互換、ρ\rhok1k-1 個の互換の積)と書いたとき、wi=vρ(i)\boldsymbol{w}_i = \boldsymbol{v}_{\rho(i)} とおくと vσ(j)=vρ(τ(j))=wτ(j)\boldsymbol{v}_{\sigma(j)} = \boldsymbol{v}_{\rho(\tau(j))} = \boldsymbol{w}_{\tau(j)} ですから、D(vσ(1),,vσ(n))=D(wτ(1),,wτ(n))D(\boldsymbol{v}_{\sigma(1)}, \ldots, \boldsymbol{v}_{\sigma(n)}) = D(\boldsymbol{w}_{\tau(1)}, \ldots, \boldsymbol{w}_{\tau(n)}) となります。τ\tau は 2 つの変数の入れ替えなので、上で示した反対称性からこれは D(w1,,wn)=D(vρ(1),,vρ(n))-D(\boldsymbol{w}_1, \ldots, \boldsymbol{w}_n) = -D(\boldsymbol{v}_{\rho(1)}, \ldots, \boldsymbol{v}_{\rho(n)}) に等しく、帰納法の仮定を使えば (1)k1D(v1,,vn)=(1)kD(v1,,vn)-(-1)^{k-1}D(\boldsymbol{v}_1, \ldots, \boldsymbol{v}_n) = (-1)^k D(\boldsymbol{v}_1, \ldots, \boldsymbol{v}_n) です。

第 2 段(標準基底への還元) vj=i=1nvijei\boldsymbol{v}_j = \sum_{i=1}^{n} v_{ij}\boldsymbol{e}_i と成分表示し、第 1 変数から順に多重線形性で展開します。

D(v1,,vn)=i1=1ni2=1nin=1nvi11vi22vinnD(ei1,ei2,,ein).D(\boldsymbol{v}_1, \ldots, \boldsymbol{v}_n) = \sum_{i_1 = 1}^{n} \sum_{i_2 = 1}^{n} \cdots \sum_{i_n = 1}^{n} v_{i_1 1} v_{i_2 2} \cdots v_{i_n n}\, D(\boldsymbol{e}_{i_1}, \boldsymbol{e}_{i_2}, \ldots, \boldsymbol{e}_{i_n}).

添字の組 (i1,,in)(i_1, \ldots, i_n) のうち、同じ値が 2 回以上現れるものは交代性から D(ei1,,ein)=0D(\boldsymbol{e}_{i_1}, \ldots, \boldsymbol{e}_{i_n}) = 0 となり消えます。残るのは i1,,ini_1, \ldots, i_n がすべて相異なる組、すなわち jijj \mapsto i_j が置換 σ\sigma になる場合だけです。第 1 段より D(eσ(1),,eσ(n))=sgn(σ)D(e1,,en)D(\boldsymbol{e}_{\sigma(1)}, \ldots, \boldsymbol{e}_{\sigma(n)}) = \mathrm{sgn}(\sigma)D(\boldsymbol{e}_1, \ldots, \boldsymbol{e}_n) ですから、

D(v1,,vn)=(σSnsgn(σ)j=1nvσ(j)j)D(e1,,en)=detVD(e1,,en).D(\boldsymbol{v}_1, \ldots, \boldsymbol{v}_n) = \left( \sum_{\sigma \in S_n} \mathrm{sgn}(\sigma) \prod_{j=1}^{n} v_{\sigma(j)\,j} \right) D(\boldsymbol{e}_1, \ldots, \boldsymbol{e}_n) = \det V \cdot D(\boldsymbol{e}_1, \ldots, \boldsymbol{e}_n).

これが主張の等式です。

第 3 段(det\det が実際に条件を満たすこと) 一意性だけでは中身が空かもしれないので、det\det 自身が多重線形・交代的で detIn=1\det I_n = 1 であることを確かめます。

多重線形性:定義式の各項 sgn(σ)jaσ(j)j\mathrm{sgn}(\sigma)\prod_j a_{\sigma(j)j} は、第 kk 列からちょうど 1 個の成分 aσ(k)ka_{\sigma(k)k} を含み、他の因子は第 kk 列に依存しません。よって各項は第 kk 列の成分について 1 次の同次式であり、その和である det\det も第 kk 列について線形です。

交代性:第 pp 列と第 qq 列(pqp \ne q)が等しい、すなわちすべての iiaip=aiqa_{ip} = a_{iq} とします。互換 τ=(p q)\tau = (p\ q) を使って σστ\sigma \mapsto \sigma\tau という対応を考えると、これは SnS_n 上の不動点を持たない対合(2 回施すと元に戻る全単射)なので、SnS_nn!/2n!/2 個の組 {σ,στ}\{\sigma, \sigma\tau\} に分割されます。各組の 2 項を比べると、jp,qj \ne p, q では aστ(j)j=aσ(j)ja_{\sigma\tau(j)j} = a_{\sigma(j)j} であり、j=pj = p では aστ(p)p=aσ(q)p=aσ(q)qa_{\sigma\tau(p)p} = a_{\sigma(q)p} = a_{\sigma(q)q}j=qj = q では aστ(q)q=aσ(p)q=aσ(p)pa_{\sigma\tau(q)q} = a_{\sigma(p)q} = a_{\sigma(p)p}(2 つ目の等号でそれぞれ列が等しいことを使いました)。したがって積の値は完全に一致し、符号だけが 補題 2.2 (2)(3) より逆になります。各組の寄与が打ち消し合うので detA=0\det A = 0 です。

正規化:detIn=1\det I_n = 1命題 3.3 (2) です。

この定理の使い道は 2 通りあります。ひとつは「行列式とはこういう性質の関数だ」と性質から出発できるようになること。もうひとつは、多重線形・交代的な写像を作ったら、それは自動的に det\det の定数倍だと同定できることです。後者は §6 の積の定理で威力を発揮します。まず、日々の計算に直結する系を書いておきます。

命題 4.3基本変形と行列式

A=(a1  an)Mn(K)A = (\boldsymbol{a}_1\ \cdots\ \boldsymbol{a}_n) \in M_n(\mathbb{K}) とします。

  1. 2 つの列を入れ替えると行列式は 1-1 倍になる。
  2. ある 1 つの列を cKc \in \mathbb{K} 倍すると行列式は cc 倍になる。とくに det(cA)=cndetA\det(cA) = c^n \det A
  3. ある列に他の列のスカラー倍を加えても行列式は変わらない。すなわち pqp \ne qcKc \in \mathbb{K} に対し det(,ap+caq,)=det(,ap,).\det(\ldots, \boldsymbol{a}_p + c\,\boldsymbol{a}_q, \ldots) = \det(\ldots, \boldsymbol{a}_p, \ldots).
  4. ある列が零ベクトルなら行列式は 00 である。
  5. 以上はすべて「列」を「行」に置き換えても成り立つ。
証明(命題 4.3)

(1) は 定理 4.2 の証明の第 1 段(反対称性)そのものです。(2) は多重線形性の斉次性の部分であり、nn 個の列すべてを cc 倍すれば ccnn 回出るので det(cA)=cndetA\det(cA) = c^n \det A を得ます。(3) は第 pp 変数についての加法性から

det(,ap+caq,)=det(,ap,)+cdet(,aq,)\det(\ldots, \boldsymbol{a}_p + c\,\boldsymbol{a}_q, \ldots) = \det(\ldots, \boldsymbol{a}_p, \ldots) + c \det(\ldots, \boldsymbol{a}_q, \ldots)

となり、右辺第 2 項は第 pp 列と第 qq 列がともに aq\boldsymbol{a}_q で一致するので交代性から 00 です。(4) は (2) で c=0c = 0 とすればよく、detA=det(,00,)=0det()=0\det A = \det(\ldots, 0 \cdot \boldsymbol{0}, \ldots) = 0 \cdot \det(\ldots) = 0 となります。(5) は 命題 3.3 (1) により行と列の役割が交換できることから従います。

(3) が重要です。掃き出し法で使う「ある行に他の行の定数倍を足す」という操作は行列式を一切変えないので、行列式の計算は掃き出しと相性が良いのです。§9 で実際に使います。

5. 定義 II:余因子展開と余因子行列

Section titled “5. 定義 II:余因子展開と余因子行列”

ライプニッツの公式は nn 次を一気に定めますが、nn 次を n1n-1 次に帰着させる漸化式も存在します。これが余因子展開であり、理論的には逆行列の公式を与え、実用上は「00 が多い行や列」を選んで手計算を軽くするために使われます。

定義 5.1小行列式・余因子・余因子行列

AMn(K)A \in M_n(\mathbb{K})n2n \ge 2)に対し、第 ii 行と第 jj 列を取り除いて得られる n1n-1 次正方行列を AijA_{ij} と書き、その行列式 detAij\det A_{ij}AA(i,j)(i, j) 小行列式といいます。また

a~ij=(1)i+jdetAij\widetilde{a}_{ij} = (-1)^{i+j} \det A_{ij}

(i,j)(i, j) 余因子といいます。余因子を転置して並べた行列

adjA=(a~11a~21a~n1a~12a~22a~n2a~1na~2na~nn),(adjA)ij=a~ji\mathrm{adj}\,A = \begin{pmatrix} \widetilde{a}_{11} & \widetilde{a}_{21} & \cdots & \widetilde{a}_{n1} \\ \widetilde{a}_{12} & \widetilde{a}_{22} & \cdots & \widetilde{a}_{n2} \\ \vdots & & & \vdots \\ \widetilde{a}_{1n} & \widetilde{a}_{2n} & \cdots & \widetilde{a}_{nn} \end{pmatrix}, \qquad (\mathrm{adj}\,A)_{ij} = \widetilde{a}_{ji}

AA余因子行列といいます。添字の順序が入れ替わっている点に注意してください。

定理 5.2余因子展開(ラプラス展開)

n2n \ge 2AMn(K)A \in M_n(\mathbb{K}) とします。

  1. j{1,,n}j \in \{1, \ldots, n\} を固定するとき(第 jj 列に関する展開) detA=i=1naija~ij=i=1n(1)i+jaijdetAij.\det A = \sum_{i=1}^{n} a_{ij}\, \widetilde{a}_{ij} = \sum_{i=1}^{n} (-1)^{i+j} a_{ij} \det A_{ij}.
  2. i{1,,n}i \in \{1, \ldots, n\} を固定するとき(第 ii 行に関する展開) detA=j=1naija~ij=j=1n(1)i+jaijdetAij.\det A = \sum_{j=1}^{n} a_{ij}\, \widetilde{a}_{ij} = \sum_{j=1}^{n} (-1)^{i+j} a_{ij} \det A_{ij}.
証明(定理 5.2)

第 1 段jj 列を標準基底で分解します。aj=i=1naijei\boldsymbol{a}_j = \sum_{i=1}^{n} a_{ij}\boldsymbol{e}_i ですから、定理 4.2 で確かめた第 jj 列についての線形性より

detA=i=1naijdetA(i,j)\det A = \sum_{i=1}^{n} a_{ij} \det A^{(i,j)}

となります。ここで A(i,j)A^{(i,j)}AA の第 jj 列を ei\boldsymbol{e}_i に置き換えた行列です。よって detA(i,j)=(1)i+jdetAij\det A^{(i,j)} = (-1)^{i+j}\det A_{ij} を示せば十分です。

第 2 段(列と行を端に寄せる) A(i,j)A^{(i,j)} に対し、第 jj 列を隣の列との入れ替えで njn - j 回動かして最後尾に持っていきます(他の列の相対的な順序は保たれます)。続いて第 ii 行を隣の行との入れ替えで nin - i 回動かして最下段に持っていきます。命題 4.3 (1)(5) より、この操作で行列式は (1)(nj)+(ni)=(1)2nij=(1)i+j(-1)^{(n-j)+(n-i)} = (-1)^{2n - i - j} = (-1)^{i+j} 倍されます。得られた行列を BB とすれば

detB=(1)i+jdetA(i,j).\det B = (-1)^{i+j} \det A^{(i,j)}.

BB の形を確かめます。最後の列はもともと ei\boldsymbol{e}_i で、その唯一の 11 は第 ii 行にありましたが、その行が最下段に移ったので、BB の最後の列は en\boldsymbol{e}_n です。また左上の (n1)×(n1)(n-1) \times (n-1) 部分は、AA から第 ii 行と第 jj 列を除いた成分が元の順序のまま並んだもの、すなわち AijA_{ij} です。したがって

B=(Aij0cT1)B = \begin{pmatrix} A_{ij} & \boldsymbol{0} \\ \boldsymbol{c}^{\mathsf{T}} & 1 \end{pmatrix}

cT\boldsymbol{c}^{\mathsf{T}}AA の第 ii 行から第 jj 成分を除いたもの)と書けます。

第 3 段(detB=detAij\det B = \det A_{ij} 定義に戻ります。detB=σsgn(σ)k=1nbσ(k)k\det B = \sum_{\sigma} \mathrm{sgn}(\sigma) \prod_{k=1}^{n} b_{\sigma(k)k} において、第 nn 列は en\boldsymbol{e}_n なので bσ(n)n0b_{\sigma(n)n} \ne 0 となるのは σ(n)=n\sigma(n) = n のときだけであり、そのとき bnn=1b_{nn} = 1 です。σ(n)=n\sigma(n) = n なる σ\sigma{1,,n1}\{1, \ldots, n-1\} 上の置換 σ\sigma' と 1 対 1 に対応し、nn は動かないので転倒する組も増えず sgn(σ)=sgn(σ)\mathrm{sgn}(\sigma) = \mathrm{sgn}(\sigma') です。さらに kn1k \le n-1 かつ σ(k)n1\sigma(k) \le n-1 のとき bσ(k)kb_{\sigma(k)k} は左上のブロックの成分、すなわち AijA_{ij}(σ(k),k)(\sigma'(k), k) 成分です。よって

detB=σSn1sgn(σ)k=1n1(Aij)σ(k)k=detAij.\det B = \sum_{\sigma' \in S_{n-1}} \mathrm{sgn}(\sigma') \prod_{k=1}^{n-1} (A_{ij})_{\sigma'(k)\,k} = \det A_{ij}.

第 2 段と合わせて detA(i,j)=(1)i+jdetB=(1)i+jdetAij\det A^{(i,j)} = (-1)^{i+j}\det B = (-1)^{i+j}\det A_{ij} となり、(1) が示されました。

第 4 段(行に関する展開) ATA^{\mathsf{T}} に (1) を適用します。ATA^{\mathsf{T}}(j,i)(j, i) 小行列は AA(i,j)(i, j) 小行列の転置なので、命題 3.3 (1) からその行列式は detAij\det A_{ij} に等しく、また (AT)ji=aij(A^{\mathsf{T}})_{ji} = a_{ij} です。したがって ATA^{\mathsf{T}} の第 ii 列に関する展開が、そのまま AA の第 ii 行に関する展開になります。

余因子展開は「00 が多い列(または行)を選ぶ」ほど得をします。基本変形で 00 を作ってから展開する、という合わせ技が実戦的です。

例 5.33 次のヴァンデルモンド行列式

x1,x2,x3Kx_1, x_2, x_3 \in \mathbb{K} に対し

V=(111x1x2x3x12x22x32)V = \begin{pmatrix} 1 & 1 & 1 \\ x_1 & x_2 & x_3 \\ x_1^2 & x_2^2 & x_3^2 \end{pmatrix}

の行列式を求めます。まず第 3 行から第 2 行の x1x_1 倍を引き、次に第 2 行から第 1 行の x1x_1 倍を引きます(この順序が大切です。先に第 2 行を変えてしまうと、第 3 行の変形で使う行が変わってしまいます)。命題 4.3 (3)(5) より行列式は変わりません。

第 3 行は (x12x1x1, x22x1x2, x32x1x3)=(0, x2(x2x1), x3(x3x1))(x_1^2 - x_1 \cdot x_1,\ x_2^2 - x_1 x_2,\ x_3^2 - x_1 x_3) = (0,\ x_2(x_2 - x_1),\ x_3(x_3 - x_1)) となり、第 2 行は (x1x1, x2x1, x3x1)=(0, x2x1, x3x1)(x_1 - x_1,\ x_2 - x_1,\ x_3 - x_1) = (0,\ x_2 - x_1,\ x_3 - x_1) となります。すなわち

detV=det(1110x2x1x3x10x2(x2x1)x3(x3x1)).\det V = \det \begin{pmatrix} 1 & 1 & 1 \\ 0 & x_2 - x_1 & x_3 - x_1 \\ 0 & x_2(x_2 - x_1) & x_3(x_3 - x_1) \end{pmatrix}.

第 1 列に関して 定理 5.2 を適用すると、非零成分は (1,1)(1,1) 成分の 11 だけで、その符号は (1)1+1=+1(-1)^{1+1} = +1 ですから

detV=det(x2x1x3x1x2(x2x1)x3(x3x1)).\det V = \det \begin{pmatrix} x_2 - x_1 & x_3 - x_1 \\ x_2(x_2 - x_1) & x_3(x_3 - x_1) \end{pmatrix}.

第 1 列から x2x1x_2 - x_1 を、第 2 列から x3x1x_3 - x_1 をくくり出すと(命題 4.3 (2))

detV=(x2x1)(x3x1)det(11x2x3)=(x2x1)(x3x1)(x3x2).\det V = (x_2 - x_1)(x_3 - x_1) \det \begin{pmatrix} 1 & 1 \\ x_2 & x_3 \end{pmatrix} = (x_2 - x_1)(x_3 - x_1)(x_3 - x_2).

これはちょうど §2 の差積 Δ(x1,x2,x3)\Delta(x_1, x_2, x_3) です。符号の理論に使った多項式が、行列式そのものとして再登場したことになります。同じ計算を nn 次で繰り返せば detVn=i<j(xjxi)\det V_n = \prod_{i < j}(x_j - x_i) が示せます。とくに x1,,xnx_1, \ldots, x_n が相異なれば detVn0\det V_n \ne 0 であり、これは相異なる nn 点を通る n1n-1 次以下の多項式がただ一つ存在すること(ラグランジュ補間の一意性)と同値です。

余因子展開のもう一つの帰結は、逆行列の閉じた公式です。

命題 5.4余因子行列の基本関係式

n2n \ge 2AMn(K)A \in M_n(\mathbb{K}) に対し

AadjA=(adjA)A=(detA)InA \cdot \mathrm{adj}\,A = (\mathrm{adj}\,A) \cdot A = (\det A)\, I_n

が成り立ちます。とくに detA0\det A \ne 0 ならば AA は正則で A1=1detAadjAA^{-1} = \dfrac{1}{\det A}\,\mathrm{adj}\,A です。

証明(命題 5.4)

(AadjA)ik=j=1naij(adjA)jk=j=1naija~kj(A \cdot \mathrm{adj}\,A)_{ik} = \sum_{j=1}^{n} a_{ij} (\mathrm{adj}\,A)_{jk} = \sum_{j=1}^{n} a_{ij}\widetilde{a}_{kj} です。

i=ki = k のとき、これは 定理 5.2 (2) の第 ii 行に関する展開そのものなので detA\det A に等しくなります。

iki \ne k のときを考えます。AA の第 kk 行を第 ii 行で置き換えた行列を AA' とします。AA' は第 ii 行と第 kk 行が等しいので、交代性(定理 4.2 の第 3 段、および 命題 3.3 (1) により行についても成立)から detA=0\det A' = 0 です。一方 AA'(k,j)(k, j) 余因子は第 kk 行を除いて作るので AA(k,j)(k, j) 余因子 a~kj\widetilde{a}_{kj} と一致し(AAAA' は第 kk 行以外が同じです)、AA'(k,j)(k, j) 成分は aija_{ij} です。よって AA' を第 kk 行で余因子展開すると

0=detA=j=1naija~kj0 = \det A' = \sum_{j=1}^{n} a_{ij}\widetilde{a}_{kj}

となります。以上より AadjA=(detA)InA \cdot \mathrm{adj}\,A = (\det A)I_n です。(adjA)A=(detA)In(\mathrm{adj}\,A)\cdot A = (\det A)I_n も同様に、列に関する展開(定理 5.2 (1))と列の交代性を使えば示せます。最後の主張は detA0\det A \ne 0 のとき両辺を detA\det A で割ればよく、左右両方の積が InI_n になるので adjA/detA\mathrm{adj}\,A / \det A は確かに逆行列です。

注意 5.5クラメルの公式

detA0\det A \ne 0 のとき、Ax=bA\boldsymbol{x} = \boldsymbol{b} の解は x=A1b=(detA)1(adjA)b\boldsymbol{x} = A^{-1}\boldsymbol{b} = (\det A)^{-1}(\mathrm{adj}\,A)\boldsymbol{b} ですから、成分ごとに書くと

xj=1detAi=1na~ijbi=detAjdetAx_j = \frac{1}{\det A}\sum_{i=1}^{n} \widetilde{a}_{ij} b_i = \frac{\det A_j}{\det A}

となります。ここで AjA_jAA の第 jj 列を b\boldsymbol{b} で置き換えた行列です(最後の等号は AjA_j の第 jj 列に関する余因子展開そのものです。AjA_j(i,j)(i,j) 余因子は第 jj 列を除いて作るので AA のそれと同じ a~ij\widetilde{a}_{ij} です)。n=2n = 2 で書けば §1 で手計算した x=(pdbq)/(adbc)x = (pd - bq)/(ad - bc) に一致します。理論的には美しい公式ですが、nn 次の行列式を n+1n+1 回計算するため、数値計算では使いません。

行列の積の行列式が、行列式の積になる。この事実は行列式論の中心であり、証明は 定理 4.2 の「同定」の使い方の見本になっています。

定理 6.1積の定理

A,BMn(K)A, B \in M_n(\mathbb{K}) に対し

det(AB)=detAdetB.\det(AB) = \det A \cdot \det B .
証明(定理 6.1)

AA を固定します。B=(b1  bn)B = (\boldsymbol{b}_1\ \cdots\ \boldsymbol{b}_n) と列で区切ると、行列の積の定義から ABAB の第 jj 列は AbjA\boldsymbol{b}_j です。そこで写像

D(b1,,bn):=det(Ab1, Ab2, , Abn)=det(AB)D(\boldsymbol{b}_1, \ldots, \boldsymbol{b}_n) := \det(A\boldsymbol{b}_1,\ A\boldsymbol{b}_2,\ \ldots,\ A\boldsymbol{b}_n) = \det(AB)

を考え、これが多重線形かつ交代的であることを確かめます。

多重線形性:bAb\boldsymbol{b} \mapsto A\boldsymbol{b} は線形写像なので A(u+w)=Au+AwA(\boldsymbol{u} + \boldsymbol{w}) = A\boldsymbol{u} + A\boldsymbol{w}A(cu)=c(Au)A(c\boldsymbol{u}) = c(A\boldsymbol{u}) が成り立ち、これを det\det の第 kk 列の位置に入れれば、det\det が第 kk 列について線形であること(定理 4.2 第 3 段)から DD も第 kk 変数について線形です。

交代性:bp=bq\boldsymbol{b}_p = \boldsymbol{b}_qpqp \ne q)ならば Abp=AbqA\boldsymbol{b}_p = A\boldsymbol{b}_q なので det\det の第 pp 列と第 qq 列が一致し、det\det の交代性から D=0D = 0 です。

したがって 定理 4.2 が使えて

det(AB)=D(b1,,bn)=D(e1,,en)detB.\det(AB) = D(\boldsymbol{b}_1, \ldots, \boldsymbol{b}_n) = D(\boldsymbol{e}_1, \ldots, \boldsymbol{e}_n)\cdot \det B .

最後に D(e1,,en)=det(Ae1,,Aen)D(\boldsymbol{e}_1, \ldots, \boldsymbol{e}_n) = \det(A\boldsymbol{e}_1, \ldots, A\boldsymbol{e}_n) ですが、AejA\boldsymbol{e}_jAA の第 jjaj\boldsymbol{a}_j にほかならないので、これは detA\det A です。以上より det(AB)=detAdetB\det(AB) = \det A \det B を得ます。

ここから直ちに次が従います。AA が正則、すなわち AA1=InAA^{-1} = I_n なる A1A^{-1} が存在するとき、両辺の行列式を取ると detAdet(A1)=detIn=1\det A \cdot \det(A^{-1}) = \det I_n = 1 です。K\mathbb{K} は体なので、この等式は detA0\det A \ne 0 を意味し、同時に

det(A1)=1detA\det(A^{-1}) = \frac{1}{\det A}

を与えます。また正則行列 PP に対し det(P1AP)=det(P1)detAdetP=detA\det(P^{-1}AP) = \det(P^{-1})\det A \det P = \det A となり、相似な行列の行列式は等しいことがわかります。これは行列式が「基底の取り方によらない、線形変換そのものの量」であることを意味しており、後で固有値との関係を見るときの土台になります(固有値と固有ベクトル を参照してください)。さらに det(Ak)=(detA)k\det(A^k) = (\det A)^k も帰納法で従います。

§1 で立てた問い「解けるかどうかを 1 個の数で言い当てられるか」に、ここで完全な答えを与えます。

定理 7.1正則性の判定

A=(a1  an)Mn(K)A = (\boldsymbol{a}_1\ \cdots\ \boldsymbol{a}_n) \in M_n(\mathbb{K}) に対し、次の 5 条件は同値です。

  1. detA0\det A \ne 0
  2. AA は正則である。すなわち AB=BA=InAB = BA = I_n を満たす BMn(K)B \in M_n(\mathbb{K}) が存在する。
  3. 列ベクトル a1,,an\boldsymbol{a}_1, \ldots, \boldsymbol{a}_n は一次独立である。
  4. 斉次方程式 Ax=0A\boldsymbol{x} = \boldsymbol{0} の解は x=0\boldsymbol{x} = \boldsymbol{0} のみである。
  5. 任意の bKn\boldsymbol{b} \in \mathbb{K}^n に対し、Ax=bA\boldsymbol{x} = \boldsymbol{b} はただ一つの解を持つ。
証明(定理 7.1)

(1)(2)(5)(4)(3)(1)(1) \Rightarrow (2) \Rightarrow (5) \Rightarrow (4) \Leftrightarrow (3) \Rightarrow (1) の順に示します。

(1)(2)(1) \Rightarrow (2) 命題 5.4 により B=(detA)1adjAB = (\det A)^{-1}\mathrm{adj}\,AAB=BA=InAB = BA = I_n を満たします(n=1n = 1 のときは A=(a11)A = (a_{11})a110a_{11} \ne 0B=(a111)B = (a_{11}^{-1}) とすればよく、以下でも n=1n = 1 の場合は同様に直接確かめられます)。

(2)(5)(2) \Rightarrow (5) x=Bb\boldsymbol{x} = B\boldsymbol{b} とおくと Ax=ABb=bA\boldsymbol{x} = AB\boldsymbol{b} = \boldsymbol{b} なので解が存在します。一意性は、Ax=Ax=bA\boldsymbol{x} = A\boldsymbol{x}' = \boldsymbol{b} ならば左から BB を掛けて x=BAx=BAx=x\boldsymbol{x} = BA\boldsymbol{x} = BA\boldsymbol{x}' = \boldsymbol{x}' となることからわかります。

(5)(4)(5) \Rightarrow (4) (5) を b=0\boldsymbol{b} = \boldsymbol{0} に適用します。A0=0A\boldsymbol{0} = \boldsymbol{0} ですから x=0\boldsymbol{x} = \boldsymbol{0}Ax=0A\boldsymbol{x} = \boldsymbol{0} の解の一つであり、(5) によれば解は一つしかないのですから、それが唯一の解です。

(4)(3)(4) \Leftrightarrow (3) 行列とベクトルの積の定義から Ax=x1a1++xnanA\boldsymbol{x} = x_1\boldsymbol{a}_1 + \cdots + x_n\boldsymbol{a}_n です。したがって「Ax=0A\boldsymbol{x} = \boldsymbol{0} の解が x=0\boldsymbol{x} = \boldsymbol{0} のみ」は「x1a1++xnan=0x_1\boldsymbol{a}_1 + \cdots + x_n\boldsymbol{a}_n = \boldsymbol{0} ならば x1==xn=0x_1 = \cdots = x_n = 0」と同じ文であり、これが一次独立の定義(定義 5.1[ベクトル空間と線形変換])です。

(3)(1)(3) \Rightarrow (1) a1,,an\boldsymbol{a}_1, \ldots, \boldsymbol{a}_nnn 次元ベクトル空間 Kn\mathbb{K}^n の一次独立な nn 個のベクトルなので、Kn\mathbb{K}^n の基底をなします(命題 5.7[ベクトル空間と線形変換]ベクトル空間と線形変換 を参照してください)。よって各標準基底ベクトルが ej=i=1nbijai\boldsymbol{e}_j = \sum_{i=1}^{n} b_{ij}\boldsymbol{a}_i と表せます。この係数を並べた行列を B=(bij)B = (b_{ij}) とすると、この nn 本の等式はまとめて AB=InAB = I_n と書けます。両辺の行列式を取り 定理 6.1 を使うと detAdetB=detIn=1\det A \cdot \det B = \det I_n = 1 となるので、detA0\det A \ne 0 です。

flowchart LR
D1["det A ≠ 0"] -->|余因子行列で逆行列を作る| D2["A は正則"]
D2 -->|x = Bb と一意性| D3["Ax = b が常に一意に解ける"]
D3 -->|b = 0 とおく| D4["Ax = 0 の解は x = 0 のみ"]
D4 -->|Ax は列の一次結合| D5["列ベクトルが一次独立"]
D5 -->|基底に直して AB = I、積の定理| D1
正則性をめぐる同値性の証明の筋道

注意 7.2一次従属なら行列式は 0(直接証明)

(3)(1)(3) \Rightarrow (1) の対偶、つまり「列が一次従属ならば detA=0\det A = 0」は、基底の理論を使わずに多重線形性から直接示せます。実際、ak=jkcjaj\boldsymbol{a}_k = \sum_{j \ne k} c_j \boldsymbol{a}_j と書けたとすると、第 kk 変数についての線形性から

detA=det(,jkcjaj,)=jkcjdet(,aj,)\det A = \det(\ldots, \textstyle\sum_{j \ne k} c_j\boldsymbol{a}_j, \ldots) = \sum_{j \ne k} c_j \det(\ldots, \boldsymbol{a}_j, \ldots)

となり、右辺の各項は第 kk 列と第 jj 列がともに aj\boldsymbol{a}_j で一致するので交代性から 00 です。実務では「det=0\det = 0 を見たら列(または行)の間に一次関係がある」と読むこの向きをよく使います。

この定理により、行列式は理論の要所で判定装置として働きます。たとえば λK\lambda \in \mathbb{K}AA の固有値であるとは Ax=λxA\boldsymbol{x} = \lambda\boldsymbol{x} を満たす x0\boldsymbol{x} \ne \boldsymbol{0} が存在すること、すなわち (λInA)x=0(\lambda I_n - A)\boldsymbol{x} = \boldsymbol{0} が非自明解を持つことです。定理 7.1(1)(4)(1) \Leftrightarrow (4) より、これは

φA(λ)=det(λInA)=0\varphi_A(\lambda) = \det(\lambda I_n - A) = 0

と同値になります。固有値の議論が「nn 次方程式の根を求める」問題に翻訳できるのは、この同値性のおかげです。この多項式 φA\varphi_A特性多項式(定義 4.1)[固有値と固有ベクトル] と呼ばれます。詳しくは 固有値と固有ベクトル で扱います。

8. 幾何学的意味:符号付き体積

Section titled “8. 幾何学的意味:符号付き体積”

ここまで代数的に扱ってきた行列式が、なぜ「つぶれているかどうか」を測れるのか。答えは面積・体積です。まず 2 次元で完全に証明します。

命題 8.12 次の行列式と平行四辺形の面積

u=(ac)\boldsymbol{u} = \begin{pmatrix} a \\ c \end{pmatrix}v=(bd)\boldsymbol{v} = \begin{pmatrix} b \\ d \end{pmatrix}R2\mathbb{R}^2 のベクトルとし、A=(u v)A = (\boldsymbol{u}\ \boldsymbol{v}) とします。u,v\boldsymbol{u}, \boldsymbol{v} が張る平行四辺形

P={su+tv0s1, 0t1}P = \{ s\boldsymbol{u} + t\boldsymbol{v} \mid 0 \le s \le 1,\ 0 \le t \le 1 \}

の面積は detA=adbc|\det A| = |ad - bc| に等しい。

証明(命題 8.1)

u=0\boldsymbol{u} = \boldsymbol{0} または v=0\boldsymbol{v} = \boldsymbol{0} なら PP は線分または点で面積 00、行列式も 命題 4.3 (4) より 00 なので成立します。以下 u,v0\boldsymbol{u}, \boldsymbol{v} \ne \boldsymbol{0} とし、両者のなす角を θ[0,π]\theta \in [0, \pi] とします。平行四辺形の面積は「底辺 ×\times 高さ」で S=uvsinθS = \|\boldsymbol{u}\| \cdot \|\boldsymbol{v}\|\sin\theta です(sinθ0\sin\theta \ge 0 に注意)。

内積となす角の関係 u,v=uvcosθ\langle \boldsymbol{u}, \boldsymbol{v}\rangle = \|\boldsymbol{u}\|\|\boldsymbol{v}\|\cos\theta(角度の定義は 定義 4.5[内積空間とグラム・シュミット直交化])を用いると

S2=u2v2sin2θ=u2v2u2v2cos2θ=u2v2u,v2S^2 = \|\boldsymbol{u}\|^2\|\boldsymbol{v}\|^2 \sin^2\theta = \|\boldsymbol{u}\|^2\|\boldsymbol{v}\|^2 - \|\boldsymbol{u}\|^2\|\boldsymbol{v}\|^2\cos^2\theta = \|\boldsymbol{u}\|^2\|\boldsymbol{v}\|^2 - \langle \boldsymbol{u}, \boldsymbol{v}\rangle^2

です。成分で書き下すと u2=a2+c2\|\boldsymbol{u}\|^2 = a^2 + c^2v2=b2+d2\|\boldsymbol{v}\|^2 = b^2 + d^2u,v=ab+cd\langle \boldsymbol{u}, \boldsymbol{v}\rangle = ab + cd ですから

S2=(a2+c2)(b2+d2)(ab+cd)2=a2b2+a2d2+c2b2+c2d2(a2b2+2abcd+c2d2)=a2d22abcd+b2c2=(adbc)2.\begin{aligned} S^2 &= (a^2 + c^2)(b^2 + d^2) - (ab + cd)^2 \\ &= a^2b^2 + a^2d^2 + c^2b^2 + c^2d^2 - (a^2b^2 + 2abcd + c^2d^2) \\ &= a^2d^2 - 2abcd + b^2c^2 = (ad - bc)^2 . \end{aligned}

S0S \ge 0 なので S=adbc=detAS = |ad - bc| = |\det A| です。

一般の nn でも同じことが成り立ちます。a1,,anRn\boldsymbol{a}_1, \ldots, \boldsymbol{a}_n \in \mathbb{R}^n の張る平行体を P(a1,,an)={itiai0ti1}P(\boldsymbol{a}_1, \ldots, \boldsymbol{a}_n) = \{\sum_i t_i \boldsymbol{a}_i \mid 0 \le t_i \le 1\} とし、その体積を vol\mathrm{vol} で表します。「体積」が満たすべき性質を素朴に列挙すると、次のようになります。

  • 正規化:単位立方体 P(e1,,en)P(\boldsymbol{e}_1, \ldots, \boldsymbol{e}_n) の体積は 11
  • 斉次性:1 辺を cc 倍(c>0c > 0)すれば体積は cc 倍。
  • せん断不変性:ある辺に他の辺の定数倍を足しても体積は変わらない(底面と高さが変わらないため)。
  • 退化:辺が一次従属なら平行体は低い次元に押しつぶされ、体積は 00

ここで符号を込めた量 vol~\widetilde{\mathrm{vol}}(右手系なら正、左手系なら負とする符号付き体積)を考えると、斉次性は c<0c < 0 も含めて成り立ち、加法性と合わせて多重線形性になります。せん断不変性と退化は交代性の別表現です。つまり vol~\widetilde{\mathrm{vol}} は多重線形・交代的で単位立方体に 11 を与える写像であり、定理 4.2 によって

vol~(a1,,an)=det(a1  an)\widetilde{\mathrm{vol}}(\boldsymbol{a}_1, \ldots, \boldsymbol{a}_n) = \det(\boldsymbol{a}_1\ \cdots\ \boldsymbol{a}_n)

でなければなりません。行列式とは符号付き体積の別名なのです。厳密には Rn\mathbb{R}^n のルベーグ測度 μ\mu に対する等式 μ(A(E))=detAμ(E)\mu(A(E)) = |\det A|\,\mu(E)EE は可測集合)として述べられ、その証明は重積分の変数変換公式の一部として解析学で与えられます。

e₁e₂面積 1Ae₁Ae₂面積 |det A|A
単位正方形は線形変換 A によって平行四辺形に写り、面積は det A の絶対値倍になる

例 8.2拡大率・せん断・裏返し

図の右側は

A=(211232),detA=232112=312=52A = \begin{pmatrix} 2 & 1 \\ \tfrac{1}{2} & \tfrac{3}{2} \end{pmatrix}, \qquad \det A = 2\cdot\tfrac{3}{2} - 1\cdot\tfrac{1}{2} = 3 - \tfrac{1}{2} = \tfrac{5}{2}

による像です。単位正方形(面積 11)が面積 5/25/2 の平行四辺形に写っています。命題 8.1u=Ae1=(2,1/2)T\boldsymbol{u} = A\boldsymbol{e}_1 = (2, 1/2)^{\mathsf{T}}v=Ae2=(1,3/2)T\boldsymbol{v} = A\boldsymbol{e}_2 = (1, 3/2)^{\mathsf{T}} に適用しても 23/211/2=5/2|2 \cdot 3/2 - 1 \cdot 1/2| = 5/2 で一致します。

典型的な変換を並べると、行列式が何を測っているかがはっきりします。次の 5 つの行列を考えます。

Sk=(1k01),Rθ=(cosθsinθsinθcosθ),F=(0110),E=(3001),Π=(1000)S_k = \begin{pmatrix} 1 & k \\ 0 & 1 \end{pmatrix}, \quad R_\theta = \begin{pmatrix} \cos\theta & -\sin\theta \\ \sin\theta & \cos\theta \end{pmatrix}, \quad F = \begin{pmatrix} 0 & 1 \\ 1 & 0 \end{pmatrix}, \quad E = \begin{pmatrix} 3 & 0 \\ 0 & 1 \end{pmatrix}, \quad \Pi = \begin{pmatrix} 1 & 0 \\ 0 & 0 \end{pmatrix}
行列変換行列式幾何的な意味
SkS_kせん断11k0=11 \cdot 1 - k \cdot 0 = 1傾けるだけで、面積も向きも保つ
RθR_\theta回転cos2θ+sin2θ=1\cos^2\theta + \sin^2\theta = 1面積も向きも保つ
FF軸の入れ替え(鏡映)0011=10 \cdot 0 - 1 \cdot 1 = -1面積は保つが向きが反転する
EE横方向の拡大3100=33 \cdot 1 - 0 \cdot 0 = 3面積が 3 倍になる
Π\Pi第 1 軸への射影1000=01 \cdot 0 - 0 \cdot 0 = 0直線につぶれ、面積が消える

最後の行が 定理 7.1 の幾何的な意味です。detA=0\det A = 0 とは、単位立方体の像が「厚みを失う」ことであり、そのとき AA は情報を落としているので逆変換が作れません。

積の定理も幾何的に読めます。BB が体積を detB\det B 倍にし、AA が体積を detA\det A 倍にするなら、続けて施した ABAB は体積を detAdetB\det A \cdot \det B 倍にするはずです。定理 6.1 はこの直観の正確な形です。det(A1)=1/detA\det(A^{-1}) = 1/\det A も「拡大したものを元に戻すには同じ率で縮める」と読めます。

9. 計算法とデータ解析での現れ方

Section titled “9. 計算法とデータ解析での現れ方”

理論的な定義と実際の計算手順は別物です。ライプニッツの公式は n!n! 個の項の和であり、各項が n1n-1 回の乗算を含むので、必要な乗算はおよそ n!(n1)n! \cdot (n-1) 回です。一方、行基本変形で上三角化してから対角成分を掛ける方法(ガウスの消去法、LU 分解)は乗除算がおよそ n3/3n^3/3 回で済みます。

nnライプニッツの公式の項数 n!n!掃き出しの乗除算回数(概算 n3/3n^3/3
551201204242
101036288003628800333333
20202.4×10182.4 \times 10^{18}26672667
50503.0×10643.0 \times 10^{64}4166741667

n=20n = 20 の時点で、毎秒 10910^9 項を計算できる計算機でもライプニッツの公式は 70 年以上かかります。定義式をそのまま実装してはいけません。

例 9.14 次行列式を二通りに計算する

A=(01212131651652394)A = \begin{pmatrix} 0 & 1 & 2 & 1 \\ 2 & 1 & 3 & 1 \\ 6 & 5 & 16 & 5 \\ 2 & 3 & 9 & 4 \end{pmatrix}

方法 1:行基本変形。 まず第 1 行と第 2 行を入れ替えます。命題 4.3 (1)(5) より、この操作で行列式は 1-1 倍になるので、入れ替えた行列を AA' とすると detA=detA\det A' = -\det A です。

A=(21310121651652394)A' = \begin{pmatrix} 2 & 1 & 3 & 1 \\ 0 & 1 & 2 & 1 \\ 6 & 5 & 16 & 5 \\ 2 & 3 & 9 & 4 \end{pmatrix}

次に、第 3 行から第 1 行の 33 倍を、第 4 行から第 1 行の 11 倍を引きます。命題 4.3 (3)(5) より行列式は変わりません。

(2131012102720263)\begin{pmatrix} 2 & 1 & 3 & 1 \\ 0 & 1 & 2 & 1 \\ 0 & 2 & 7 & 2 \\ 0 & 2 & 6 & 3 \end{pmatrix}

続いて第 3 行と第 4 行から第 2 行の 22 倍を引き、最後に第 4 行から第 3 行の 2/32/3 倍を引きます。

(2131012100300021)(2131012100300001)\begin{pmatrix} 2 & 1 & 3 & 1 \\ 0 & 1 & 2 & 1 \\ 0 & 0 & 3 & 0 \\ 0 & 0 & 2 & 1 \end{pmatrix} \longrightarrow \begin{pmatrix} 2 & 1 & 3 & 1 \\ 0 & 1 & 2 & 1 \\ 0 & 0 & 3 & 0 \\ 0 & 0 & 0 & 1 \end{pmatrix}

上三角になったので 命題 3.3 (2) より、この行列の行列式は 2131=62 \cdot 1 \cdot 3 \cdot 1 = 6 です。これは detA\det A' に等しく、detA=detA=6\det A = -\det A' = -6 を得ます。

方法 2:余因子展開。 第 1 行は 00 を含むので展開に向いています。定理 5.2 (2) を i=1i = 1 で使うと、符号は (1)1+j(-1)^{1+j} ですから

detA=1detA12+2detA131detA14\det A = -1 \cdot \det A_{12} + 2 \cdot \det A_{13} - 1 \cdot \det A_{14}

です(a11=0a_{11} = 0 の項は消えます)。3 つの小行列式をサラスの規則で計算します。

detA12=det(2316165294)=2(6445)3(2410)+1(5432)=3842+22=18,\det A_{12} = \det\begin{pmatrix} 2 & 3 & 1 \\ 6 & 16 & 5 \\ 2 & 9 & 4 \end{pmatrix} = 2(64 - 45) - 3(24 - 10) + 1(54 - 32) = 38 - 42 + 22 = 18,detA13=det(211655234)=2(2015)1(2410)+1(1810)=1014+8=4,\det A_{13} = \det\begin{pmatrix} 2 & 1 & 1 \\ 6 & 5 & 5 \\ 2 & 3 & 4 \end{pmatrix} = 2(20 - 15) - 1(24 - 10) + 1(18 - 10) = 10 - 14 + 8 = 4,detA14=det(2136516239)=2(4548)1(5432)+3(1810)=622+24=4.\det A_{14} = \det\begin{pmatrix} 2 & 1 & 3 \\ 6 & 5 & 16 \\ 2 & 3 & 9 \end{pmatrix} = 2(45 - 48) - 1(54 - 32) + 3(18 - 10) = -6 - 22 + 24 = -4.

よって detA=18+8+4=6\det A = -18 + 8 + 4 = -6 となり、方法 1 と一致します。44 次でも余因子展開は 33 次を 3 回計算する必要があり、次数が上がると急速に不利になります。

数値計算ライブラリも内部では LU 分解を使っています。

import numpy as np
A = np.array([
[0.0, 1.0, 2.0, 1.0],
[2.0, 1.0, 3.0, 1.0],
[6.0, 5.0, 16.0, 5.0],
[2.0, 3.0, 9.0, 4.0],
])
print(np.linalg.det(A)) # -6.0 にごく近い値(浮動小数点誤差を含む)
sign, logabsdet = np.linalg.slogdet(A)
print(sign, np.exp(logabsdet)) # -1.0 と 6.0 にごく近い値

slogdet は符号と logdetA\log|\det A| を別々に返します。次元が大きいと det\det そのものは容易に桁あふれ・桁落ちを起こす(対角成分の積なので、10001000 個の 0.10.1 を掛ければ 10100010^{-1000} になります)ため、統計や機械学習では det\det ではなく logdet\log\det を扱うのが標準です。対称正定値行列 Σ\Sigma ならコレスキー分解 Σ=LLT\Sigma = LL^{\mathsf{T}} を使って

logdetΣ=log((detL)2)=2i=1nlogLii\log\det\Sigma = \log\big((\det L)^2\big) = 2\sum_{i=1}^{n}\log L_{ii}

と計算できます(定理 6.1命題 3.3 (1)(2) を使いました)。

例 9.2共分散行列の行列式(一般化分散)

2 変数のデータから標本共分散行列

S=(4223)S = \begin{pmatrix} 4 & 2 \\ 2 & 3 \end{pmatrix}

が得られたとします。detS=4322=8\det S = 4 \cdot 3 - 2 \cdot 2 = 8 であり、この値を一般化分散と呼びます。意味を見ます。

まず固有値を求めます。φS(λ)=det(λI2S)=(λ4)(λ3)4=λ27λ+8\varphi_S(\lambda) = \det(\lambda I_2 - S) = (\lambda - 4)(\lambda - 3) - 4 = \lambda^2 - 7\lambda + 8 で、根は λ=(7±17)/2\lambda = (7 \pm \sqrt{17})/2、数値では λ15.562\lambda_1 \approx 5.562λ21.438\lambda_2 \approx 1.438 です。積を取ると λ1λ2=8=detS\lambda_1\lambda_2 = 8 = \det S、和は λ1+λ2=7=trS\lambda_1 + \lambda_2 = 7 = \mathrm{tr}\,S になっています。

積が一致するのは偶然ではありません。特性多項式 φA(λ)=det(λInA)\varphi_A(\lambda) = \det(\lambda I_n - A) は、ライプニッツの公式で σ=id\sigma = \mathrm{id} の項が i(λaii)\prod_i (\lambda - a_{ii})、それ以外の項の次数が n2n-2 以下であることから、λ\lambdann 次モニック多項式です。よって複素数の範囲で φA(λ)=i=1n(λλi)\varphi_A(\lambda) = \prod_{i=1}^{n}(\lambda - \lambda_i) と因数分解できます。λ=0\lambda = 0 を代入すると、左辺は det(A)=(1)ndetA\det(-A) = (-1)^n\det A命題 4.3 (2))、右辺は (1)niλi(-1)^n\prod_i \lambda_i ですから

detA=λ1λ2λn\det A = \lambda_1\lambda_2\cdots\lambda_n

が一般に成り立ちます。行列式は固有値の積なのです(系 4.5[固有値と固有ベクトル]対角化とジョルダン標準形 も参照してください)。

幾何的な意味も明快です。楕円 E={xR2xTS1x1}E = \{\boldsymbol{x} \in \mathbb{R}^2 \mid \boldsymbol{x}^{\mathsf{T}}S^{-1}\boldsymbol{x} \le 1\}(データの散らばりを表す等確率楕円)は、単位円板を S1/2S^{1/2} で写した像なので、その面積は 命題 8.1 の一般化により πdet(S1/2)=πdetS=22π8.886\pi \cdot \det(S^{1/2}) = \pi\sqrt{\det S} = 2\sqrt{2}\,\pi \approx 8.886 です。一般化分散はデータ雲の「広がりの体積」を測っていることになります。もし 2 つの変数が完全に相関していれば楕円は線分につぶれ、detS=0\det S = 0 になります。

この視点は主成分分析(PCA)に直結します。PCA は共分散行列を直交行列で対角化して分散の大きい方向を取り出す手法で、detS=iλi\det S = \prod_i \lambda_i は各主成分の分散の積、すなわち全体の広がりの体積です。λi\lambda_i のうち極端に小さいものがあれば、その方向にはほとんど情報がなく、次元を削っても失うものが少ない、と判断できます。また多変量正規分布の対数尤度に現れる 12logdetΣ-\frac{1}{2}\log\det\Sigma の項は、この「広がりの体積」に対する罰則として働きます。直交行列による対角化の一般論は 内積空間とグラム・シュミット直交化スペクトル定理 で扱います(実対称行列が直交行列で対角化できることは 系 4.3[スペクトル定理])。

演習 10.1

平面上の 3 点 P(1,2)P(1, 2)Q(4,3)Q(4, 3)R(2,6)R(2, 6) を頂点とする三角形の面積を、行列式を用いて求めてください。また PQRP \to Q \to R の回り方が反時計回りか時計回りかを判定してください。

解答

PP を基点として PQ=(3,1)T\overrightarrow{PQ} = (3, 1)^{\mathsf{T}}PR=(1,4)T\overrightarrow{PR} = (1, 4)^{\mathsf{T}} です。この 2 ベクトルが張る平行四辺形の面積は 命題 8.1 より

det(3114)=3411=11\left| \det\begin{pmatrix} 3 & 1 \\ 1 & 4 \end{pmatrix} \right| = |3 \cdot 4 - 1 \cdot 1| = 11

です。三角形はこの平行四辺形の半分なので、面積は 11/211/2 です。

符号は det=11>0\det = 11 > 0 ですから、(PQ,PR)(\overrightarrow{PQ}, \overrightarrow{PR}) は標準基底 (e1,e2)(\boldsymbol{e}_1, \boldsymbol{e}_2) と同じ向き、すなわち反時計回りです。§8 で述べたとおり、行列式の絶対値が面積を、符号が向きを担っています。

演習 10.2標準

nn を奇数とし、AMn(R)A \in M_n(\mathbb{R}) が交代行列(AT=AA^{\mathsf{T}} = -A)であるとします。detA=0\det A = 0 を示してください。また、nn が偶数のときにはこの結論が成り立たないことを n=2n = 2 の例で示してください。

解答

命題 3.3 (1) より detA=detAT\det A = \det A^{\mathsf{T}} です。仮定 AT=AA^{\mathsf{T}} = -A を代入すると detA=det(A)\det A = \det(-A) となります。ここで A-AAAnn 個の列すべてを 1-1 倍したものですから、命題 4.3 (2) より det(A)=(1)ndetA\det(-A) = (-1)^n \det A です。nn が奇数なので (1)n=1(-1)^n = -1、したがって

detA=detA\det A = -\det A

となり、両辺に detA\det A を加えて 2detA=02\det A = 0 を得ます。R\mathbb{R} では 202 \ne 0 なので detA=0\det A = 0 です。

nn が偶数のときは (1)n=1(-1)^n = 1 となり上の議論は何も言いません。実際、n=2n = 2

A=(0110)A = \begin{pmatrix} 0 & 1 \\ -1 & 0 \end{pmatrix}

AT=AA^{\mathsf{T}} = -A を満たす交代行列ですが、detA=001(1)=10\det A = 0 \cdot 0 - 1 \cdot (-1) = 1 \ne 0 です。奇数という仮定が本質的だったことがわかります。

演習 10.3標準

p,q1p, q \ge 1n=p+qn = p + q とし、AMp(K)A \in M_p(\mathbb{K})DMq(K)D \in M_q(\mathbb{K})BBp×qp \times q 行列、OOq×pq \times p 零行列として

M=(ABOD)Mn(K)M = \begin{pmatrix} A & B \\ O & D \end{pmatrix} \in M_n(\mathbb{K})

とします。detM=detAdetD\det M = \det A \cdot \det D を示してください。

解答

定義(定義 3.1)に従い detM=σSnsgn(σ)j=1nmσ(j)j\det M = \sum_{\sigma \in S_n}\mathrm{sgn}(\sigma)\prod_{j=1}^{n} m_{\sigma(j)\,j} を考えます。MM の成分は、i>pi > p かつ jpj \le p のとき(左下のブロック OO の位置)mij=0m_{ij} = 0 です。

項が 00 でないためには、すべての jpj \le p について σ(j)p\sigma(j) \le p が必要です。これは σ\sigma{1,,p}\{1, \ldots, p\}{1,,p}\{1, \ldots, p\} の中へ写すということで、σ\sigma が単射で集合が有限であることから、{1,,p}\{1, \ldots, p\} の上への全単射になります。したがって σ\sigma は残りの {p+1,,n}\{p+1, \ldots, n\} も自分自身の上に写します。そこで αSp\alpha \in S_pσ\sigma{1,,p}\{1, \ldots, p\} への制限、βSq\beta \in S_qβ(k)=σ(p+k)p\beta(k) = \sigma(p + k) - p で定めると、σ\sigma と対 (α,β)(\alpha, \beta) は 1 対 1 に対応します。

符号を比べます。転倒する組は 3 種類に分かれます。両方が {1,,p}\{1,\ldots,p\} に属する組の転倒数は inv(α)\mathrm{inv}(\alpha)、両方が {p+1,,n}\{p+1,\ldots,n\} に属する組の転倒数は inv(β)\mathrm{inv}(\beta) です。ip<ji \le p < j という組については σ(i)p<σ(j)\sigma(i) \le p < \sigma(j) なので決して転倒しません。よって inv(σ)=inv(α)+inv(β)\mathrm{inv}(\sigma) = \mathrm{inv}(\alpha) + \mathrm{inv}(\beta)、すなわち sgn(σ)=sgn(α)sgn(β)\mathrm{sgn}(\sigma) = \mathrm{sgn}(\alpha)\mathrm{sgn}(\beta) です。

積の部分は、jpj \le p では mσ(j)j=aα(j)jm_{\sigma(j)j} = a_{\alpha(j)j}j=p+kj = p + kkqk \le q)では mσ(j)j=dβ(k)km_{\sigma(j)j} = d_{\beta(k)k} です。以上をまとめると

detM=αSpβSqsgn(α)sgn(β)j=1paα(j)jk=1qdβ(k)k=(αsgn(α)jaα(j)j)(βsgn(β)kdβ(k)k)\det M = \sum_{\alpha \in S_p}\sum_{\beta \in S_q} \mathrm{sgn}(\alpha)\mathrm{sgn}(\beta) \prod_{j=1}^{p} a_{\alpha(j)j} \prod_{k=1}^{q} d_{\beta(k)k} = \left(\sum_{\alpha}\mathrm{sgn}(\alpha)\prod_j a_{\alpha(j)j}\right)\left(\sum_{\beta}\mathrm{sgn}(\beta)\prod_k d_{\beta(k)k}\right)

となり、右辺は detAdetD\det A \cdot \det D です。なお右上のブロック BB が結果に一切現れないことに注意してください。これは 命題 3.3 (2) の三角行列の公式のブロック版です。

演習 10.4

n2n \ge 2 とします。任意の AMn(K)A \in M_n(\mathbb{K}) に対し det(adjA)=(detA)n1\det(\mathrm{adj}\,A) = (\det A)^{n-1} が成り立つことを示してください(detA=0\det A = 0 の場合も含めて示すこと)。

解答

命題 5.4 より AadjA=(detA)InA \cdot \mathrm{adj}\,A = (\det A)I_n です。両辺の行列式を取り、定理 6.1命題 4.3 (2)(det(cIn)=cndetIn=cn\det(cI_n) = c^n \det I_n = c^n)を使うと

detAdet(adjA)=(detA)n()\det A \cdot \det(\mathrm{adj}\,A) = (\det A)^n \qquad \cdots (\ast)

を得ます。

場合 1:detA0\det A \ne 0 ()(\ast) の両辺を detA\det A で割って det(adjA)=(detA)n1\det(\mathrm{adj}\,A) = (\det A)^{n-1} です。

場合 2:detA=0\det A = 0 このとき右辺は n11n - 1 \ge 1 より (detA)n1=0(\det A)^{n-1} = 0 なので、det(adjA)=0\det(\mathrm{adj}\,A) = 0 を示せば十分です(()(\ast)0=00 = 0 となるだけで情報を与えないため、別の議論が必要です)。背理法で det(adjA)0\det(\mathrm{adj}\,A) \ne 0 と仮定します。定理 7.1 より adjA\mathrm{adj}\,A は正則で、逆行列 (adjA)1(\mathrm{adj}\,A)^{-1} を持ちます。一方 命題 5.4detA=0\det A = 0 から AadjA=OA \cdot \mathrm{adj}\,A = O ですから、右から (adjA)1(\mathrm{adj}\,A)^{-1} を掛けて A=OA = O となります。しかし A=OA = O ならば、その (i,j)(i,j) 小行列はすべて n11n - 1 \ge 1 次の零行列であり、行列式は 00命題 4.3 (4))なので全余因子が 00、すなわち adjA=O\mathrm{adj}\,A = O です。これは adjA\mathrm{adj}\,A が正則であることに矛盾します。よって det(adjA)=0=(detA)n1\det(\mathrm{adj}\,A) = 0 = (\det A)^{n-1} です。

n2n \ge 2 という仮定は場合 2 で本質的に効いています。n=1n = 1 では adjA=(1)\mathrm{adj}\,A = (1) と約束するため det(adjA)=1=(detA)0\det(\mathrm{adj}\,A) = 1 = (\det A)^0 となり、結論自体は成り立ちますが、上の議論はそのままでは使えません。)

  • 齋藤正彦『線型代数入門』東京大学出版会、1966 — 行列式の章。置換の符号からライプニッツの公式、余因子展開までの標準的な流れ。
  • 佐武一郎『線型代数学』裳華房(数学選書)、新装版 2015 — 行列式の章。交代多重線形形式としての扱いが明快です。
  • S. Lang, Linear Algebra, 3rd ed., Springer, 1987 — 行列式の章。この記事の 定理 4.2 のような公理的特徴づけを軸にした構成。
  • 杉浦光夫『解析入門 II』東京大学出版会、1985 — 重積分の変数変換公式。det|\det| が体積の拡大率として現れることの解析的な証明。
  • G. H. Golub, C. F. Van Loan, Matrix Computations, 4th ed., Johns Hopkins University Press, 2013 — ガウスの消去法と LU 分解の章。行列式の数値計算と桁あふれの扱い。
  • M. Kline, Mathematical Thought from Ancient to Modern Times, Oxford University Press, 1972 — 行列式と行列の章。関孝和・ライプニッツ・クラメル・コーシーに至る歴史的経緯。

この記事の誤りを報告する ・運営: 夢現技研合同会社料金プラン利用条件特定商取引法に基づく表記

© 2026 夢現技研合同会社 ・本文の LLM への入力は自由です。コード例は MIT ライセンスです。