MatrixCalc

行列式の計算機

50×50 までの任意の正方行列の行列式を、計算過程つきで求めます。掃き出し法、余因子展開、サラスの規則、モンタンテ法から選べます。

行列 A
: 3
: 3
行列 B
: 3
: 3
演算
結果
演算を選択するとここに結果が表示されます。エラーメッセージもここに表示されます。

ヒント: サイズを調整してください (最大 50×50)。A×B は Aの列数 = Bの行数が必要です。行列式/逆行列/トレース/べき乗は正方行列である必要があります。

React, Tailwind & shadcn/ui. No external math deps. — 日本語

上の欄に行列を入力し、応用タブを開いて det(A) を押してください。答えは すぐに出ます。計算過程のパネルを開けばどうやってその値に至ったかが分かり、同じ行列に対して四つの 方法を切り替えることもできます。授業で特定の方法を指定された場合に便利です。以下では、この数が何を 意味するのか、そしてそれぞれの方法がどう働くのかを、手で追えるように説明します。

行列式が語ること

行列式は一つの数であり、正方行列にのみ定義されます。その最も重要な役目は、一つの 問いに答えることです。この行列は正則か、という問いです。行列式が 0 なら、その行列は特異です。行が 線形従属で、逆行列は存在せず、それを係数とする連立方程式は解を持たないか、無限に持つかのどちらか になります。0 でない値であれば、その行列は正則です。

幾何的には、その変換が 2 次元では面積を、3 次元では体積を何倍にするかという倍率です。行列式が −2 なら 面積は 2 倍になり向きが反転します。0 なら空間は直線か 1 点へつぶれます。この演算が取り消せない理由は まさにそこにあります。符号は捨ててよい細部ではありません。変換が向きを保つのか、それとも鏡像にするの かを記録しているからです。

2×2 の公式

2×2 の行列では、行列式は主対角成分の積から反対角成分の積を引いたものです。

ab
cd
= a·d − b·c

ですから [[1, 2], [3, 4]] の行列式は 1·4 − 2·3 = −2 です。縦棒は行列式 の標準的な記法であって絶対値ではありません。結果が負になることはごく普通です。

サラスの規則(3×3 のみ)

3×3 の行列では、最初の 2 列を行列の右に書き写し、右下がりの三つの積を足して左下がりの三つの積を 引きます。上に読み込まれている行列で計算すると、

213
041
520
= (2·4·0 + 1·1·5 + 3·0·2) − (3·4·5 + 2·1·2 + 1·0·0) = 5 − 64 = −59

サラスの規則は速くて覚えやすいのですが、3×3 にしか使えません。4×4 版というものは 存在せず、それを自分で作ってしまうのは試験で最も多い誤りの一つです。3×3 を超えたら余因子展開か 掃き出し法が必要になります。

ラプラス展開(余因子)

任意の行または列を選び、行列式をその成分と余因子の積の和として書きます。余因子 C(i,j)(−1)^(i+j) に小行列式を掛けたもので、小行列式とは第 i 行と第 j 列を取り除いた行列の行列式です。

余因子展開はどんな大きさでも使え、行や列のほとんどが 0 のときは手計算で選ぶべき方法 です。0 が一つあるだけで、計算に取りかかる前に小行列式が丸ごと一つ消えるからです。ただし手間は n! のように増えるため、大きな行列には望みがありません。20×20 の行列式を余因子展開で 求めるとなると、人ひとりの原子の数より多くの演算が必要になります。

掃き出し法

これが計算機のやり方であり、この計算機も 4×4 以上ではこれを使います。行基本変形で行列を上三角形に 変形し、対角成分を掛け合わせます。帳尻を合わせる規則は三つです。

  • 2 行を入れ替えると、行列式は −1 倍になります。
  • ある行を k 倍すると、行列式も k 倍になります。
  • ある行の定数倍を別の行に足しても、行列式は変わりません。これが実際の作業を担う操作であり、掃き 出し法が安上がりである理由です。

手間は n! ではなく n³/3 程度です。この答えを生む分解こそが LU 分解なので、一度の掃き出しで行列式と二つの因子が同時に 手に入ります。

モンタンテ法

Bareiss のアルゴリズム、あるいは分数を出さない掃き出し法とも呼ばれます。行う変形は上と同じですが、 各段階のあとで全成分を一つ前の主成分で割ります。この割り算は必ず割り切れるので、整数の行列は 最初から最後まで整数のままです。途中で分数が現れることはなく、最後の主成分がそのまま行列式になります。

手計算では、整数行列の計算をきれいに保てるのがこの方法です。分母を引きずる場面が一度もないからです。 成分が厳密な値で、答えも厳密であってほしいときにも適しています。計算過程のパネルでこの方法を選ぶと、 同じ行列が分数を一つも出さずに解かれていく様子を見られます。

覚えておきたい性質

  • det(Aᵀ) = det(A)——行について成り立つことは列についても成り立つ
  • det(A·B) = det(A)·det(B)
  • det(A⁻¹) = 1 / det(A)
  • det(k·A) = kⁿ·det(A)(n×n の行列の場合)——スカラーが n 行すべてに掛かるため
  • 三角行列の行列式は、対角成分の積に等しい
  • 行列式は固有値の積であり、トレースがその和であるのと対をなす

よくある誤り

  • 4×4 にサラスを使う。この規則に 4×4 版はありません。掃き出し法か余因子展開を使ってください。
  • 縦棒を絶対値と読む。|A| は行列式の標準記法で、しばしば負になります。
  • 行の入れ替えで符号を忘れる。掃き出しの途中で入れ替えるたび、行列式は −1 倍になります。
  • det(A + B) = det(A) + det(B) と思い込む。これは誤りです。行列式は掛かるのであって、足されません。
  • 長方形の行列で行列式を求めようとする。定義されていません。正方でない行列で必要なのは、ほぼ確実に階数のほうです。

よくある質問

行列式が負になることはありますか。
あります。符号は変換が向きを反転させること、つまり鏡像になることを示します。拡大の倍率を表すのは絶対値のほうです。
行列式が 0 だと何を意味しますか。
その行列は特異です。行が線形従属で、逆行列を持たず、空間をより低い次元へつぶしてしまいます。
正方でない行列にも行列式はありますか。
ありません。行列式は正方行列にのみ定義されます。長方形の行列で必要になるのは、おそらく階数のほうです。
手計算ではどの方法を使うべきですか。
3×3 までは閉じた公式を使ってください。それより大きければ掃き出し法です。ただし、ほとんどが 0 の行や列があるなら、それに沿った余因子展開のほうが速くなります。
計算過程が分数で表示されるのはなぜですか。
計算エンジンが正確な有理数演算を使っているためです。1/3 は 0.3333 に流れず 1/3 のまま保たれます。表示はいつでも小数に切り替えられます。

ほかの計算機