計算ツール
数学行列線形代数大学入試

3×3行列式 計算ツール|サラスの公式・余因子展開で瞬時算出、正則/特異判定つき

3×3行列の行列式(determinant, det A)を、9要素の入力から瞬時に計算します。サラスの公式(Sarrus rule)余因子展開(cofactor expansion)逆行列の存在判定(正則/特異)、平行六面体の体積解釈まで対応。日本の高等学校学習指導要領・大学入試センター・大学の線形代数講義で扱われる基本演算を、日本数学会・Wolfram MathWorld・OEIS等の公的資料に基づいて解説します。連立一次方程式のクラメル公式、固有値問題の特性方程式、Jacobian行列の可逆性判定など応用場面も網羅。

最終更新:2026-07-28/監修:計算ツールズ編集部

3×3行列式 計算機

3×3行列式の定義

3×3実行列 A に対して、行列式 det A(または |A|)は、次の6項の符号付き和として定義される実数(または複素数)です。

|A| = a₁₁(a₂₂a₃₃ − a₂₃a₃₂) − a₁₂(a₂₁a₃₃ − a₂₃a₃₁) + a₁₃(a₂₁a₃₂ − a₂₂a₃₁)

この式は、対称群 S₃ の6個の置換(偶置換3・奇置換3)に対するライプニッツの明示式そのものであり、n=3 の場合の書き下しに当たります。n次一般では n! 項の符号付き和になります(n=4 なら 24 項、n=5 なら 120 項)。

|A| = 0 の行列を特異行列(singular matrix)、|A| ≠ 0 の行列を正則行列(regular / non-singular matrix)と呼び、正則である場合に限り逆行列 A⁻¹ が存在します。日本の高等学校学習指導要領では2015年以降「行列」自体は数学C(旧)から削除されていますが、大学初年次の線形代数、大学入試共通テストの発展問題、情報処理推進機構(IPA)の基本情報技術者試験でも継続的に扱われる基礎概念です。

サラスの公式(Sarrus rule)

サラスの公式は、3×3限定の視覚的な計算アルゴリズムです。行列の右側に第1・2列をコピーして5列並べ、左上→右下の3本の対角線の積を +、右上→左下の3本の反対角線の積を − として合計します。

|A| = (a₁₁a₂₂a₃₃ + a₁₂a₂₃a₃₁ + a₁₃a₂₁a₃₂) − (a₁₃a₂₂a₃₁ + a₁₁a₂₃a₃₂ + a₁₂a₂₁a₃₃)

3×3限定であり、4×4以上では成立しません(誤った教科書記述に注意)。Pierre Frédéric Sarrus(1798-1861、仏)による19世紀の記法で、日本の高校・大学初年次でも入門教材として広く使われています。

展開項の対応表

符号成分の積置換
1+a₁₁ a₂₂ a₃₃恒等(偶)
2+a₁₂ a₂₃ a₃₁(123)(偶)
3+a₁₃ a₂₁ a₃₂(132)(偶)
4a₁₃ a₂₂ a₃₁(13)(奇)
5a₁₁ a₂₃ a₃₂(23)(奇)
6a₁₂ a₂₁ a₃₃(12)(奇)

余因子展開(cofactor expansion / Laplace expansion)

いずれか1行(または1列)に沿って、2×2小行列式(minor)と符号 (−1)^(i+j) を掛けた総和として計算する方法です。任意の行/列で展開でき、結果は同じ値になります(Laplaceの公式)。

|A| = Σⱼ (−1)^(i+j) aᵢⱼ Mᵢⱼ (第i行展開)

ここで Mᵢⱼ は、行 i と列 j を除いた 2×2 小行列式です。

符号パターン(チェッカーボード)

列1列2列3
行1++
行2+
行3++

0成分の多い行/列を選ぶと計算量が最小化されます。4×4以上の一般 n 次の場合は、サラスは使えず、この余因子展開または後述のガウス消去/LU分解が標準手段になります。

行列式の基本性質(11項)

性質内容系(意味)
単位行列|I| = 1恒等変換は体積保存
転置不変|Aᵀ| = |A|行と列は対称的役割
行(列)入替符号が反転奇置換で符号反転
行(列)スカラー倍1行を k 倍すると全体が k 倍|kA| = k³|A| (n=3)
線形性1行に対して線形多重線形性
零行(列)0の行/列があれば |A|=0特異
比例2行(列)が比例なら |A|=0特異
行(列)加減k倍を他の行に加えても|A|不変掃き出し法の根拠
三角行列上/下三角なら対角積LU分解で利用
|AB| = |A||B|群準同型 GL(n,R)→R×
逆行列|A⁻¹| = 1/|A|正則の必要十分

計算例27題(典型パターン)

大学入試・線形代数の演習で頻出する行列式の値を早見表にまとめます。ツールに数値を入力して検算に使ってください。

#行列det備考
1単位行列 I₃1|I|=1
2[[1,2,3],[4,5,6],[7,8,10]]−3初期表示例
3[[1,2,3],[4,5,6],[7,8,9]]0行が線形従属
4[[2,0,0],[0,3,0],[0,0,4]]24対角積 2·3·4
5[[1,1,1],[1,2,3],[1,4,9]]2Vandermonde(1,2,3)
6[[1,1,1],[1,2,4],[1,3,9]]2Vandermonde(1,2,3)
7[[0,1,2],[1,0,3],[2,3,0]]12対称行列
8[[1,0,0],[0,cosθ,−sinθ],[0,sinθ,cosθ]]1x軸回転(直交)
9[[cosθ,−sinθ,0],[sinθ,cosθ,0],[0,0,1]]1z軸回転(直交)
10[[−1,0,0],[0,1,0],[0,0,1]]−1鏡映(向き反転)
11[[2,1,0],[1,2,1],[0,1,2]]43項対角
12[[1,2,3],[0,1,4],[5,6,0]]1入試典型
13[[3,1,1],[1,3,1],[1,1,3]]20循環対称
14[[a,b,c],[b,c,a],[c,a,b]]3abc−a³−b³−c³循環公式
15[[1,x,x²],[1,y,y²],[1,z,z²]](y−x)(z−x)(z−y)Vandermonde
16[[0,1,0],[0,0,1],[1,0,0]]1循環置換(偶)
17[[0,0,1],[1,0,0],[0,1,0]]1循環置換(偶)
18[[0,1,0],[1,0,0],[0,0,1]]−1互換(奇)
19[[1,0,0],[0,1,0],[a,b,1]]1剪断変換
20[[2,2,2],[3,3,3],[4,5,6]]01行と2行が比例
21[[1,4,7],[2,5,8],[3,6,10]]−3#2の転置(値同)
22[[1,2,3],[2,4,6],[7,8,10]]01行×2=2行
23[[10,20,30],[4,5,6],[7,8,10]]−30#2の1行×10=−30
24[[1,0,0],[0,2,0],[0,0,3]]6対角
25[[1,2,0],[0,1,2],[2,0,1]]9疎行列
26[[5,0,0],[0,5,0],[0,0,5]]1255³=125
27[[1,1,0],[0,1,1],[1,0,1]]20-1行列

特に Vandermonde行列(#5, #6, #15)は補間・多項式回帰の基礎で、循環行列(#14, #16, #17)は離散フーリエ変換の固有値解析に、三項対角行列(#11)は差分方程式の解法に登場します。整数の行列については、OEIS(オンライン整数列大辞典)で det の並びを検索できます。

幾何的意味・体積解釈

3×3行列 A の行(または列)を3つの3次元ベクトル a, b, c と見ると、|det A| はa, b, c を辺とする平行六面体の体積に等しくなります。符号は「右手系(正)」「左手系(負)」の向きを表します。

幾何的な帰結

体積 = |det A|

3ベクトル a, b, c の混合積 (a×b)·c と等しく、平行六面体の体積の絶対値。|det A|=0 は3ベクトルが同一平面上(共面)にあることを意味します。

向き(chirality)= sign(det A)

正なら右手系、負なら左手系。ロボティクスの回転行列は必ず det = +1(SO(3))で、−1 になると鏡映が混入している合図です。

体積スケーリング

線形変換 x ↦ Ax によって R³ の任意領域 D の体積は |det A| 倍になります。Jacobian変換公式 ∫∫∫ f(Ax) dV = ∫∫∫ f(y) |det A|⁻¹ dV の根拠。

可逆性の判定

det A ≠ 0 ⇔ A が正則 ⇔ 逆行列 A⁻¹ が存在 ⇔ Ax = 0 の解が x = 0 のみ ⇔ 列/行ベクトルが線形独立、が同値です。

応用場面(クラメル・固有値ほか)

連立方程式のクラメル公式

3元1次連立 Ax = b の解を xᵢ = det(Aᵢ) / det(A) で表す方法。Aᵢ は A の i 列目を b で置換したもの。det A = 0 なら解なし or 不定。理論的美しさに反し、n が大きいと計算量は O(n·n!) で非現実的なため、実用ではLU分解が主流。

固有値問題の特性方程式

det(A − λI) = 0 は3次多項式で、根が固有値。ヤコビ法・QRアルゴリズムの理論的基礎。固有値2×2で2次版を確認できます。物理では応力テンソル・慣性モーメントの主軸決定に利用。

3次元回転行列の検証

ロボットアーム・ゲーム開発・CADで使う3×3回転行列は SO(3) の元、すなわち直交かつ det = +1 が必須条件。det = −1 の場合は左右反転(鏡映)が混入した「不適切な回転」で、姿勢推定の実装バグの発見に有用。

Jacobian行列の可逆性

多変数関数 f:R³→R³ の逆関数定理は、点 p での Jacobian J(f)(p) が |det J| ≠ 0 であれば局所的に可逆であることを保証。極座標→直交座標などの座標変換で頻用。

ベクトルの共面判定

3本のベクトルが同一平面上か否かは、それらを行に並べた3×3行列の det = 0 で判定。3Dグラフィックスの衝突判定、地図の三角測量、コンピュータビジョンでも登場。

連立方程式の解の存在

Ax = b の一意解の存在は det A ≠ 0 が必要十分。det A = 0 で b ∈ Im A なら無限解、b ∉ Im A なら解なし(RankとImageの階数定理により階数比較)。

手計算の効率的な手順

行列式は手計算でも十分求まりますが、以下の順で進めると計算ミスが激減します。

手順1:0成分の多い行/列を探す

余因子展開する際、係数 aᵢⱼ が 0 の項は自動的に消えます。0が多い行・列を選んで展開すれば、計算する2×2小行列式が2個 or 1個で済みます。

手順2:基本変形で0を増やす

「ある行に他の行の k 倍を加える」変形は det を変えません(性質8)。この操作で0を意図的に作り出すと、余因子展開が劇的に簡単になります。

手順3:三角行列にする(上三角化)

基本変形で上三角行列に変形できれば、det = 対角成分の積で即座に求まります。これが実質的にガウス消去法・LU分解の考え方で、n=3 の手計算にも極めて有効です。

手順4:サラスで検算

展開・変形で求めた値を、最後にサラスの公式で直接計算し比較。桁数を意識しないと符号ミスが混入しやすいため、二重チェックが望ましいです。

よくある間違い・注意点

  • サラスを4×4以上に適用する — 学生が最も陥る誤りです。サラスの公式は n=3 限定。4×4以上では正しい値になりません。n=4 は 24 項で、余因子展開かガウス消去法を使うべきです。
  • 余因子展開の符号を +1, −1, +1... と機械的に付ける — 正しくは (−1)^(i+j) の市松模様。第2行展開なら符号は −+− なので、第2行第1列に付く符号は「マイナス」です。
  • スカラー倍を全体に掛ける — |kA| = k|A| は 1×1 の場合のみ。3×3 では |kA| = k³|A| です。各行1つずつ k を吸い出すため n 次では k^n 倍になります。
  • 転置で符号が変わると誤解 — |Aᵀ| = |A| で符号は変わりません。行と列を入れ替えても値は同じです。「行の入替で符号反転」は2つの行を入れ替えた場合の話。
  • det=0 なら解が0個と思い込む — 正しくは「一意解が存在しない」。実際は「解が0個(不能)」または「無限個(不定)」の2択で、拡大係数行列の階数(rank)で判別します。
  • 行列積の順序に注意しない — |AB| = |BA| は成り立ちますが、AB ≠ BA(積は非可換)。「行列式は入れ替え可、行列本体は不可」を混同しないこと。
  • 浮動小数点で det が「ほぼ0」と出て正則と判定 — 数値計算では条件数(condition number)や特異値分解(SVD)で判定するのが正しく、|det A| < 1e−10 で特異と早期判定するのは実務向き簡易ルール。

学習指導要領・入試との対応

日本の高等学校学習指導要領(平成30年告示、令和4年度施行)では、行列は「数学C」の選択単元から除外されており、高校段階の必修範囲ではありません。ただし以下の場面で登場します。

  • 大学入試(2次個別) ― 東大・京大・東工大・名工大等の理工系で、線形代数の基本問題として2×2、3×3の行列式が扱われる例があります。
  • 大学初年次「線形代数」 ― 理工系必修。多くの標準教科書(斎藤『線型代数入門』、川久保『線形代数学』等)で3×3例題が扱われます。
  • 基本情報技術者試験・応用情報技術者試験(IPA) ― コンピュータ科学基礎で行列式が出題されうる範囲。
  • 日本数学オリンピック本選・国際数学オリンピック(IMO) ― 対称式・Vandermonde行列式の技法が問題解法に登場することがあります(IPHO物理では3D慣性テンソルにも)。

参考文献・公的資料

3×3行列式・線形代数の学習および応用実装のため、以下の公的機関・学会の資料を参照してください。

※本ページの計算結果は概算値です。学術論文・特許・工学設計・機械制御など高精度が要求される用途では、SciPy・LAPACK・Mathematicaなど検証済み数値計算ライブラリの利用を推奨します。特に条件数の大きい行列(病的行列)では、ライプニッツ式やサラスの公式による直接計算は桁落ち・情報損失により実質的な精度が失われることが知られています。実用計算では、LU分解またはSVD(特異値分解)を用いた数値安定なアルゴリズムを選択してください。

よくある質問(FAQ)

det=0 は何を意味しますか?

行列 A が特異(singular)で、逆行列 A⁻¹ が存在しないことを意味します。同値に、行(または列)ベクトルが線形従属で、連立方程式 Ax = b の解が一意ではない(0個または無限個)ことを表します。幾何的には、3本のベクトルが同一平面(共面)にあり、平行六面体の体積が0であることに対応します。

サラスの公式は4×4以上でも使えますか?

使えません。サラスの公式は3×3限定です。4×4以上では、サラス風の対角積の加減では正しい行列式値になりません(n=4は24項、うち偶置換12・奇置換12の符号付き和が必要)。n≥4では余因子展開かガウス消去法/LU分解を使ってください。

対角行列の行列式は?

対角成分の積です。三角行列(上三角・下三角)も同様に対角成分の積で求まります。この性質を利用して、実務では基本変形で上三角化してから対角積を取るガウス消去法/LU分解が計算量 O(n³) の標準アルゴリズムとして使われます。

クラメルの公式で3元連立方程式を解けますか?

解けます。Ax = b の解 xᵢ は、xᵢ = det(Aᵢ) / det(A) で表せます。Aᵢ は A の第 i 列を b で置換した行列。det A ≠ 0 の場合のみ有効で、n=3 なら手計算で十分実用的。ただし n が大きい場合は O(n·n!) の計算量となり非現実的で、実用ではLU分解を使います。

行列式が負になることはありますか?

あります。行または列を1度入れ替えるだけで符号が反転します。幾何的には、正の行列式は「右手系(向きを保つ)」、負の行列式は「左手系(向きを反転する、鏡映を含む)」を意味します。3次元回転行列(SO(3))は常に det = +1、鏡映行列は det = −1 です。

|A + B| = |A| + |B| ですか?

一般には成り立ちません。行列式は「多重線形」(1行ずつ入れ替えれば線形)ですが、行列全体の加法に対して線形ではありません。よくある間違いなので注意。例:A=B=I₃ なら |A|+|B|=2 ですが |A+B|=|2I|=8 です。

|AB| と |BA| は等しいですか?

正方行列 A, B が同サイズなら等しいです。|AB| = |A||B| = |B||A| = |BA|。ただし積そのものは AB ≠ BA(非可換)なので、「行列式は入替可・行列本体は入替不可」の区別が重要です。

ゼロ行列(全成分0)の行列式は?

0 です。全成分0の場合、どの行も列も0であり、性質「零行(列)を持つ行列の det は0」から即座に 0 が確定します。当然、特異行列で逆行列は存在しません。

Vandermonde行列式は覚えるべきですか?

覚えると入試・演習で強力な武器になります。3×3のVandermondeは |1 x x²; 1 y y²; 1 z z²| = (y−x)(z−x)(z−y) で、対称的な因数分解で瞬時に求まります。多項式補間・回帰分析でも登場する基礎公式で、日本数学オリンピックや大学入試の対称式問題で頻用されます。

行列式の値が非常に大きくなる場合の計算精度は?

浮動小数点計算では桁落ちに注意が必要です。特に条件数の大きい行列では、サラスの直接計算やライプニッツ展開は精度が悪化します。実用ではLU分解の対角成分の対数和 log|det A| = Σ log|Uᵢᵢ| として計算するのが数値安定です。NIST・IEEE 754の浮動小数点仕様も参考にしてください。

3×3の逆行列はどうやって求めますか?

A⁻¹ = (1/det A) × adj(A) の公式で求まります。adj(A) は余因子行列の転置(随伴行列)で、3×3では9個の2×2小行列式を計算します。det A = 0 なら逆行列は存在しません。実用ではガウス・ジョルダン消去法や LU分解 + 前進/後退代入の方が高速です。

Excel・Google スプレッドシートで行列式を計算できますか?

できます。Excel・Google スプレッドシートともに =MDETERM(range) 関数で行列式を求められます。例えば A1:C3 に3×3行列があれば =MDETERM(A1:C3)。Python NumPy では numpy.linalg.det(A)、Mathematica では Det[A]、MATLAB では det(A) です。