請選擇矩陣的大小(2×2~4×4),在方格中輸入各元。行列式是只對方陣(列數=行數)定義的值。
各元請輸入半形數字(小數、負數也可以)。
計算結果
在左側選擇矩陣大小,輸入各元後按下「計算」,行列式的值和計算過程就會顯示在這裡。
這個頁面可以做什麼
- 馬上算出 2×2、3×3、4×4 方陣的行列式 \(\det(A)\)
- 附上和教科書相同解法的計算過程:二階用「\(ad - bc\)」,三階用對角線法,四階用餘因子展開
- 同時顯示判斷結果:\(\det(A) \neq 0\) 時反方陣存在(可逆)
- 這個頁面還整理了公式的淺顯解說,以及可直接複製到 Excel、Google 試算表(MDETERM)、Python 使用的公式
只有方陣(列數=行數的矩陣)才能定義行列式。矩陣的加法、乘法、轉置等,請看姊妹頁面「矩陣計算機」。
這個計算有什麼用?
判斷聯立方程式是否「恰有一組解」(克拉瑪公式)
方程式個數和未知數個數相同的一次聯立方程式,如果係數排成的方陣的行列式不為 0,就恰有一組解;行列式為 0 時,則無解或有無限多組解。
用克拉瑪公式,甚至能只用行列式的比寫出解本身。這是結構計算、電路分析等需要解大量方程式的工程計算背後的理論之一。
表示圖形的面積、體積「變成幾倍」(線性變換的縮放比)
用二階矩陣變換平面圖形(旋轉、伸縮、推移)時,面積正好變成 \(|\det(A)|\) 倍。立體用三階矩陣變換時,體積變成 \(|\det(A)|\) 倍。
行列式這種「縮放比」的角色,在大學微積分中也會以積分變數變換的修正係數(雅可比行列式)出現,廣泛用於理工各領域。
在 3D 繪圖與遊戲中辨識圖形是否「翻面」
3D 繪圖軟體和遊戲引擎用矩陣變換模型。變換矩陣的行列式為負時,這個變換會像鏡像一樣把模型翻過來,每個面的正反面(法向量的方向)會對調。
所以繪圖軟體會檢查行列式的正負號來偵測翻面,並加以修正,避免畫面出錯。
由坐標求面積(測量、地圖的計算)
知道三角形頂點的坐標,面積就是由這些坐標做成的行列式的絕對值的一半。推廣到多邊形,就是測量上的坐標法(鞋帶公式),是測量和地圖(GIS)軟體計算土地面積的標準方法。
「輸入坐標就能得到面積」的祕密,正是行列式。
特徵值計算的入口(振動分析、資料分析)
研究建築物、機械容易怎麼振動的振動分析,以及從大量資料中找出主要趨勢的主成分分析,都會用到矩陣的特徵值。
特徵值由「求使 \(\det(A - \lambda I) = 0\) 的 \(\lambda\)」這個方程式(特徵方程式)求出。行列式也是通往這個進階工具的入口。
公式
二階行列式(ad − bc)
數學寫法
(一般的數學式)
\(\begin{vmatrix} a & b \\ c & d \end{vmatrix}\)
\(=\)
\(ad\)
\(-\)
\(bc\)
文字寫法
(把符號換成文字的公式)
③
\(\det(A)\):二階行列式
\(=\)
①
\(ad\):左上 × 右下的乘積
\(-\)
②
\(bc\):右上 × 左下的乘積
用文字讀公式
①
從
\(ad\):左上 × 右下的乘積
減去
②
\(bc\):右上 × 左下的乘積
,就得到
③
\(\det(A)\):二階行列式
簡單範例
矩陣 \(\begin{pmatrix} 4 & 7 \\ 2 & 6 \end{pmatrix}\) 的行列式是
\(\det(A)\):行列式
\(=\)
左上 × 右下(\(4 \times 6\))
\(-\)
右上 × 左下(\(7 \times 2\))
\(\begin{vmatrix} 4 & 7 \\ 2 & 6 \end{vmatrix} = 4 \times 6 - 7 \times 2 = 24 - 14 = 10\)
思考重點
從左上到右下的對角線是「+」,從右上到左下的對角線是「−」。只要沿兩條對角線相乘再相減,也就是「交叉相乘」,很好記。
行列式除了寫成 \(\det(A)\),也寫成 \(|A|\)(和絕對值的符號形狀相同,但意思不同)。\(\det(A) = 0\) 的矩陣稱為「不可逆」(奇異方陣),沒有反方陣。
三階行列式(對角線法)
數學寫法
(一般的數學式)
\(\det(A)\)
\(=\)
\(aei + bfg + cdh\)
\(-\)
\((ceg + afh + bdi)\)
文字寫法
(把符號換成文字的公式)
③
\(\det(A)\):三階行列式
\(=\)
①
往右下的 3 條對角線的乘積和
\(-\)
②
往右上的 3 條對角線的乘積和
用文字讀公式
①
設各元為 \(A = \begin{pmatrix} a & b & c \\ d & e & f \\ g & h & i \end{pmatrix}\),從
往右下的 3 條對角線的乘積和(\(aei + bfg + cdh\))
減去
②
往右上的 3 條對角線的乘積和(\(ceg + afh + bdi\))
,就得到
③
\(\det(A)\):三階行列式
簡單範例
\(\begin{pmatrix} 1 & 0 & 2 \\ -1 & 3 & 1 \\ 1 & 1 & 1 \end{pmatrix}\) 的行列式是
\(1 \times 3 \times 1 + 0 \times 1 \times 1 + 2 \times (-1) \times 1 = 3 + 0 - 2 = 1\)
\(2 \times 3 \times 1 + 1 \times 1 \times 1 + 0 \times (-1) \times 1 = 6 + 1 + 0 = 7\)
\(\begin{vmatrix} 1 & 0 & 2 \\ -1 & 3 & 1 \\ 1 & 1 & 1 \end{vmatrix} = 1 - 7 = -6\)
思考重點
對角線法(Sarrus 法則),只要在矩陣右邊再抄一次第 1 行和第 2 行就比較好用。從左上往右下的對角線有 3 條(\(aei\)、\(bfg\)、\(cdh\),都是「+」),從右上往左下的對角線有 3 條(\(ceg\)、\(afh\)、\(bdi\),都是「−」),共 6 個交叉相乘的乘積。
不過,對角線法只能用到三階(二階的公式 \(ad-bc\) 也是同樣交叉相乘的想法)。四階以上不能用,請改用下面的餘因子展開。
餘因子展開(四階以上也能用的一般方法)
數學寫法
(一般的數學式)
\(\det(A)\)
\(=\)
\(\sum_{j=1}^{n}\)
\((-1)^{1+j}\)
\(a_{1j}\)
\(M_{1j}\)
文字寫法
(把符號換成文字的公式)
⑤
\(\det(A)\):\(n\) 階行列式
\(=\)
④
從 \(j = 1\) 加到 \(n\)
③
\((-1)^{1+j}\):正負號(依 + − + −…交替)
①
\(a_{1j}\):第 1 列第 \(j\) 行的元
②
\(M_{1j}\):去掉第 1 列與第 \(j\) 行的子行列式
用文字讀公式
①
把
\(a_{1j}\):第 1 列第 \(j\) 行的元
乘上
②
\(M_{1j}\):去掉第 1 列與第 \(j\) 行後所剩的子行列式
,
③
加上
\((-1)^{1+j}\):正負號(依 + − + −…交替)
,再
④
從 \(j = 1\) 加到 \(n\)
,就得到
⑤
\(\det(A)\):\(n\) 階行列式
簡單範例
把剛才的三階行列式沿第 1 列做餘因子展開(答案和對角線法相同)
\(\begin{vmatrix} 1 & 0 & 2 \\ -1 & 3 & 1 \\ 1 & 1 & 1 \end{vmatrix} = 1 \times \begin{vmatrix} 3 & 1 \\ 1 & 1 \end{vmatrix} - 0 \times \begin{vmatrix} -1 & 1 \\ 1 & 1 \end{vmatrix} + 2 \times \begin{vmatrix} -1 & 3 \\ 1 & 1 \end{vmatrix}\)
\(= 1 \times 2 - 0 \times (-2) + 2 \times (-4) = 2 - 0 - 8 = -6\)
思考重點
餘因子展開(拉普拉斯展開,也稱為降階)是把大的行列式拆成「小一階的行列式(子行列式)的組合」的方法。四階會變成 4 個三階行列式,每個三階再用對角線法(或再展開一次)求出。這個計算機的四階計算過程就是這樣顯示的。
展開不限於第 1 列,沿任何一列或任何一行展開,答案都相同。選 0 比較多的列或行,那些項會消失,計算更輕鬆。子行列式乘上正負號稱為餘因子,正負號 \((-1)^{i+j}\) 從左上的「+」開始,像棋盤一樣 + 和 − 交替排列。
行列式是「由方陣決定的一個數」。二階用 \(ad - bc\),三階用對角線法,四階以上用餘因子展開求出。由 \(\det(A) \neq 0\) 是否成立,就能判斷「反方陣是否存在(=聯立方程式是否恰有一組解)」。
符號與用語解說
符號
| \(A\) | A | 給矩陣取的名字。習慣上用大寫英文字母表示矩陣。 |
| \(\det(A),\ |A|\) | A 的行列式(det A) | 矩陣 \(A\) 的行列式。也常用直線寫成 \(|A|\)(和數的絕對值是相同的符號,但用在矩陣上時表示行列式)。 |
| \(a_{ij}\) | a 下標 i j | 矩陣 \(A\) 的第 \(i\) 列第 \(j\) 行的元(由上往下第 \(i\) 列、由左往右第 \(j\) 行的數)。右下角的小字(下標)表示「位置」。 |
| \(M_{ij}\) | M 下標 i j | 子行列式:從矩陣 \(A\) 去掉第 \(i\) 列和第 \(j\) 行後,小一階的矩陣的行列式。 |
| \((-1)^{i+j}\) | 負 1 的 i 加 j 次方 | 餘因子展開時加上的正負號。\(i+j\) 為偶數時是 \(+1\),奇數時是 \(-1\),從左上的「+」開始,像棋盤一樣 + − 交替排列。 |
| \(\sum\) | sigma | 表示「全部加起來」的符號。\(\sum_{j=1}^{n}\) 表示「讓 \(j\) 從 1 變到 \(n\),全部相加」。 |
用語
| 行列式 | 由方陣決定的一個數。它把矩陣的重要性質(反方陣是否存在、變換時面積或體積變成幾倍等)濃縮成一個數,是「矩陣的指標」。 |
| 方陣 | 列數與行數相同(正方形)的矩陣。行列式和反方陣都只對方陣討論。 |
| 對角線法 | 把 6 條對角線上的乘積相加、相減,求三階行列式的方法。也稱為 Sarrus 法則(取自法國數學家 Pierre Sarrus 的名字),只能用在三階。 |
| 餘因子展開 | 把行列式拆成「元 × 子行列式 × 正負號」的和,變成小一階行列式的計算的方法。也稱為拉普拉斯展開或降階,四階以上的行列式也能用它計算。 |
| 子行列式 | 從矩陣去掉某一列和某一行後,所剩較小矩陣的行列式,是餘因子展開的零件。 |
| 餘因子 | 把子行列式 \(M_{ij}\) 乘上正負號 \((-1)^{i+j}\) 所得的值。「餘因子展開」的名稱,就來自展開成這些餘因子的和。 |
| 可逆方陣 (奇異方陣) |
行列式不為 0 的方陣,也稱為非奇異方陣,它有反方陣。行列式為 0 的方陣稱為奇異方陣,沒有反方陣。 |
| 反方陣 | 相乘後得到單位方陣(對角線為 1、其餘為 0 的方陣)的矩陣,相當於數的「倒數」的矩陣版本,寫成 \(A^{-1}\)。只在行列式不為 0 時存在。 |
| 線性代數 | 處理矩陣和向量的數學領域。大學理工科常列為一、二年級的必修課,是電腦繪圖、統計、AI 等應用的基礎。 |
建議先了解的基礎知識
為了能「理解意義」地使用本頁的計算,這裡整理了建議先了解的基礎知識。
| 正負數的四則運算(國中七年級,12~13 歲) |
|
| 代數式與下標(國中七年級~高中,12~18 歲) |
|
| 次方與正負號(國中七年級,12~13 歲) |
|
| 矩陣的基礎(高二下,16~17 歲) |
|
用 Excel 計算的方法
把下方表格整個複製,貼到 Excel 的 A1 儲存格就能直接使用。
求「二階行列式」的表格
| 矩陣 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) |
行列式只要用一個 MDETERM 函數就能求出。給它方陣的範圍(第一個表格是 B1:C2),答案就會放進一個儲存格。
第一個表格是 10,第二個表格是 -6,第三個表格是 18。
MDETERM 的結果是 0 時,這個矩陣沒有反方陣(求反方陣的 MINVERSE 函數會出現錯誤)。
第一個表格是 10,第二個表格是 -6,第三個表格是 18。
MDETERM 的結果是 0 時,這個矩陣沒有反方陣(求反方陣的 MINVERSE 函數會出現錯誤)。
用 Google 試算表計算的方法
把下方表格整個複製,貼到 Google 試算表的 A1 儲存格就能直接使用。
求「二階行列式」的表格
| 矩陣 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) |
和 Excel 相同的 MDETERM 函數可以直接使用。請把表格整個複製,貼到 A1 儲存格。
第一個表格是 10,第二個表格是 -6。
第一個表格是 10,第二個表格是 -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))
只用標準函式庫就能執行。請把最上面的 A 改成您自己的矩陣(只要是方陣,四階以上也可以)再執行。這個例子會得到 det(A) = -6。正式的數值計算,通常使用矩陣專用的函式庫 NumPy(numpy.linalg.det(A))。
用 LaTeX 等數學式語言的寫法(可直接複製)
二階行列式(ad − bc)
|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 to 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 程式碼來進行下列計算,並只以執行結果的數值作為回答的依據(請不要用心算或猜測回答)。 請求出下列兩個方陣的行列式(det)。 1. A = [[1, 0, 2], [-1, 3, 1], [1, 1, 1]] 2. B = [[1, 2], [2, 4]] 每一個都請列出行列式的值,以及這個方陣是否可逆(行列式是否不為 0,也就是反方陣是否存在)。
使用方法
-
1輸入數值在輸入欄中輸入要計算的數值
-
2計算按下「計算」按鈕
-
3查看結果計算結果會立即顯示。計算的思路和公式的解說,也都能在同一個頁面查看
DataChef 的特色
簡單又免費
免費且無使用次數限制
不需專業知識,操作直覺又簡單
不需專業知識,操作直覺又簡單
免註冊會員
開啟頁面即可立即使用
無須登錄任何個人資料
無須登錄任何個人資料
安全又安心
通訊全程高度加密
按下「下載」後自動刪除檔案
按下「下載」後自動刪除檔案
高速
顯示與轉換都快速順暢,毫無等待壓力
無浮水印
沒有浮水印
無須標註來源出處
無須標註來源出處
可商業使用
可免費用於商業用途
亦無須事先取得商用授權
亦無須事先取得商用授權