行列のサイズ(2×2〜4×4)を選び、グリッドに成分を入力してください。行列式は正方行列(行数=列数)でだけ定義される値です。
このページでできること
- 2×2・3×3・4×4の正方行列の行列式 \(\det(A)\) がその場で計算できます
- 2×2は「\(ad - bc\)」、3×3はサラスの方法、4×4は余因子展開と、教科書通りの解き方の途中式つきです
- \(\det(A) \neq 0\) なら逆行列が存在する(正則)という判定もあわせて表示します
- 式のやさしい解説・Excel/Googleスプレッドシート(MDETERM)/Python用のコピペ数式・計算ドリル(演習問題)もこのページにまとまっています
この計算は何の役に立つ?
未知数と式の数が同じ連立一次方程式は、係数を並べた正方行列の行列式が0でなければ「解がただ1組に決まる」ことがわかります。逆に行列式が0だと、解がなかったり無数にあったりします。
さらにクラメルの公式を使うと、解そのものを行列式の割り算だけで書き表せます。構造計算や電気回路の解析など、連立方程式を大量に解く工学計算の理論的な土台になっています。
平面の図形を2×2行列で変形(回転・拡大縮小・斜めのゆがみ)すると、面積はちょうど \(|\det(A)|\) 倍になります。空間の図形と3×3行列なら体積が \(|\det(A)|\) 倍です。
この「拡大率」としての行列式は、大学の微分積分で積分の変数変換をするときの補正係数(ヤコビアン)としても登場し、理系の計算のあちこちで使われています。
3DCGソフトやゲームエンジンでは、モデルの変形を行列で計算します。このとき変換行列の行列式の符号がマイナスだと「鏡に映したように裏返る」変換で、面の表裏(法線の向き)が逆転してしまいます。
そのためCGの内部処理では、行列式の符号を見て裏返りを検出し、描画がおかしくならないように補正しています。
頂点の座標がわかっている三角形の面積は、座標を並べた行列式(の絶対値の半分)で求められます。多角形に広げたものは「靴ひも公式」と呼ばれ、測量や地図ソフト(GIS)で土地の面積を計算する定番の方法です。
「座標を入れるだけで面積が出る」仕組みの正体が、まさに行列式です。
建物や機械が「どんな揺れ方をしやすいか」を調べる振動解析や、たくさんのデータから主要な傾向を取り出す主成分分析では、行列の固有値という値を使います。
その固有値は「\(\det(A - \lambda I) = 0\) となる \(\lambda\) を探す」という方程式(特性方程式)から求まります。行列式は、固有値というより進んだ道具への入口にもなっています。
式
用語・記号の解説
記号
| \(A\) | エー | 行列につける名前。行列はアルファベットの大文字で表すのが慣例です。 |
| \(\det(A),\ |A|\) | デット・エー エーの行列式 | 行列 \(A\) の行列式。\(|A|\) という縦棒の書き方もよく使われます(数の絶対値と同じ記号ですが、行列につけたときは行列式の意味です)。 |
| \(a_{ij}\) | エー・アイ・ジェー エーのアイジェー成分 | 行列 \(A\) の \(i\) 行 \(j\) 列の成分(上から \(i\) 行目・左から \(j\) 列目にある数)。右下の小さい文字(添え字)が「場所」を表します。 |
| \(M_{ij}\) | エム・アイ・ジェー | 小行列式。行列 \(A\) から \(i\) 行目と \(j\) 列目を取り除いてできる、1周り小さい行列の行列式です。 |
| \((-1)^{i+j}\) | マイナス1の(アイ+ジェー)乗 | 余因子展開でつける符号。\(i+j\) が偶数なら \(+1\)、奇数なら \(-1\) で、左上を「+」としてチェス盤のように+−が交互に並びます。 |
| \(\sum\) | シグマ | 「足し合わせる」ことを表す記号。\(\sum_{j=1}^{n}\) は「\(j\) を1から \(n\) まで変えながら全部足す」という意味です。 |
用語
| 行列式 | ぎょうれつしき | 正方行列から決まる1つの数。行列がどんな性質を持つか(逆行列があるか、変換で面積・体積が何倍になるか等)をぎゅっと1つの数にまとめた「行列の指標」です。 |
| 正方行列 | せいほうぎょうれつ | 行数と列数が同じ(正方形の形をした)行列。行列式や逆行列は正方行列でだけ考えます。 |
| サラスの方法 | サラスのほうほう | 3×3の行列式を、6本のたすき(対角線)の積の足し引きで求める方法。「サラスの規則」「サラスの公式」「たすき掛け」とも呼ばれます。フランスの数学者サラス(Sarrus)にちなむ名前で、3×3まででしか使えません。 |
| 余因子展開 | よいんしてんかい | 行列式を「成分×小行列式×符号」の和に分解して、1周り小さい行列式の計算に落とす方法。ラプラス展開とも呼ばれ、4×4以上の行列式もこれで計算できます。 |
| 小行列式 | しょうぎょうれつしき | 行列から特定の行と列を取り除いてできる小さい行列の行列式。余因子展開の部品になります。 |
| 余因子 | よいんし | 小行列式 \(M_{ij}\) に符号 \((-1)^{i+j}\) を掛けたもの。「余因子展開」の名前は、この余因子の和に展開することに由来します。 |
| 正則行列 | せいそくぎょうれつ | 行列式が0でない正方行列。正則な行列には逆行列が存在します。行列式が0の行列は特異行列(とくいぎょうれつ)と呼ばれ、逆行列がありません。 |
| 逆行列 | ぎゃくぎょうれつ | 掛けると単位行列(対角線が1で残りが0の行列)になる相手の行列。数の「逆数」の行列版で、\(A^{-1}\) と書きます。行列式が0でないときだけ存在します。 |
| 線形代数 | せんけいだいすう | 行列やベクトルを扱う数学の分野。大学初年次の必修科目として学ぶことが多く、CG・統計・AIなど応用の土台になっています。 |
前提として理解しておくといいこと
このページの計算を「意味がわかって」使えるようになるために、前提として理解しておくといいことをまとめました。
| 正負の数の四則計算(中学1年) |
|
| 文字式と添え字(中学1年〜高校) |
|
| 累乗と符号(中学1年) |
|
| 行列の基礎(大学初年次の線形代数) |
|
Excelで計算する方法
| 行列Aの1行目 | 4 | 7 |
| 行列Aの2行目 | 2 | 6 |
| 行列式 det(A) | =MDETERM(B1:C2) |
| 行列Aの1行目 | 1 | 0 | 2 |
| 行列Aの2行目 | -1 | 3 | 1 |
| 行列Aの3行目 | 1 | 1 | 1 |
| 行列式 det(A) | =MDETERM(B1:D3) |
| 行列Aの1行目 | 1 | 2 | 0 | 1 |
| 行列Aの2行目 | 0 | 1 | 3 | 2 |
| 行列Aの3行目 | 2 | 0 | 1 | 1 |
| 行列Aの4行目 | 1 | 1 | 0 | 2 |
| 行列式 det(A) | =MDETERM(B1:E4) |
1つ目の表は 10、2つ目の表は -6、3つ目の表は 18 になります。
MDETERMの結果が0のとき、その行列に逆行列はありません(逆行列を求めるMINVERSE関数はエラーになります)。
Googleスプレッドシートで計算する方法
| 行列Aの1行目 | 4 | 7 |
| 行列Aの2行目 | 2 | 6 |
| 行列式 det(A) | =MDETERM(B1:C2) |
| 行列Aの1行目 | 1 | 0 | 2 |
| 行列Aの2行目 | -1 | 3 | 1 |
| 行列Aの3行目 | 1 | 1 | 1 |
| 行列式 det(A) | =MDETERM(B1:D3) |
1つ目の表は 10、2つ目の表は -6 になります。
Pythonで計算する方法
A = [[1, 0, 2], [-1, 3, 1], [1, 1, 1]]
def determinant(matrix): # 余因子展開(1行目に沿って再帰的に計算する)
n = len(matrix)
if n == 1:
return matrix[0][0]
total = 0
for j in range(n):
minor = [row[:j] + row[j + 1:] for row in matrix[1:]] # 1行目とj列目を取り除いた小行列
total += (-1) ** j * matrix[0][j] * determinant(minor)
return total
print("det(A) =", determinant(A))
数式記述言語(LaTeX等)での書き方(コピペ可)
|A| = ad − bc
\det(A) = \begin{vmatrix} a & b \\ c & d \end{vmatrix} = ad - bc
<math xmlns="http://www.w3.org/1998/Math/MathML" display="block">
<mrow>
<mi>det</mi><mo>⁡</mo><mrow><mo>(</mo><mi>A</mi><mo>)</mo></mrow>
<mo>=</mo>
<mi>a</mi><mi>d</mi>
<mo>-</mo>
<mi>b</mi><mi>c</mi>
</mrow>
</math>
det(A) = |(a, b), (c, d)| = ad - bc
Det[{{a, b}, {c, d}}]
LinearAlgebra:-Determinant(Matrix([[a, b], [c, d]]));
d = det(A);
det(A) = ad − bc
|A| = aei + bfg + cdh − ceg − afh − bdi
\det(A) = aei + bfg + cdh - ceg - afh - bdi
<math xmlns="http://www.w3.org/1998/Math/MathML" display="block">
<mrow>
<mi>det</mi><mo>⁡</mo><mrow><mo>(</mo><mi>A</mi><mo>)</mo></mrow>
<mo>=</mo>
<mi>a</mi><mi>e</mi><mi>i</mi>
<mo>+</mo>
<mi>b</mi><mi>f</mi><mi>g</mi>
<mo>+</mo>
<mi>c</mi><mi>d</mi><mi>h</mi>
<mo>-</mo>
<mi>c</mi><mi>e</mi><mi>g</mi>
<mo>-</mo>
<mi>a</mi><mi>f</mi><mi>h</mi>
<mo>-</mo>
<mi>b</mi><mi>d</mi><mi>i</mi>
</mrow>
</math>
det(A) = aei + bfg + cdh - ceg - afh - bdi
Det[{{a, b, c}, {d, e, f}, {g, h, i}}]
LinearAlgebra:-Determinant(Matrix([[a, b, c], [d, e, f], [g, h, i]]));
d = det(A);
det(A) = aei + bfg + cdh − ceg − afh − bdi
det(A) = Σ (−1)¹⁺ʲ a₁ⱼ M₁ⱼ (j = 1 〜 n)
\det(A) = \sum_{j=1}^{n} (-1)^{1+j} a_{1j} M_{1j}
<math xmlns="http://www.w3.org/1998/Math/MathML" display="block">
<mrow>
<mi>det</mi><mo>⁡</mo><mrow><mo>(</mo><mi>A</mi><mo>)</mo></mrow>
<mo>=</mo>
<munderover>
<mo>∑</mo>
<mrow><mi>j</mi><mo>=</mo><mn>1</mn></mrow>
<mi>n</mi>
</munderover>
<msup>
<mrow><mo>(</mo><mo>-</mo><mn>1</mn><mo>)</mo></mrow>
<mrow><mn>1</mn><mo>+</mo><mi>j</mi></mrow>
</msup>
<msub><mi>a</mi><mrow><mn>1</mn><mi>j</mi></mrow></msub>
<msub><mi>M</mi><mrow><mn>1</mn><mi>j</mi></mrow></msub>
</mrow>
</math>
det(A) = sum_(j=1)^(n) (-1)^(1+j) a_(1j) M_(1j)
Det[A]
LinearAlgebra:-Determinant(A);
d = det(A);
det(A) = ∑_(j=1)^n (−1)^(1+j) a_1j M_1j
ChatGPT に聞いて計算してもらう方法
あなたは行列計算のアシスタントです。次の計算を、必ずPythonコードを実際に実行して行い、実行結果の数値だけを根拠に回答してください(暗算や推測で答えないでください)。 次の2つの正方行列について、それぞれ行列式 det を求めてください。 1. A = [[1, 0, 2], [-1, 3, 1], [1, 1, 1]] 2. B = [[1, 2], [2, 4]] それぞれ、行列式の値と、その行列が正則かどうか(行列式が0でないか=逆行列が存在するか)を示してください。
計算ドリル(演習問題)
\(2 \times 2\) の行列式(\(\text{左上} \times \text{右下} - \text{右上} \times \text{左下}\))を、自分の手で計算できるようになるための演習問題です。
答えと解説は解答ページにあります。
使い方
-
1数値を入力計算したい数値を入力欄に入力します
-
2計算「計算する」ボタンを押します
-
3結果を確認計算結果がその場に表示されます。計算の考え方や式の解説も同じページで確認できます
DataChefの特徴
専門知識不要、直感的で簡単な操作
個人情報を登録することなく使用できます
「ダウンロード」押下でファイルを自動削除
クレジット表記不要
商用利用許諾の連絡も不要です
