行列式は,なぜ面積や体積になるのか

― 講義ノート「(16) 行列式が 0 であることと 0 でないことは何を意味するのか?」の導出

行列式は,覚えるべき計算手順として教わってしまうことが多い量です. でも本当は,たった一言で言えます ―― 行列式は,ベクトルたちが張る図形の「大きさ」です. 2 次元なら面積,3 次元なら体積.そう思って眺めると, det = 0 も,線形独立も,rank も,連立方程式の解の形も, ぜんぶ同じ 1 枚の絵の別の言い方になります.

この導出の道筋 ① 2×2 の行列式が平行四辺形の面積になることを,じかに計算して確かめる. ② 「面積」が満たすべき性質を 3 つ書き出すと,それだけで行列式の形が決まってしまうことを見る. ③ 同じ 3 つの性質を 3 次元に持ち上げると体積になる. ④ つぶれた(det = 0)ときに何が起きるかを,rank と自由度で数える.

1. 2×2 ―― まず,じかに計算してみる

講義ノートの例をそのまま追います. a= (21), b= (24) を列に並べて行列を作ると

(1) A= [ 22 14 ] , |A|= 2·4−2·1=6

一方,この 2 本が張る平行四辺形の面積を幾何で求めます. 全体を囲む長方形(横 4,縦 5)から,まわりの 2 つの長方形(合計 4)と 4 つの三角形(合計 10)を引くと

(2) S1=20− (4+10)=6

(1) = (2).行列式は,平行四辺形の面積そのものでした.

一般に成り立つこと

a=(ax,ay), b=(bx,by) として,同じことをやります.平行四辺形の面積は「底辺 × 高さ」= |a| |b| sin⁡θ です. ここで sin2θ=1−cos2θ と a·b= |a| |b|cos⁡θ を使うと,

(面積)2 =|a|2 |b|2 −(a·b)2 = (ax2+ay2) (bx2+by2) −(axbx +ayby)2

展開すると ax2bx2 と ay2by2 が消え,

(3) (面積)2 =(axby −aybx)2 ⟹ 面積= |axby −aybx|
これが Lagrange の恒等式です |a|2 |b|2 −(a·b)2 =|a×b|2. 2 次元の行列式は,外積の(ただ 1 つの)成分そのものだった,ということです.

図 1.長方形から余りを引くと,行列式が残る. 講義ノートの数え方をそのまま絵にしたものです. 外側の長方形から,まわりの三角形と長方形を引くと平行四辺形の面積になり, それが axby −aybx と一致します.

2. 面積が満たすべき 3 つの性質

実は,計算しなくても行列式の形は決まってしまいます. 「面積」に当然あってほしい性質を書き出すだけでよいのです.

性質式面積として当たり前なこと
線形性 D(ka,b) =kD(a,b)
D(a+a′,b) =D(a,b) +D(a′,b)
(b についても同じ)
底辺を 2 倍に伸ばせば,面積も 2 倍.底辺を 2 本に分ければ,面積も 2 つの和
交代性 D(a,a)=0 同じ向きの 2 本では,平行四辺形がつぶれる
規格化 D(e1,e2)=1 単位正方形の面積は 1

この 3 つだけで十分です. a=axe1 +aye2, b=bxe1 +bye2 を入れて線形性でばらすと 4 項出ますが,交代性のおかげで D(e1,e1) と D(e2,e2) が消え, さらに交代性から出る D(e2,e1) =−D(e1,e2) (下の囲みを見てください)でまとめると,

(4) D(a,b) =(axby −aybx) D(e1,e2) =axby −aybx
行列式は「発明」ではなく「必然」 面積らしさを 3 つ要求しただけで,行列式の式が一意に出てきました. だから逆に言えば ―― 行列式とは,面積(体積)を代数で書いたものにほかなりません.

交代性からは「2 つの列を入れ替えると符号が変わる」も出ます (D(a+b, a+b)=0 を展開してみてください). この符号が,向き(2 次元なら裏返し,3 次元なら右手系・左手系)を表します.

3. 3×3 ―― 体積になる

同じ 3 つの性質を 3 本のベクトルに拡張すると,出てくるのは

(5) D(f,g,h) =(f×g) ·h

この形は,体積の定義そのままです. |f×g| が底面の平行四辺形の面積, f×g は底面に垂直なので, h をその向きに射影した長さが高さ. 掛ければ底面積 × 高さ = 体積です. ただし (f × g)·h は符号つきの量で,体積そのものはその絶対値 |(f × g)·h| です. 符号は右手系か左手系かを表します.

講義ノートの例で確かめます. f=(1,2,3), g=(2,−1,1), h=(1,1,2):

(6) |C|= −2+6+2 +3−8−1=0
体積 0 = 3 本が同じ平面に乗っている 実際 f×g= (5,5,−5) で, h·(5,5,−5) =5+5−10=0. h は底面の法線と垂直 ―― つまり底面の中にいます. もっとはっきり言えば h = 0.6 f + 0.2 g. h は新しい方向を何も持ち込んでいないので,高さが立たず,体積が 0 になるのです. 講義ノートが「この f, g, h は全て面 S 上にある!→ 線形従属である」と書いているのは,このことです.

4. det = 0 は「つぶれた」という意味

ここまでをまとめると,次の言い換えがすべて同じ意味になります (幾何の欄は n = 3,つまり 3 次元の場合です.2 次元なら「平面」を「直線」,「直線」を「原点」と読み替えてください).

幾何の言葉代数の言葉連立方程式の言葉
面積(体積)が 0 でないdet ≠ 0,線形独立,rank = n解は原点だけ(自明な解のみ)
つぶれて平面になったdet = 0,rank = n − 1解が直線になる(自由度 1)
つぶれて直線になったdet = 0,rank = n − 2解が平面になる(自由度 2)
「どこまでつぶれたか」を数えるのが rank です det はつぶれたかどうかしか教えてくれません(0 か,0 でないか). 平面までつぶれたのか,直線までつぶれたのかを区別するには rank が要ります. rank は「行基本変形で階段形にしたとき,0 でない行の数」= 本当に効いている式(独立な方向)の本数です.

5. 自由度 = n − rank

同次連立方程式 Mx = 0 を考えます.講義ノートの例②:

{ x1+2x2−x3=0 2x1−x2+3x3=0 4x1+3x2+x3=0 ⟶ [ 12−1 0−11 000 ] rank = 2

3 本目の式は,1 本目・2 本目から作れてしまいます(消去すると 0 = 0 になる). つまり本当に効いている式は 2 本だけ.未知数は 3 つあるので,

(7) 自由度=n−rank M =3−2=1

x3=k と置けば x2=k, x1=−k. 解は x = k(−1, 1, 1) ―― 原点を通る 1 本の直線まるごとです. 例③(係数行列を M′ と書きます)では 3 本の式がすべて同じ式の定数倍なので rank = 1,自由度 2 で, 解は 2x1 − x2 + x3 = 0 という平面になります.

3 枚の平面の交わり,と思うと分かりやすい ax1 + bx2 + cx3 = 0 は原点を通る平面です. 3 枚の法線が線形独立なら,つまり 3 枚ぶんの向きが出そろっていれば,共通点は原点だけ(自由度 0). 2 枚ぶんしか向きが無ければ,交わりは直線(自由度 1). 1 枚ぶんしか無ければ,交わりは平面まるごと(自由度 2). rank とは「何枚ぶんの向きがあるか」なのです.

6. det(AB) = det A · det B

行列を「変換」と見ると,|det| は面積が何倍になるかの倍率です. だから 2 つ続けて変換すれば,面積の倍率は掛け算になり,向きが裏返るかどうかも掛け合わされます ―― それが det(AB) =detA·detB です. 行列の積の定義から力ずくで証明することもできますが,面積の倍率だと思えば当たり前です.

図 2.行列は「面積を何倍にするか」. 黄色い単位正方形(面積 1)が B で青い平行四辺形に, さらに A で緑の平行四辺形に写ります. 面積は |detB| 倍, |detA| 倍と 2 段で変わり, 合わせて |detA| ·|detB| 倍になります.

7. なぜ量子化学で「行列式 = 0」と置くのか

ここまで来ると,永年方程式の意味がそのまま読めます.分子軌道の問題では

(8) (H−εS) c=0

という同次連立方程式が出てきます. c = 0 では波動関数が消えてしまうので,自明でない解が必要です. そのためには「つぶれていなければならない」―― つまり

(9) det(H−εS) =0

この条件から ε(エネルギー準位)が決まります. 「行列式を 0 と置く」は計算のおまじないではなく, 「解が原点だけにならないように,空間をわざとつぶす」という幾何の要請だったのです. 実際に動かして確かめたい方は Lagrange の未定乗数法のページへどうぞ.

8. 数値で確かめる

シミュレーターに載っているコードそのものを走らせた結果です (32 項目,すべて通過).

確かめたこと結果
(1)(2):講義ノートの |A| = 6 と,幾何で数えた面積 6 が一致するか 両方 6.000000000000
(3):|det| = 底辺 × 高さ(ランダムなベクトル 500 組) 最大差 1.8×10−15
(5):|det| = 底面積 × 高さ(3 次元,ランダム 500 組) 最大差 1.4×10−14
(6):講義ノートの |C| = 0,rank = 2,h = 0.6f + 0.2g det = 0,法線 (5, 5, −5) に 3 本とも垂直
(4):列の入れ替えで符号反転,同じ列で 0,単位行列で 1,回転で 1 すべて厳密に成立
§6:det(AB) = det A · det B 5 = 5 × 1(厳密)
(7):例② rank 2 → 解 x = k(−1, 1, 1),M·x = 0 残差 0(厳密)
例③ rank 1 → 自由度 2,解は 2x₁ − x₂ + x₃ = 0 の平面 基底 2 本とも M′·v = 0
det ≠ 0 の例:rank 3,解空間の次元 0 x = 0 のみ
次元定理 rank + 自由度 = 3(ランダム 300 通り) 不一致 0 件
det = 0 ⟺ rank < 3(det = 0 の例を混ぜた 400 通り,うち 220 件が det = 0) 食い違い 0 件

9. まとめ

  1. 2×2 の行列式は平行四辺形の面積,3×3 は平行六面体の体積です (3)(5). 符号は向き(裏返し・右手系か左手系か)を表します.
  2. 「面積らしさ」を 線形性・交代性・単位正方形は 1 の 3 つだけ要求すると, 行列式の式が一意に決まってしまいます (4).行列式は発明ではなく必然です.
  3. det = 0 = つぶれた = 線形従属. 2 次元なら 2 本が 1 直線に,3 次元なら 3 本が 1 平面(または 1 直線)に乗っています.
  4. どこまでつぶれたかを数えるのが rank. 自由度 = n − rank で,同次連立方程式の解が 点・直線・平面のどれになるかが決まります (7).
  5. |det| は面積の拡大率.だから det(AB) =detA·detB は「倍率の掛け算」にすぎません.
  6. 量子化学の永年方程式 det(H − εS) = 0 は, 「波動関数が消えないよう,自明でない解を残すための条件」―― 幾何の要請でした (8)(9).

東京理科大学 望月研究室 / 講義ノート「(16) 行列式が 0 であることと 0 でないことは何を意味するのか?」より. §2 の「3 つの性質から一意に決まる」話と §6 の det(AB) は,ノートの外を補ったものです. 数値検証は倍精度の直接計算と,部分ピボット選択つき Gauss の消去法による. 動かして確かめたい方は シミュレーターへ. 数式はブラウザ標準の MathML で組んでいます(外部ライブラリ・通信は一切ありません).