行列式と逆行列 — 面積の拡大率と、巻き戻しボタン

行列は空間を変形する装置でした。ではその変形で、面積は何倍になる?——答えを1つの数で言い当てるのが行列式 det。そして det が 0 でない限り、変形には逆行列という「巻き戻しボタン」が付いてきます。つぶれたら最後、もう戻せない。その一部始終を動かして確かめます。

1. 行列式は「面積の拡大率」

「行列は変換である」の回で見たとおり、2×2 行列は平面の格子をまるごと歪めます。このとき面積 1 の単位正方形は、行列の2つの列ベクトル (a, c) と (b, d) が張る平行四辺形に写ります。その平行四辺形の符号付き面積こそが行列式 det です。

下のデモで a, b, c, d を動かしてみてください。det の値と平行四辺形の面積が常に一致すること、そして det が負になると図形が「裏返る」ことが見えます。

det は面積の拡大率 — 単位正方形の運命をライブで見る
点線=元の単位正方形、色付き=その像。水色とオレンジの矢印は行列の列ベクトル。d を負側へ動かすと det の符号が反転し、緑→赤に変わって「F」が鏡文字になります(向きの反転)。a=1, b=0.5, c=0.5, d=0.25 のように列を平行に近づけると面積が 0 に近づきます。
det (abcd) = ad − bc 2つの列ベクトル (a, c) と (b, d) が張る平行四辺形の符号付き面積
POINT — det の幾何的な読み方 |det| = 面積の拡大率(3×3 なら体積の拡大率)、符号 = 向き(負なら鏡映で裏返る)。さらに det(AB) = det A · det B が成り立つ——「A で α 倍、続けて B で β 倍なら、合計 αβ 倍」という拡大率の掛け算そのものです。

2. det = 0 — 平面が1本の直線につぶれる瞬間

det = ad − bc = 0 とは、2つの列ベクトルが一直線上に並んでしまったということ。張れる平行四辺形の面積は 0 になり、2次元の平面全体がたった1本の直線に押しつぶされます。

下のデモでは、行列を「健全な行列」から「det = 0 の行列」まで連続的に変化させます。注目してほしいのは、別々の場所にいた点 P と Q が同じ点に重なる瞬間です。

det → 0 で世界がつぶれる — 情報が失われる瞬間
格子は行列で変形された平面。det メーターが 0 に近づくにつれ格子がしぼみ、100% でピンクの点線=1本の直線に完全に押しつぶされます。「進み具合」スライダーを手で動かすと、つぶれる直前をスローで観察できます。P′ と Q′ が重なったら——出力だけからは、入力が P だったのか Q だったのか、もう誰にも分かりません。
注意 — つぶれた変換は元に戻せない det = 0 の行列では、無数の異なる入力が同じ出力に写ります(情報の喪失)。一度つぶれた後から元の点を一意に言い当てることは原理的に不可能——だから det = 0 の行列に逆行列は存在しないのです。逆に det ≠ 0 なら写り先は1対1で、必ず巻き戻せます。

3. 逆行列 = 変換の巻き戻しボタン

行列 A の変形を正確に打ち消す行列を逆行列 A−1 と呼びます。定義は A−1A = AA−1 = I(単位行列=何もしない変換)。「A で歪めて、A−1 で巻き戻すと、格子が完全に元へ戻る」——この往復を目で確かめましょう。

A を適用 → A⁻¹ で巻き戻す — 往復アニメーション
①〜④のサイクルで、A による変形と A⁻¹ による巻き戻しを繰り返します。「ほぼ特異」を選ぶと、det が小さいせいで A⁻¹ の成分が数十倍に膨れ上がるのが分かります——つぶれかけの変換を戻すには、極端な引き伸ばしが必要になるからです。
A−1 = 1ad − bc (d−b−ca) 2×2 の逆行列。対角を入れ替え、非対角の符号を反転し、det で割る(ad − bc ≠ 0 のときだけ定義される)

式の先頭に 1/(ad − bc) が立っていることに注目してください。det = 0 なら分母が 0 になって式が崩壊する——「つぶれたら戻せない」が、式の顔つきにもそのまま現れています。そして det が 0 に近いだけでも成分は巨大になり、わずかな誤差が何十倍にも増幅されます(数値計算で悪名高い「条件数が悪い」状態の入り口です)。

4. 連立方程式 — det は「解けるかどうか」の判定器

逆行列の最大の使いどころが連立1次方程式です。2本の方程式

x + y = 3
cx + dy = e は、行列を使えば Ax = b と1行で書ける。A = 係数行列、b = 右辺のベクトル

幾何的には1本の方程式=1本の直線で、解=2直線の交点。係数行列の det が 0 でなければ2直線の傾きは異なり、交点はちょうど1つに決まります。det = 0 だと2直線は平行——ずれていれば解なし、ぴったり重なれば解が無数です。

2直線の交点 = 連立方程式の解 — det が運命を分ける
1本目の直線 x + y = 3(水色)は固定、2本目(オレンジ)をスライダーで動かします。c = d にすると det = 0 になり2直線が平行に(解なし)。さらに c = d = 1, e = 3 にすると2本が完全に重なり、直線上のすべての点が解になります。
Ax = b  ⟹  x = A−1b (det A ≠ 0 のとき) 「A で歪めた結果が b になった。では歪める前はどこ?」——巻き戻せば1発で分かる

5. まとめ

一歩先へ — 実務では逆行列を「作らない」 数式の上では x = A⁻¹b でも、実際の数値計算ライブラリは A⁻¹ を陽に計算しません。ガウス消去(LU 分解)で方程式を直接解くほうが速く・省メモリで・誤差にも強いからです。NumPy でも inv(A) @ b ではなく solve(A, b) が正解。逆行列そのものが必要になる場面は、実は驚くほど少ない——「A⁻¹ は概念として理解し、計算としては避ける」が数値計算の常識です。