行列式 3x3 計算ツール
3×3行列の行列式(det)を求める無料ツールです。9つの成分を入れると、サラスの方法で計算した値を小数第4位まで表示します。負の数や小数もそのまま入力できます。
3×3行列式ツール
計算式と前提
det = a(ei − fh) − b(di − fg) + c(dh − eg)
入力欄は上から順に、1行目が a・b・c、2行目が d・e・f、3行目が g・h・i に対応します。既定値の 1,2,3 / 4,5,6 / 7,8,9 で計算すると、1×(5×9 − 6×8) − 2×(4×9 − 6×7) + 3×(4×8 − 5×7) = 1×(−3) − 2×(−6) + 3×(−3) = −3 + 12 − 9 となり、結果は 0.0000 です。表示は常に小数第4位まで丸めており、空欄は0として扱います。行列式は正方行列にだけ定義される量で、このツールは3次に限定しています。
行列式の早見表
代表的な行列と det の値
いずれもこのツールに入力して得られる表示値です。
| 行列(a b c / d e f / g h i) | det の表示 | 読み取れること |
|---|---|---|
| 1 0 0 / 0 1 0 / 0 0 1 | 1.0000 | 単位行列。体積も向きも変えない変換。 |
| 2 0 0 / 0 3 0 / 0 0 4 | 24.0000 | 対角行列は対角成分の積。2×3×4=24。 |
| 2 1 3 / 0 4 5 / 0 0 6 | 48.0000 | 上三角行列も対角成分の積。2×4×6=48。 |
| 1 2 3 / 4 5 6 / 7 8 9(既定値) | 0.0000 | 3行目=2行目×2−1行目。一次従属なので0。 |
| 1 2 3 / 2 4 6 / 7 8 9 | 0.0000 | 2行目が1行目の2倍。行が比例すると0。 |
| 1 2 3 / 0 1 4 / 5 6 0 | 1.0000 | 逆行列を持つ例。det≠0。 |
| −1 2 3 / 4 −5 6 / 7 8 −9 | 360.0000 | 負の成分を含む例。値は正になり得ます。 |
行や列を操作したときの変化
基準は上の表の「1 2 3 / 0 1 4 / 5 6 0(det = 1.0000)」です。操作した行列を実際に入力すると、次の値が表示されます。
| 操作 | 操作後の行列 | det の表示 | 変化 |
|---|---|---|---|
| 1行目と2行目を入れ替える | 0 1 4 / 1 2 3 / 5 6 0 | −1.0000 | 符号が反転する |
| 1行目を2倍する | 2 4 6 / 0 1 4 / 5 6 0 | 2.0000 | その行の倍率だけ倍になる |
| 3行目に1行目を足す | 1 2 3 / 0 1 4 / 6 8 3 | 1.0000 | 変わらない |
| 1行目を3行目の定数倍にする | 1 2 3 / 2 4 6 / 7 8 9 | 0.0000 | 行が一次従属になると0 |
行列式が0になるとき、何が起きているのか
3×3行列の行列式は、3本の列ベクトルが張る平行六面体の符号つき体積です。絶対値がその体積の倍率を、符号が向き(右手系か左手系か)を表します。既定値の 1,2,3 / 4,5,6 / 7,8,9 で0になるのは偶然ではなく、3行目が「2行目×2 − 1行目」で書けるためです。3本のベクトルが同じ平面に乗ってしまい、立体の厚みが失われて体積が0になります。ここから、det=0 は「逆行列が存在しない」「列(行)が一次従属である」「対応する連立方程式の解が一意に定まらない」という言い換えがすべて同じ事実を指していることが分かります。
計算方法の選び方では実務上の判断が分かれます。3次まではサラスの方法(たすき掛け)が速く、手計算ならこれで十分です。ただしこの手順は2次と3次にしか成立せず、4次以降に同じ図式を当てはめると誤った値になります。一般の n 次では余因子展開か、行基本変形で上三角に直してから対角成分を掛けるLU分解系の方法を使います。余因子展開は定義に忠実ですが計算量が n の階乗に比例して増え、次数が少し上がるだけで手に負えなくなります。上三角化は n の3乗のオーダーで済むため、計算機による実装はほぼこちらです。手で解く場合も、成分に0が多い行や列を選んで展開すると手数が大きく減ります。
見落とされやすいのは、行列式の値そのものを「特異かどうかの判定基準」に使ってしまうことです。行列式はスケールに強く依存し、全体を10倍すると3次では1000倍になります。成分が小さい行列は det も小さくなるだけで、逆行列が求めにくいこととは別の話です。数値計算で特異性を測るときは、行列式ではなく条件数や特異値を見ます。また、このツールの表示は小数第4位までの丸めなので、「0.0000」と出ても厳密に0とは限りません。整数だけを入れたときは丸め誤差が入りませんが、小数を入れた場合は本来0でない値が0に見えることがあります。
用途によって、必要になる情報も変わります。連立3元1次方程式を解く場面では、係数行列の det が0でなければクラメルの公式で各変数を「係数行列の1列を右辺で置き換えた行列の det ÷ 係数行列の det」として求められます。3変数までなら手計算でも実用的ですが、変数が増えると掃き出し法のほうが速くなります。空間図形では3本のベクトルが作る平行六面体の体積が |det| で、四面体はその6分の1です。3点が同一直線上にあるか、4点が同一平面上にあるかの判定にも使えます。解析ではヤコビアンとして変数変換の体積の拡大率を表し、固有値がすべて分かっていればその積が det に一致します。
よくある間違い・注意点
- サラスの方法を4×4以上に使う — たすき掛けの図式が成り立つのは2次と3次だけです。4次以降は余因子展開か上三角化に切り替えないと、まったく違う値になります。
- det=0 を「解が存在しない」と読む — 一意に定まらないという意味であり、解が無い場合と無数にある場合の両方を含みます。どちらかは右辺まで見ないと判別できません。
- det の絶対値の小ささで特異性を判断する — 行列全体を定数倍すると det は3乗で変わります。値が小さいこと自体は逆行列の求めにくさを意味しません。条件数で見てください。
- 表示の 0.0000 を厳密な0と決めつける — 小数第4位で丸めた表示です。小数の成分を入れた場合は、丸めによって0に見えているだけのことがあります。
- 行と列を取り違えて入力する — このツールは a・b・c が1行目、d・e・f が2行目、g・h・i が3行目です。転置しても行列式の値は変わりませんが、途中の余因子や逆行列を追うときは対応がずれます。
参考資料
- 文部科学省 高等学校学習指導要領 — 数学科で扱うベクトル・行列関連の内容の範囲。
- 一般社団法人 日本数学会 — 数学用語と記法に関する国内の学会。
- 一般社団法人 日本応用数理学会 — 数値線形代数を含む応用数理分野の学会。
- NIST Digital Library of Mathematical Functions — 米国国立標準技術研究所による数学関数の公式ハンドブック。
- NIST/SEMATECH e-Handbook of Statistical Methods — 行列演算を含む数値手法の解説。
- LAPACK Users' Guide(netlib) — LU分解による行列式計算の標準的な実装と誤差の議論。
- BLAS(netlib) — 線形代数の基本演算の標準仕様。
- NumPy 公式ドキュメント numpy.linalg.det — LU分解を用いた行列式の実装仕様。
- SciPy 公式ドキュメント scipy.linalg.det — 同じく数値計算ライブラリでの定義と注意点。
- 独立行政法人 情報処理推進機構 情報処理技術者試験 — 出題範囲に含まれる線形代数の基礎。
※表示は小数第4位までの丸めです。厳密な値が必要な場合や、条件の悪い行列を扱う場合は、数値計算ライブラリや数式処理系で検算してください。
よくある質問(FAQ)
行列式が0のときは何が言えますか?
逆行列が存在せず、3本の列(行)ベクトルが一次従属で、同じ平面または直線に乗っているということです。対応する連立3元1次方程式は解が一意に定まりません。既定値の 1,2,3 / 4,5,6 / 7,8,9 は3行目が「2行目×2 − 1行目」に等しいため 0.0000 になります。
サラスの方法は4×4でも使えますか?
使えません。たすき掛けの図式が正しい結果を返すのは2次と3次だけです。4次以降は余因子展開で次数を下げるか、行基本変形で上三角行列にしてから対角成分を掛けます。後者は計算量が少なく、数値計算ライブラリもこの方法を採っています。
「0.0000」と出たら厳密に0ですか?
整数だけを入力した場合は厳密に0です。小数を入力した場合は小数第4位で丸めた表示なので、0.00004 のような値も 0.0000 と見えます。逆に本来0であるべき計算が丸め誤差で 0.0000 以外になることもあります。厳密な判定が必要なときは分数のまま手計算するか、数式処理系を使ってください。
負の数や小数は入力できますか?
入力できます。行列式は負の値にも小数にもなります。たとえば −1,2,3 / 4,−5,6 / 7,8,−9 と入れると 360.0000、1行目と2行目を入れ替えた 0,1,4 / 1,2,3 / 5,6,0 では −1.0000 と符号が反転します。
行列式の符号は何を表しますか?
3本の列ベクトルが作る平行六面体の向きです。正なら右手系、負なら左手系で、絶対値が体積になります。行または列を1回入れ替えるたびに符号が反転するのはこのためです。
逆行列はどう求めますか?
det が0でなければ、余因子行列の転置(余因子行列を作って行と列を入れ替えたもの)を det で割ると逆行列になります。手計算では9個の2×2行列式を求める必要があるため、掃き出し法で単位行列に変形していくほうが速いことが多いです。
連立3元1次方程式は解けますか?
係数行列の det が0でなければ、クラメルの公式で解けます。求めたい変数に対応する列を右辺のベクトルで置き換えた行列の det を、係数行列の det で割ります。このツールに置き換え後の行列を入れれば分子の値が得られます。det が0のときは公式が使えません。
入力欄はどの位置に対応しますか?
上から a・b・c が1行目、d・e・f が2行目、g・h・i が3行目です。空欄は0として扱われます。転置(行と列の入れ替え)をしても行列式の値は変わらないため、行優先と列優先を取り違えても結果は同じですが、余因子や逆行列を続けて求めるときは対応が食い違うので注意してください。