行列式

行列式（Determinant），記作$\det(A)$或$|A|$，是一個在方塊矩陣上計算得到的標量。行列式可以看作是有向面積或體積的概念在一般的歐幾里得空間中的推廣。或者說，在歐幾里得空間中，行列式描述的是一個線性變換對「體積」所造成的影響。無論是在線性代數、多項式理論，還是在微積分學中（比如說換元積分法中），行列式作為基本的數學工具，都有著重要的應用。

行列式概念最早出現在解線性方程組的過程中。十七世紀晚期，關孝和與萊布尼茨的著作中已經使用行列式來確定線性方程組解的個數以及形式。十八世紀開始，行列式開始作為獨立的數學概念被研究。十九世紀以後，行列式理論進一步得到發展和完善。矩陣概念的引入使得更多有關行列式的性質被發現，行列式在許多領域都逐漸顯現出重要的意義和作用，其定義也被推廣到諸如線性自同態和向量組等結構上。

行列式的特性可以被概括為一個交替多線性形式，這個本質使得行列式在歐幾里德空間中可以成為描述「體積」的函數。

## 記法

矩陣$A$的行列式記作$\det(A)$。行列式經常使用豎直線記法（例如：克萊姆法則和子式）。例如，對於一個矩陣：

$$A = \begin{bmatrix} a & b & c\\d & e & f\\g & h & i \end{bmatrix}$$

$\det(A)$也記作$|A|$，或以細長的垂直線取代矩陣的方括號，明確的寫為：

$$\det(A) = |A| = \begin{vmatrix} a & b & c\\d & e & f\\g & h & i \end{vmatrix}$$

當這個記法用於絕對值時，其作用對象為數，矩陣的絕對值是無定義的。矩陣範數通常以雙垂直線來表示（如：$\|\cdot\|$），且可以使用下標。故不會與二者造成混淆。

## 直觀定義

一個$n$階方塊矩陣$A$的行列式可直觀地定義如下：

$\det(A) = \sum_{\sigma \in S_n} \sgn(\sigma) \prod_{i=1}^n a_{i,\sigma(i)}$

其中，$S_n$是集合$\left \{ 1,2,...,n \right \}$上置換的全體，即集合$\left \{ 1,2,...,n \right \}$到自身上的一一映射（雙射）的全體。

$\sum_{\sigma \in S_n}$表示對$S_n$全部元素的求和，即對於每個$\sigma \in S_n$，$\sgn(\sigma) \prod_{i=1}^n a_{i,\sigma(i)}$在加法算式中出現一次；對每一個滿足$1\leq i, j\leq n$的數對$\left ( i,j \right )$，$a_{i,j}$是矩陣$A$的第$i$行第$j$列的元素。

$\sgn(\sigma)$表示置換$\sigma \in S_n$的符號差，具體地說，滿足$1\leq i\leq j\leq n$但$\sigma(i)>\sigma(j)$的有序數對$\left ( i,j \right )$稱為$\sigma$的一個逆序。

如果$\sigma$的逆序共有偶數個，則$\sgn\sigma=1$，如果共有奇數個，則$\sgn\sigma=-1$。

舉例來說，對於3元置換$\sigma=\left ( 2,3,1 \right )$（即是說$\sigma(1)=2$，$\sigma(2)=3$，$\sigma(3)=1$）而言，由於1在2後，1在3後，所以共有2個逆序（偶數個），因此$\sgn(\sigma)=1$，從而3階行列式中項$a_{1, 2} a_{2, 3} a_{3, 1}$的符號是正的。但對於三元置換$\sigma=\left ( 3,2,1 \right )$（即是說$\sigma(1)=3$，$\sigma(2)=2$，$\sigma(3)=1$）而言，可以數出共有3個逆序（奇數個），因此$\sgn\sigma=-1$，從而3階行列式中項$a_{1, 3} a_{2, 2} a_{3, 1}$的符號是負號。

注意到對於任意正整數$n$，$S_n$共擁有n!個元素，因此上式中共有$n!$個求和項，即這是一個有限多次的求和。

對於簡單的2階和3階的矩陣，行列式的表達式相對簡單，而且恰好是每條主對角線（左上至右下）元素乘積之和減去每條副對角線（右上至左下）元素乘積之和（見圖中紅線和藍線）。

- 2階矩陣的行列式：$\begin{vmatrix} a_{1,1} & a_{1,2} \\ a_{2,1} & a_{2,2} \end{vmatrix} = a_{1,1} a_{2,2} - a_{1,2}a_{2,1}$
- 3階矩陣的行列式：$\displaystyle \begin{vmatrix} a_{1,1} & a_{1,2} & a_{1,3} \\ a_{2,1} & a_{2,2} & a_{2,3} \\ a_{3,1} & a_{3,2} & a_{3,3} \end{vmatrix} = a_{1,1}a_{2,2}a_{3,3} + a_{1,2}a_{2,3}a_{3,1}+ a_{1,3}a_{2,1}a_{3,2} - a_{1,3}a_{2,2}a_{3,1} - a_{1,1}a_{2,3}a_{3,2} - a_{1,2}a_{2,1}a_{3,3}$

<image>

但對於階數$n\geq 4$的方陣$A$，這樣的主對角線和副對角線分別只有$n$條，由於$A$的主、副對角線總條數$=2n<\left ( n-1 \right )n<n!=S_n$的元素個數因此，行列式的相加項中除了這樣的對角線乘積之外，還有其他更多的項。例如4階行列式中，項$a_{1, 2} a_{2, 3} a_{3, 1} a_{4, 4}$就不是任何對角線的元素乘積。不過，和2、3階行列式情況相同的是，n階行列式中的每一項仍然是從矩陣中選取n個元素相乘得到，且保證在每行和每列中都恰好只選取一個元素，而整個行列式恰好將所有這樣的選取方法遍歷一次。

另外，$n\times n$矩陣的每一行或每一列也可以看成是一個$n$元向量，這時矩陣的行列式也被稱為這$n$個$n$元向量組成的向量組的行列式。

## 幾何意義：二維和三維歐氏空間中的例子

行列式的一個自然的源起是n維平行體的體積。行列式的定義和n維平行體的體積有著本質上的關聯。

### 二維向量組的行列式

<image>

在一個二維平面上，兩個向量$X=\left ( a,c \right )$和$X'=\left ( b,d \right )$的行列式是：

$\det(X,X')=\begin{vmatrix} a & b \\ c & d\end{vmatrix}=ad-bc$

比如說，兩個向量$X=\left ( 2,1 \right )$和$X'=\left ( 3,4 \right )$的行列式是：

$$\det(X,X')=\begin{vmatrix} 2 & 3 \\ 1 & 4\end{vmatrix}=2 \cdot 4 - 3 \cdot 1 = 5$$

經計算可知，當係數是實數時，行列式表示的是向量$X$和$X'$形成的平行四邊形的有向面積，並有如下性質：

- 行列式為零若且唯若兩個向量共線（線性相關），這時平行四邊形退化成一條直線。
- 如果以逆時針方向為正向的話，有向面積的意義是：平行四邊形面積為正若且唯若以原點為不動點將$X$逆時針「轉到」$X'$處時，掃過的地方在平行四邊形裡，否則的話面積就是負的。如右圖中，$X$和$X'$所構成的平行四邊形的面積就是正的。
- 行列式是一個雙線性映射。也就是說，$\det(\lambda X+\mu Y,X')=\lambda \det(X,X')+\mu \det(Y,X')\;$。

並且

$\det(X,\lambda X'+\mu Y')=\lambda \det(X,X')+\mu \det(X,Y')\;$。

<image>

其幾何意義是：以同一個向量$v$作為一條邊的兩個平行四邊形的面積之和，等於它們各自另一邊的向量$u$和$u'$加起來後的向量：$u+u'$和$v$所構成的平行四邊形的面積，如左圖中所示。

### 三維向量組的行列式

在三維的有向空間中，三個三維向量的行列式是：

$\det(X,X ',X '')=\begin{vmatrix} x & x' &x''\\ y & y'&y''\\ z&z'&z'' \end{vmatrix}=xy'z''+x'y''z+x''yz'-xy''z'-x'yz''-x''y'z$。

比如說，三個向量$\left ( 2,1,5 \right )$、$\left ( 6,0,8 \right )$和$\left ( 3,2,4 \right )$的行列式是：

$$\det(X,X ',X '')=\begin{vmatrix} 2 & 6 &3\\ 1 & 0& 2\\ 5&8& 4 \end{vmatrix}=2 \cdot 0 \cdot 4+6 \cdot 2 \cdot 5+3 \cdot 1 \cdot 8 - 2 \cdot 2 \cdot 8 - 6 \cdot 1 \cdot 4 - 3 \cdot 0 \cdot 5 = 28$$

當係數是實數時，行列式表示$X$、$X'$和$X''$三個向量形成的平行六面體的有向體積，也叫做這三個向量的混合積。同樣的，可以觀察到如下性質：

- 行列式為零若且唯若三個向量共線或者共面（三者線性相關），這時平行六面體退化為平面圖形，體積為零。

<image>

- 三維空間中有向體積的定義要比二維空間中複雜，一般是根據右手定則來約定。比如右圖中($u,v,w$)所形成的平行六面體的體積是正的，而($u,w,v$)所形成的平行六面體的體積是負的。這個定義和行列式的計算並不矛盾，因為行列式中向量的坐標都是在取好坐標系後才決定的，而坐標系的三個方向一般也是按照右手規則來設定的。如果計算開始時坐標系的定向反過來的話，有向體積的定義也要跟著反過來，這樣行列式才能代表有向體積。
- 這時行列式是一個「三線性映射」，也就是說，對第一個向量有$\det(aX+bY,X',X '')=a\det(X,X ',X '')+b\det(Y,X ',X '')\;$，對第二、第三個向量也是如此。其幾何意義和二維時基本相同，是指當生成兩個平行六面體的每組三個向量中如果有兩個是重合的，比如分別是：($u,v,w$)和($u',v,w$)，那麼它們的體積之總和等於將$u$和$u'$加起來後的向量$u+u'$和$v$, $w$所形成的平行六面體的體積，如右圖所示。

### 基底的選擇

在以上的行列式中，我們不加選擇地將向量在所謂的正交基（即直角坐標系）下分解，實際上在不同的基底之下，行列式的值並不相同。這並不是說平行六面體的體積不唯一。恰恰相反，這說明體積的概念依賴于衡量空間的尺度，也就是基底的取法。用基底的變換可以看作線性映射對基底的作用，而不同基底下的行列式代表了基變換對「體積」的影響。可以證明，對於所有同定向的標準正交基，向量組的行列式的值在絕對值意義上是一樣的。也就是說，如果我們選擇的基底都是「單位長度」，並且兩兩正交，那麼在這樣的基之下，平行六面體的體積的絕對值是唯一的。

### 線性變換

<image>

設E是一個一般的n維的有向歐幾里得空間。一個線性變換把一個向量線性地變為另一個向量。比如說，在三維空間中，向量($x,y,z$)被映射到向量($x',y',z'$)：

$\begin{matrix} x'= a_1x + b_1y +c_1z\\ y'= a_2x + b_2y+c_2z \\z'=a_3x+b_3y+c_3z \end{matrix}$

其中$a$、$b$、$c$是係數。如右圖，正方體（可以看作原來的一組基形成的）經線性變換後可以變成一個普通的平行六面體，或變成一個平行四邊形（沒有體積）。這兩種情況表示了兩種不同的線性變換，行列式可以將其很好地分辨出來（為零或不為零）。

更詳細地說，行列式表示的是線性變換前後平行六面體的體積的變化係數。如果設左邊的正方體體積是一，那麼中間的平行六面體的（有向）體積就是線性變換的行列式的值，右邊的平行四邊形體積為零，因為線性變換的行列式為零。這裡我們混淆了線性變換的行列式和向量組的行列式，但兩者是一樣的，因為我們在對一組基作變換。

## 行列式與空間定向

以上二維和三維行列式的例子中，行列式被解釋為向量形成的圖形的面積或體積。面積或體積的定義是恆正的，而行列式是有正有負的，因此需要引入有向面積和有向體積的概念。負的面積或體積在物理學中可能難以理解，但在數學中，它們和有向角的概念類似，都是對空間鏡面對稱特性的一種刻畫。如果行列式表示的是線性變換對體積的影響，那麼行列式的正負就表示了空間的定向。

如上圖中，左邊的黃色骰子（可以看成有單位的有向體積的物體）在經過了線性變換後變成中間綠色的平行六面體，這時行列式為正，兩者是同定向的，可以通過旋轉和拉伸從一個變成另一個。而骰子和右邊的紅色平行六面體之間也是通過線性變換得到的，但是無論怎樣旋轉和拉伸，都無法使一個變成另一個，一定要通過鏡面反射才行。這時兩者之間的線性變換的行列式是負的。可以看出，線性變換可以分為兩類，一類對應著正的行列式，保持空間的定向不變，另一類對應負的行列式，顛倒空間的定向。

## 一般域上的行列式：嚴格的定義

由二維及三維的例子，可以看到一般的行列式應該具有怎樣的性質。在$n$維歐幾里得空間中，作為「平行多面體」的「體積」的概念的推廣，行列式繼承了「體積」函數的性質。首先，行列式需要是線性的，這可以由面積的性質類比得到。這裡的線性是對於每一個向量來說的，因為當一個向量變為原來的$a$倍時，「平行多面體」的「體積」也變為原來的$a$倍。其次，當一個向量在其它向量組成的「超平面」上時，$n$維「平行多面體」的「體積」是零（可以想像三維空間的例子）。也就是說，當向量線性相關時，行列式為零。在一般係數域上的線性空間中，行列式也正是由這樣的特性所刻劃的：

### 交替多線性形式（多重線性函數）

行列式是係數域為$K$的有限維線性空間$E$上射到$K$的交替n-線性形式。

具體來說，設$E$是一個係數在域$K$上的有限維線性空間，維數為$n$。一個$E$上的交替$n-$線性形式是指滿足以下性質的函數$D:E^n \to K$：

- $n$重線性：$D(a_{1},\ldots,c a_{i} + a_{i}',\ldots,a_{n}) = c D(a_{1},\ldots,a_{i},\ldots,a_{n}) + D(a_{1},\ldots,a_{i}',\ldots,a_{n})$
- 交替性：$D(a_{1},a_{2},\ldots,a_{n}) = - D(a_{2},a_{1},\ldots,a_{n})$或者說，當$a_{i} = a_{j}$的時候$D(a_{1},\ldots,a_{i},\ldots,a_{j},\ldots,a_{n}) = 0$

所有E上的交替$n-$線性形式的集合記作$A_{n}(E)$。

定理：

$A_{n}(E)$的維度是1。也就是說，設$B=(e_{1},\dots,e_{n})$是$E$的一組基，那麼，所有的交替$n-$線性形式$f:E^n \to K$都可以寫成

$$f(a_1,\dots,a_n )= \left(\sum_{\sigma\in \mathfrak{S}_n} \sgn(\sigma) \prod_{j=1}^n a_{\sigma(j),j} \right) f(e_{1},\dots,e_{n})$$

其中$a_j = \sum_{i=1}^n a_{i,j} e_i$是在基$B$下的展開。

證明：

對任一個$n-$線性形式$D:E^n \to K$，考慮將$D$依照多線性性質展開。

$$D(a_1,\dots,a_n )= D\left(\sum_{i_1=1}^n a_{i_1,1} e_{i_1}, \dots, \sum_{i_n=1}^n a_{i_n,n} e_{i_n}\right)=\sum_{i_1=1}^n \dots \sum_{i_n=1}^n \prod_{j=1}^n a_{i_j,j} D(e_{i_1},\dots,e_{i_n})$$

這時，由交替性，$D(e_{i_1},\dots,e_{i_n}) \ne 0$若且唯若$i_1,\dots,i_n$是$1,\dots,n$的一個排列，所以有

$$D(a_1,\dots,a_n )= D(I_n) \cdot \sum_{\sigma \in S_n} \sgn(\sigma) \prod_{i=1}^n a_{i,\sigma(i)}$$

這裡，$I_n = (e_{1},\dots,e_{n})$。

### 向量組的行列式

設$B=(e_{1},\dots,e_{n})$是$E$的一組基，根據上面的定理和線性形式的性質，可以定義$B$下的行列式。

定義：

$E$上的一組基$\mathit{B}=(e_{1},\dots,e_{n})$的行列式是唯一一個滿足：

$$\det{}_\mathit{B} (e_1,... , e_n)=1$$

交替n-線性形式$\det{}_\mathit{B} :E^n \to K$。

其中的唯一性是因為如果有兩個交替$n-$線性形式滿足條件，則它們的差在一組基上為0，從而恆等於0。於是，一組基上的一個向量組的行列式就是：

定義：

確定了$E$上的一組基$B$後，向量組$a_1,\dots,a_n$在$B$下的行列式是：

$$\det{}_B(a_1,\dots,a_n )= \left(\sum_{\sigma\in \mathfrak{S}_n} \sgn(\sigma) \prod_{j=1}^n a_{\sigma(j),j} \right) \det{}_B(e_{1},\dots,e_{n}) = \sum_{\sigma\in \mathfrak{S}_n} \sgn(\sigma) \prod_{j=1}^n a_{\sigma(j),j}$$

其中$a_j = \sum_{i=1}^n a_{i,j} e_i$是在$B$下的展開。

可以見到這個定義與之前直觀的定義是吻合的，它有時也被稱作萊布尼茲公式。

#### 基變更公式

設$B$與$B'$是向量空間中的兩組基，則將上面定理中的$f$改為$\det{}_B$就得到向量組在兩組基下的行列式之間的關係：

$\det{}_{B'}(a_1,\dots, a_n)=\det{}_{B'}(B)\times \det{}_{B}(a_1,\dots, a_n)$。

### 矩陣的行列式

設$\displaystyle \mathit{M}_n(K)$為所有定義在係數域$K$上的$n\times n$矩陣的集合。將$n\times n$矩陣$M$（$M$的元素記為$\displaystyle m_{i,j}$ )的$n$列寫成$m_{1},\ldots,m_{n}$，$\displaystyle m_{j}$可以看作是$\mathbb{R}^n$的正則基上的向量。矩陣$M$的行列式定義為向量組$m_{1},\ldots,m_{n}$的行列式。這裡的向量都在$\mathbb{R}^n$的正則基上展開，因此矩陣的行列式不依賴於基的選擇。

定義：

矩陣$M$的行列式

$\det(M)= \det(m_{1},\ldots,m_{n}) = \sum_{\sigma \in \mathfrak{S}_n} \sgn(\sigma) \prod_{i=1}^n m_{ \sigma(i),i}$

這樣定義的矩陣$M$的行列式與向量組的行列式有同樣的性質。單位矩陣的行列式為1，若矩陣的某幾行線性相關，則它的行列式為零。

由萊布尼茲公式，可以證明矩陣行列式的一個重要性質：

定理：

一個矩陣的行列式等於它的轉置矩陣的行列式：$\det M = \det \left({}^t{M}\right)$。

也就是說矩陣的行列式既可以看作$n$個行向量的行列式，也可以看作$n$個列向量的行列式。因此也可以通過行向量組來定義矩陣行列式，並且得到的定義是等價的。

證明：

矩陣$A$的轉置矩陣的行列式是：

$$\det({}^t A)=\sum_{\sigma \in \mathfrak{S}_n} \sgn(\sigma) \prod_{i=1}^n a_{i,\sigma(i)}$$

令$j=\sigma(i)$，由於每個排列都是雙射，所以上式變成：

$$\det({}^t A)=\sum_{\sigma \in \mathfrak{S}_n} \sgn(\sigma) \prod_{j=1}^n a_{\sigma^{-1}(j),j}$$

令$\tau = \sigma^{-1}$，當$\sigma$取遍所有置換時，$\tau$也取遍所有排列。另一方面，$1 = \sgn(\sigma^{-1} \sigma) = \sgn(\tau \sigma)=\sgn (\tau) \sgn (\sigma)$，因此而且$\sgn \sigma = \sgn \tau$。所以

$$\det({}^t A)=\sum_{\tau \in \mathfrak{S}_n} \sgn({\sigma}) \prod_{j=1}^n a_{\tau(j),j} =\sum_{\tau \in \mathfrak{S}_n} \sgn(\tau) \prod_{j=1}^n a_{\tau(j),j}=\det A$$

### 線性變換的行列式

設$f$是$n$維線性空間$E$到自身的線性變換（自同態），對於給定的一組基，可以定義線性變換在這組基下的行列式。

定義：

設$B$是$E$的一組基。設$f$在$B$的變換矩陣為$\left[ f \right]_{B}$，那麼$f$在$B$下的行列式就是：

$\det f = \det \left([ f ]_{B} \right)$。

f的變換矩陣滿足$\left[f(x_1),\dots, f(x_n)\right] = \left[ f \right]_{B} \cdot \left[ x_1,\dots, x_n \right]$ 也就是說對所有的向量組$(x_1,\dots, x_n)$。

$$\det{}_B(f(x_1),\dots, f(x_n))=\det \left([ f ]_{B} \right) \times \det{}_B(x_1,\dots, x_n)$$

$=\det f \times \det{}_B(x_1,\cdots, x_n)$。

可以證明，f在E的任意一組基下的變換矩陣的行列式都是相等的。

證明：

考慮映射$d_{f,B}$使得$(x_1,\cdots, x_n)$被映射到

$d_{f,B}(x_1,\dots,x_n) = \det{}_B(f(x_1), \dots, f(x_n))$。

$d_{f,B}$是一個交替n-線性形式，因此由前面證的定理，$d_{f,B}$和$det_{B}$只相差一個係數。

$d_ {f,B}= \lambda \cdot \det{}_B$。

而由變換矩陣的性質可以知道：$\lambda = \det \left([ f ]_{B} \right)$

也就是說

$$\det{}_B(f(x_1),\dots, f(x_n))=\det \left([ f ]_{B} \right) \times \det{}_B(x_1,\dots, x_n) \qquad (1)$$

對於另外一組基$B'$，運用基變更公式，可以得到：

$$\det{}_B(f(x_1),\dots, f(x_n)) = \det{}_{B}(B') \times \det{}_{B'}(f(x_1),\dots, f(x_n))$$

$$\begin{align} \det \left([ f ]_{B} \right) \times \det{}_B(x_1,\dots, x_n) &= \det{}_B(f(x_1),\dots, f(x_n))\\ &= \det{}_{B}(B') \times \det{}_{B'}(f(x_1),\dots, f(x_n))\\ &= \det{}_{B}(B') \times \det \left([ f ]_{B'} \right) \times \det{}_{B'}(x_1,\dots, x_n)\\ &= \det \left([ f ]_{B'} \right) \times \det{}_B(x_1,\dots, x_n) \end{align}$$

從而可以得出$\det \left([ f ]_{B'} \right)$等於$\det \left([ f ]_{B} \right)$。於是$\det \left([ f ]_{B'} \right)$是一個不依賴於基，只依賴於f的數。

因此線性變換的行列式定義可以修改為不依賴於基的形式：

定義：

設線性變換f在某組基B下的變換矩陣為$\left[ f \right]_{B}$，那麼$f$的行列式就是：

$\det f = \det \left([ f ]_{B} \right)$。

前一節里對正方體做線性變換時，$(x_1,\cdots, x_n)$是原來的基，$\det{}_B(x_1,\dots, x_n) =1$，因此可以混淆向量組的行列式和線性變換的行列式。

特別地，行列式為1的線性變換保持向量組的行列式，它們構成一般線性群$GL(E)$的一個子群$SL(E)$，稱作特殊線性群。可以證明，$SL(E)$是由所有的錯切生成的，即所有具有如下形式的矩陣代表的線性變換：

$$\begin{bmatrix} 1 & & & & \\ & 1 & & & \\ & & \lambda & & \\ & & & 1 & \\ & & & & 1 \end{bmatrix}=I_n+\lambda E_{ij}$$

其中$E_{ij}$是只在第$i$行第$j$列處係數取1，其餘係數為0的矩陣。也就是說，錯切變換保持向量組形成的「平行多面體」的體積。同樣，可以證明兩個相似矩陣有相等的行列式。

## 係數的取值

以上的定義中都假設矩陣的係數取自域$\mathbb{K}$中，實際上矩陣的係數可以是任意的交換環$k$，這時有限維線性空間變為以$B = (e_1,\dots, e_n)$為基的自由$k-$模，而相應的關於行列式的定義和性質依然成立（在可定義的範疇內）。如果矩陣係數是非交換環的話，以上的行列式定義將不再唯一。1845年，阿瑟·凱萊首次開始研究非交換環上行列式定義的問題。他注意到，對於係數是四元數（不可交換）的二階行列式

$$\begin{vmatrix} a_{11} & a_{12} \\ a_{21} & a_{22} \\ \end{vmatrix}$$

表達式$a_{11}a_{22} - a_{12}a_{21}$和$a_{11}a_{22} - a_{21}a_{12}$是不一樣的。1926年，阿蘭德·海廷和A.理察森提出了非交換環上的行列式的不同定義。理察森將二階行列式定義為：$(a_{11} - a_{12}a_{22}^{-1}a_{21})a_{22}$，而海廷則提倡使用$(a_{11} - a_{12}a_{22}^{-1}a_{21})$。兩人都用歸納法定義了更高階矩陣的行列式。1931年，奧斯丁·歐爾在一大類非交換環（後來命名為歐爾環）上定義了行列式的概念。最著名的非交換環上的行列式的定義當屬讓·迪厄多內的定義。迪厄多內是布爾巴基學派的代表成員之一，他將除環$\mathbb{K}$中的行列式定義在商域$\mathbb{K}/[\mathbb{K}, \mathbb{K}]$上，而不是在$\mathbb{K}$中。這個定義下的行列式有接近交換環中行列式的性質。例如，迪爾多內的行列式可以保持行列式的乘法定理。而這種行列式與交換環中行列式的區別是：將矩陣的兩行或兩列互換後，行列式的值不變。之後菲列克斯·別列金（Березин, Феликс Александрович）、佐藤幹夫等人對迪厄多內的定義進行了探究和擴展。

## 行列式的性質

行列式的一些基本性質，可以由它的多線性以及交替性推出。

- 在行列式中，一行（列）元素全為0，則此行列式的值為0。

$$\begin{vmatrix} {\color{blue}0} & {\color{blue}0} & \dots & {\color{blue}0} \\ a_{21} & a_{22} & \dots & a_{2n} \\ \vdots & \vdots & \ddots & \vdots \\ a_{n1} & a_{n2} & \dots & a_{nn} \end{vmatrix} = \begin{vmatrix} {\color{blue}0} & a_{12} & \dots & a_{1n} \\ {\color{blue}0} & a_{22} & \dots & a_{2n} \\ \vdots & \vdots & \ddots & \vdots \\ {\color{blue}0} & a_{n2} & \dots & a_{nn} \end{vmatrix}= 0$$

- 在行列式中，某一行（列）有公因子$k$，則可以提出$k$。

$$D=\begin{vmatrix} a_{11} & a_{12} & \dots & a_{1n} \\ \vdots & \vdots & \ddots & \vdots \\ {\color{blue}k}a_{i1} & {\color{blue}k}a_{i2} & \dots & {\color{blue}k}a_{in} \\ \vdots & \vdots & \ddots & \vdots \\ a_{n1} & a_{n2} & \dots & a_{nn} \end{vmatrix} ={\color{blue}k}\begin{vmatrix} a_{11} & a_{12} & \dots & a_{1n} \\ \vdots & \vdots & \ddots & \vdots \\ a_{i1} & a_{i2} & \dots & a_{in} \\ \vdots & \vdots & \ddots & \vdots \\ a_{n1} & a_{n2} & \dots & a_{nn} \end{vmatrix} ={\color{blue}k}D_1$$

- 在行列式中，某一行（列）的每個元素是兩數之和，則此行列式可拆分為兩個相加的行列式。

$$\begin{vmatrix} a_{11} & a_{12} & \dots & a_{1n} \\ \vdots & \vdots & \ddots & \vdots \\ {\color{blue}a_{i1}}+{\color{OliveGreen}b_{i1}} & {\color{blue}a_{i2}}+{\color{OliveGreen}b_{i2}} & \dots & {\color{blue}a_{in}}+{\color{OliveGreen}b_{in}} \\ \vdots & \vdots & \ddots & \vdots \\ a_{n1} & a_{n2} & \dots & a_{nn} \end{vmatrix} =\begin{vmatrix} a_{11} & a_{12} & \dots & a_{1n} \\ \vdots & \vdots & \ddots & \vdots \\ {\color{blue}a_{i1}} & {\color{blue}a_{i2}} & \dots & {\color{blue}a_{in}} \\ \vdots & \vdots & \ddots & \vdots \\ a_{n1} & a_{n2} & \dots & a_{nn} \end{vmatrix} +\begin{vmatrix} a_{11} & a_{12} & \dots & a_{1n} \\ \vdots & \vdots & \ddots & \vdots \\ {\color{OliveGreen}b_{i1}} & {\color{OliveGreen}b_{i2}} & \dots & {\color{OliveGreen}b_{in}} \\ \vdots & \vdots & \ddots & \vdots \\ a_{n1} & a_{n2} & \dots & a_{nn} \end{vmatrix}$$

- 行列式中的兩行（列）互換，改變行列式正負符號。

$$\begin{vmatrix} \vdots & \vdots & \vdots & \vdots \\ {\color{blue}a_{i1}} & {\color{blue}a_{i2}} & \dots & {\color{blue}a_{in}} \\ {\color{OliveGreen}a_{j1}} & {\color{OliveGreen}a_{j2}} & \dots & {\color{OliveGreen}a_{jn}} \\ \vdots & \vdots & \vdots & \vdots \\ \end{vmatrix} =-\begin{vmatrix} \vdots & \vdots & \vdots & \vdots \\ {\color{OliveGreen}a_{j1}} & {\color{OliveGreen}a_{j2}} & \dots & {\color{OliveGreen}a_{jn}} \\ {\color{blue}a_{i1}} & {\color{blue}a_{i2}} & \dots & {\color{blue}a_{in}} \\ \vdots & \vdots & \vdots & \vdots \\ \end{vmatrix}$$

- 在行列式中，有兩行（列）對應成比例或相同，則此行列式的值為0。

$$\begin{vmatrix} {\color{blue}2} & {\color{blue}2} & \dots & {\color{blue}2} \\ {\color{blue}8} & {\color{blue}8} & \dots & {\color{blue}8} \\ \vdots & \vdots & \ddots & \vdots \\ a_{n1} & a_{n2} & \dots & a_{nn} \end{vmatrix} = 0$$

- 將一行（列）的$k$倍加進另一行（列）裡，行列式的值不變。

$$\begin{vmatrix} \vdots & \vdots & \vdots & \vdots \\ a_{i1} & a_{i2} & \dots & a_{in} \\ a_{j1} & a_{j2} & \dots & a_{jn} \\ \vdots & \vdots & \vdots & \vdots \\ \end{vmatrix} =\begin{vmatrix} \vdots & \vdots & \vdots & \vdots \\ a_{i1} & a_{i2} & \dots & a_{in} \\ a_{j1}{\color{blue}+ka_{i1}} & a_{j2}{\color{blue}+ka_{i2}} & \dots & a_{jn}{\color{blue}+ka_{in}} \\ \vdots & \vdots & \vdots & \vdots \\ \end{vmatrix}$$

注意：一行（列）的$k$倍加上另一行（列），行列式的值改變。

$$\begin{vmatrix} \vdots & \vdots & \vdots & \vdots \\ a_{i1} & a_{i2} & \dots & a_{in} \\ a_{j1} & a_{j2} & \dots & a_{jn} \\ \vdots & \vdots & \vdots & \vdots \\ \end{vmatrix} {\color{red}\ne}\begin{vmatrix} \vdots & \vdots & \vdots & \vdots \\ a_{i1} & a_{i2} & \dots & a_{in} \\ {\color{red}k}a_{j1}{\color{red}+a_{i1}} & {\color{red}k}a_{j2}{\color{red}+a_{i2}} & \dots & {\color{red}k}a_{jn}{\color{red}+a_{in}} \\ \vdots & \vdots & \vdots & \vdots \\ \end{vmatrix}$$

- 將行列式的行列互換，行列式的值不變，其中行列互換相當於轉置。這個性質可以簡單地記作

$$D=\begin{vmatrix} a_{ij} \end{vmatrix} =\begin{vmatrix} a_{ji} \end{vmatrix} =D^{\textrm{T}}$$

例如

$$\begin{vmatrix} a_{11} & a_{12} & \dots & a_{1n} \\ a_{21} & a_{22} & \dots & a_{2n} \\ \vdots & \vdots & \ddots & \vdots \\ a_{n1} & a_{n2} & \dots & a_{nn} \end{vmatrix} =\begin{vmatrix} a_{11} & a_{21} & \dots & a_{n1} \\ a_{12} & a_{22} & \dots & a_{n2} \\ \vdots & \vdots & \ddots & \vdots \\ a_{1n} & a_{2n} & \dots & a_{nn} \end{vmatrix}$$

- 行列式的乘法定理：方塊矩陣的乘積的行列式等於行列式的乘積。$\displaystyle \det(AB)=\det(A) \det(B)$。特別的，若將矩陣中的每一行每一列上的數都乘以一個常數$r$，那麼所得到的行列式不是原來的$r$倍，而是$r^n$倍：

$\det(rA) = \det(rI_n \cdot A) = \det(rI_n) \cdot \det(A) = r^n \det(A)$。

- 以上的乘法公式還可以進一步推廣為所謂柯西–比內公式，從而使得只要兩個矩陣的乘積是方塊矩陣，就有類似於以上的結果：假設$A$是一個$m \times n$矩陣，而$B$是一個$n \times m$矩陣。如果$S$是$\left\{ 1, \cdots, n\right\}$中具有$m$個元素的子集$\left\{ S_1, \cdots, S_m\right\}$，我們記$A_S$為$A$中列指標位於$S$中的$m \times m$子矩陣。類似地，記$B_S$為$B$中行指標位於$S$中的$m \times m$子矩陣。那麼

$$\det(AB) = \sum_S \det(A_S)\det(B_S)\,$$

這裡求遍$\left\{ 1, \cdots, n\right\}$中$m$個元素的所有可能子集$S$（共有C(n,m)個）。

如果$m=n$，即$A$與$B$是同樣大小的方塊矩陣，則只有一個容許集合$S$，柯西–比內公式退化為通常行列式的乘法公式。如過$m=1$則有$n$容許集合$S$，這個公式退化為點積。如果$m>n$，沒有容許集合$S$，約定行列式$\det (AB)$是零。

- 若$A$是可逆矩陣，$\displaystyle \det(A^{-1})= (\det(A) )^{-1}$。
- 由行列式的乘法定理以及$\displaystyle \det(A^{-1})= (\det(A) )^{-1}$可以知道，行列式定義了一個從一般線性群$(GL_n(\mathbb{F}),\times)$到$(\mathbb{F}^*,\times)$上的群同態。
- 若將方塊矩陣中的元素取共軛，得到的是矩陣的共軛矩陣。共軛矩陣的行列式值等於矩陣行列式值的共軛：$\det(\overline{A}) = \overline{\det(A)}$
- 若兩個矩陣相似，那麼它們的行列式相同。這是因為兩個相似的矩陣之間只相差一個基底變換，而行列式描述的是矩陣對應的線性映射對體積的影響，而不是體積，所以基底變換並不會影響行列式的值。用數學語言來說，就是：

如果兩個矩陣$\mathbf{A}$與$\mathbf{B}$相似，那麼存在可逆矩陣$\mathbf{P}$使得

$\mathbf{A} = \mathbf{PB} \mathbf{P}^{-1}$，所以

$\det(\mathbf{A}) = \det (\mathbf{PB} \mathbf{P}^{-1}) = \det(\mathbf{P}) \cdot \det(\mathbf{B}) \cdot \det(\mathbf{P}^{-1}) = \det(\mathbf{B}) \cdot \det(\mathbf{P}) \cdot \det(\mathbf{P})^{-1} = \det(\mathbf{B})$

- 行列式是所有特徵值（按代數重數計）的乘積。這可由矩陣必和其若爾當標準型相似推導出。特殊地，三角矩陣的行列式等於其對角線上所有元素的乘積。
- 由於三角矩陣的行列式計算簡便，當矩陣的係數為域時，可以通過高斯消去法將矩陣變換成三角矩陣，或者將矩陣分解成三角矩陣的乘積之後再利用行列式的乘法定理進行計算。可以證明，所有的矩陣$A$都可以分解成一個上三角矩陣$U$、一個下三角矩陣$L$以及一個置換矩陣$P$的乘積：$A = P \cdot L \cdot U$。這時，矩陣$A$的行列式可以寫成：

$\det(A) = \det(P)\cdot \det(L)\cdot\det(U)$

- 分塊矩陣的行列式並不能簡單地表示成每個分塊的行列式的乘積組合。對於分塊的三角矩陣，仍然有類似的結論：

$\begin{vmatrix}A& 0\\ C& D\end{vmatrix} = \begin{vmatrix}A& B\\ 0& D\end{vmatrix} = \det(A) \det(D)$，矩陣的行列式等於對角元素的行列式之乘積。

對於一般情況，若對角元素中有一個是可逆矩陣，比如說$A$可逆，那麼矩陣的行列式可以寫做

$\begin{vmatrix}A& B\\ C& D\end{vmatrix} = \det(A) \det(D - C A^{-1} B)$。

- 矩陣的行列式和矩陣的跡數有一定的關聯，當矩陣的係數為域時，在定義了矩陣的指數函數後，有如下的恆等式：

$\det(\exp(A)) = \exp(\mathrm{tr}(A))$

## 行列式的展開

### 餘因式

對一個$n$階的行列式$M$，去掉$M$的第$i$行第$j$列後形成的$n-1$階的行列式叫做$M$關於元素$m_{ij}$的餘因式。記作$M_{ij}$。

$$M_{ij} = \begin{vmatrix}m_{1,1} & \dots & m_{1,j-1}& m_{1,j+1}& \dots & m_{1,n} \\\vdots & & \vdots & \vdots& &\vdots\\ m_{i-1,1} & \dots & m_{i-1,j-1}& m_{i-1,j+1}& \dots & m_{i-1,n} \\ m_{i+1,1} & \dots & m_{i+1,j-1}& m_{i+1,j+1}& \dots & m_{i+1,n} \\ \vdots & & \vdots & \vdots &&\vdots\\ m_{n,1} & \dots & m_{n,j-1}& m_{n,j+1}& \dots & m_{n,n}\end{vmatrix}$$

<image>

### 代數餘子式

$M$關於元素$m_{ij}$的代數餘子式記作$C_{ij}$。$C_{ij} = (-1)^{(i+j)} \cdot M_{ij}$。

### 行列式關於行和列的展開

一個$n$階的行列式$M$可以寫成一行（或一列）的元素與對應的代數餘子式的乘積之和，叫作行列式按一行（或一列）的展開。

$$\det{M}=\sum_{i=1}^{n} m_{i;j} C_{i,j}$$

$$\det{M}=\sum_{j=1}^{n} m_{i;j} C_{i,j}$$

這個公式又稱拉普拉斯公式，把$n$維矩陣的行列式計算變為了$n$個$n-1$維的行列式的計算。另一方面，拉普拉斯公式可以作為行列式的一種歸納定義：在定義了二維行列式後，$n$維矩陣的行列式可以藉助拉普拉斯公式用$n-1$維的行列式來定義。這樣定義的行列式與前面的定義是等價的。

## 行列式的計算

計算行列式的值是一個常見的問題。最簡單的方法是按照定義$\det (A) = \sum_{\sigma \in S_n} \sgn(\sigma) \prod_{i=1}^n a_{i,\sigma(i)}$計算或按照拉普拉斯公式進行遞歸運算。這樣的演算法需要計算$n!$次的加法，複雜度是指數函數。在實際的計算中只能用於計算階數很小的行列式。注意到拉普拉斯公式的性質，如果一行或一列裡面有很多個0，那麼就可以把行列式按這一行或一列展開，這時數值為零的係數所對應的代數餘子式就不必計算了，因為最後要乘以0，這樣就可以簡化計算。然而更加簡便的演算法是利用高斯消去法或LU分解法，把矩陣通過初等變換變成三角矩陣或三角矩陣的乘積來計算行列式的值。這些演算法的複雜度都是$n^3$級別，遠遠小於直接計算的複雜度。

如果一個演算法可以在$\mathit{O}(n^s)$時間內算出矩陣乘法，那麼可以構造出一種$\mathit{O}(n^s)$時間內的行列式求值演算法。這說明求矩陣的行列式的值和矩陣的乘法有相同的複雜度。於是，通過分治演算法或者其它的方法，可以達到比$\mathit{O}(n^3)$更好的結果。比如，存在複雜度$\mathit{O}(n^{2.376})$的行列式求值演算法。

## 行列式函數

由行列式的一般表達形式中可以看出，矩陣$A$的行列式是關於其係數的多項式。因此行列式函數具有良好的光滑性質。

### 單變量的行列式函數

設矩陣函數$t\mapsto A(t)$為$\mathcal C^k$（k階連續可導）的函數，則由於行列式函數$t\mapsto \det A(t)$只不過是矩陣$A(t)$的某些係數的乘積，所以也是$\mathcal C^k$的。其對t的導數為

$\frac{{\rm d}}{{\rm d}t} \left(\det (A_1(t),\dots, A_n(t)) \right)= \sum_{i=1}^n \det (A_1(t),\dots, A_{i-1}(t),A'_i(t),A_{i+1}(t),\dots, A_n(t))$，其中的每個$A_i(t)$是矩陣$A(t)$的第i個行向量（也可以全部是列向量）。

### 矩陣的行列式函數

函數$A \mapsto \det A$是連續的。由此，n階一般線性群是一個開集，因為是開區間$\mathbb{R}-\left\{0\right\}$的原像，而特殊線性群則是一個閉集，因為是閉集合$\left\{1, -1 \right\}$的原像。

函數$A \mapsto \det A$也是可微的，甚至是光滑的（$\mathcal C^\infty$）。它在某個矩陣$A$處的展開為

$\det (A+H)=\det A + {\rm tr } ({}^t{\rm Com }(A).H)+o(\|H\|)$

也就是說，在裝備正則範數的矩陣空間$M_n(\mathbb{R})$中，伴隨矩陣是行列式函數的梯度

$\nabla \det (A) = {\rm Com }(A)$特別當$A$為單位矩陣時。

$$\det (I+H)=1 + {\rm tr } (H)+o(\|H\|) , \qquad \nabla \det (I) = I$$

可逆矩陣的可微性說明一般線性群$GL_n(\mathbb{R})$是一個李群。

## 與外代數的關係

行列式與外代數有密切的關係，因為外代數正是在給定的交換環$\mathbb{K}$上的自由$\mathbb{K}$-模$V$上最「一般性」的有交替性質的結合代數，記為$\wedge (V)$。外代數是由楔積構造而成的，而楔積在$V$上的交替性質表現如下（定義）：

楔積是滿足結合律的雙線性的二元運算，使得對於所有向量$v\in V$，$v\wedge v = 0$

這表示

對於所有向量$u,v\in V$，$u\wedge v = - v\wedge u$，以及

當$v_1,\ldots,v_k\in V$ 線性相關時，$v_1\wedge v_2\wedge\cdots \wedge v_k = 0$。所有形同$v_1\wedge v_2\wedge\cdots \wedge v_k$的元素稱為$k-$向量。所有$k-$向量構成了$\wedge (V)$的一個子空間，稱為$V$的$k-$階外冪，記為$\wedge^k (V)$。行列式函數是$n$重交替線性形式，所以可以看成是將$n$個$\mathbb{K}^n$裡面的向量映射到它們對應的$n-$階外冪$\wedge^n (\mathbb{K}^n)$這樣一個映射。由於$\mathbb{K}^n$的$k-$階外冪$\wedge^k (\mathbb{K}^n)$的維數等於組合數$\binom{n}{k}$，$\wedge^n (\mathbb{R}^n)$的維數是$\binom{n}{n} = 1$，因此$\wedge^n (\mathbb{K}^n)$實際上同構於$\mathbb{K}$，所以將行列式看做$n$個$\mathbb{K}^n$裡面的向量映射到它們對應的$n-$階外冪$\wedge^n (\mathbb{K}^n)$的映射與之前的行列式定義並沒有衝突。外代數理論實際上涵蓋了行列式理論。

對三維歐幾里得空間中$\mathbb{R}^3$可以建立一個線性同構$\phi: \Lambda^2(\mathbb{R}^3) \rightarrow \mathbb{R}^3$如下：任取$\mathbb{R}^3$的右手的標準正交基$\boldsymbol{i}$，$\boldsymbol{j}$，$\boldsymbol{k}$，規定$\phi$把$\boldsymbol{i} \wedge \mathbf{j}$，$\boldsymbol{j} \wedge \boldsymbol{k}$，$\boldsymbol{k} \wedge \boldsymbol{i}$分別映射為$\boldsymbol{k}$，$\boldsymbol{i}$，$\boldsymbol{j}$，則$\phi$的定義與右手的標準正交基如何選取無關。

不難看出，對任意向量$\boldsymbol{u}$和$\boldsymbol{v}$，這個線性同構把楔積$\boldsymbol{u} \wedge \boldsymbol{v}$映射為叉積$\boldsymbol{u} \times \boldsymbol{v}$。這就是叉乘（向量積）的實質。叉積可以用帶向量的行列式：

$$\mathbf{a}\times\mathbf{b}=\ \begin{vmatrix} \mathbf{i} & \mathbf{j} & \mathbf{k} \\ a_1 & a_2 & a_3 \\ b_1 & b_2 & b_3 \\ \end{vmatrix}$$

來表示，但要注意這個行列式形式並不代表一個「真正」的行列式，因為第一行的分量不是數，而是向量。這個計算之所以正確是得益於線性同構$\phi$。

## 歷史

行列式的概念最初是伴隨著方程組的求解而發展起來的。行列式的提出可以追溯到十七世紀，最初的雛形由日本數學家關孝和與德國數學家戈特弗里德·萊布尼茨各自獨立得出，時間相差132年。

### 早期研究

<image>

1545年，吉羅拉莫·卡爾達諾在著作《大術》（Ars Magna）中給出了一種解兩個一次方程組的方法。他把這種方法稱為「母法」（regula de modo）。這種方法和後來的克萊姆法則已經很相似了，但卡爾達諾並沒有給出行列式的概念。

1683年，日本數學家關孝和在其著作《解伏題之法》中首次引進了行列式的概念。書中出現了$2 \times 2$、$3 \times 3$乃至$5 \times 5$的行列式，行列式被用來求解高次方程組。

1693年，德國數學家萊布尼茨開始使用指標數的系統集合來表示有三個未知數的三個一次方程組的係數。他從三個方程的系統中消去了兩個未知量後得到一個行列式。這個行列式不等於零，就意味著有一組解同時滿足三個方程。由於當時沒有矩陣的概念，萊布尼茨將行列式中元素的位置用數對來表示：代表第i行第j列。萊布尼茨對行列式的研究成果中已經包括了行列式的展開和克萊姆法則，但這些結果在當時並不為人所知。

### 任意階數的行列式

1730年，蘇格蘭數學家科林·麥克勞林在他的《論代數》中已經開始闡述行列式的理論，記載了用行列式解二元、三元和四元一次方程的方法，並給出了四元一次方程組的一般解的正確形式，儘管這本書直到麥克勞林逝世兩年後（1748年）才得以出版。

<image>

1750年，瑞士的加布里爾·克萊姆首先在他的《代數曲線分析引論》給出了n元一次方程組求解的法則，用於確定經過五個點的一般二次曲線的係數，但並沒有給出證明。其中行列式的計算十分複雜，因為是定義在奇置換和偶置換上的。

此後，關於行列式的研究逐漸增多。1764年，法國的艾蒂安·裴蜀的論文中關於行列式的計算方法的研究簡化了克萊姆法則，給出了用結式來判別線性方程組的方法。同是法國人的范德蒙德則在1771年的論著中第一個將行列式和解方程理論分離，對行列式單獨作出闡述。這是數學家們開始對行列式本身進行研究的開端。

1772年，皮埃爾-西蒙·拉普拉斯在論文《對積分和世界體系的探討》中推廣了范德蒙德著作裡面將行列式展開為若干個較小的行列式之和的方法，發展出子式的概念。一年後，約瑟夫·拉格朗日發現了$3 \times 3$的行列式與空間中體積的聯繫。他發現：原點和空間中三個點所構成的四面體的體積，是它們的坐標所組成的行列式的六分之一。

行列式在大部分歐洲語言中被稱為「determinant」（某些語言中詞尾加e或o，或變成s），這個稱呼最早是由卡爾·弗里德里希·高斯在他的《算術研究》中引入的。這個稱呼的詞根有「決定」意思，因為在高斯的使用中，行列式能夠決定二次曲線的性質。在同一本著作中，高斯還敘述了一種通過係數之間加減來求解多元一次方程組的方法，也就是現在的高斯消元法。

### 行列式的現代概念

<image>

進入十九世紀後，行列式理論進一步得到發展和完善。奧古斯丁·路易·柯西在1812年首先將「determinant」一詞用來表示十八世紀出現的行列式，此前高斯只不過將這個詞限定在二次曲線所對應的係數行列式中。柯西也是最早將行列式排成方陣並將其元素用雙重下標表示的數學家（垂直線記法是阿瑟·凱萊在1841年率先使用的）。柯西還證明了行列式的乘法定理（實際上是矩陣乘法），這個定理曾經在雅克·菲利普·瑪利·比內（Jacque Philippe Marie Binet）的書中出現過，但沒有證明。

十九世紀五十年代，凱萊和詹姆斯·約瑟夫·西爾維斯特將矩陣的概念引入數學研究中。行列式和矩陣之間的密切關係使得矩陣論蓬勃發展的同時也帶來了許多關於行列式的新結果，例如阿達馬不等式、正交行列式、對稱行列式等等。

與此同時，行列式也被應用於各種領域中。高斯在二次曲線和二次型的研究中使用行列式作為二次曲線和二次型劃歸為標準型時的判別依據。之後，卡爾·魏爾斯特拉斯和西爾維斯特又完善了二次型理論，研究了$\lambda$-矩陣的行列式以及初等因子。行列式被用於多重函數的積分大約始於十九世紀三十年代。1832年至1833年間卡爾·雅可比發現了一些特殊結果，1839年，歐仁·夏爾·卡塔蘭（Eugène Charles Catalan）發現了所謂的雅可比行列式。1841年，雅可比發表了一篇關於函數行列式的論文，討論函數的線性相關性與雅可比行列式的關係。

## 應用

### 行列式與線性方程組

行列式的一個主要應用是解線性方程組。當線性方程組的方程個數與未知數個數相等時，方程組不一定總是有唯一解。對一個有n個方程和n個未知數的線性方程組，我們研究未知數係數所對應的行列式。這個線性方程組有唯一解若且唯若它對應的行列式不為零。這也是行列式概念出現的根源。

當線性方程組對應的行列式不為零時，由克萊姆法則，可以直接以行列式的形式寫出方程組的解。但用克萊姆法則求解計算量巨大，因此並沒有實際應用價值，一般用於理論上的推導。

### 行列式與矩陣

矩陣的概念出現得比行列式晚，直到十九世紀中期才被引入，然而兩者在本質上仍然有密切關係。通過矩陣，線性方程組可以表示為

$$\mathbf{A}x = b$$

其中$\mathbf{A}$是由方程組中未知數的係數構成的方塊矩陣，$x = (x_1, x_2, \cdots , x_n)^{\mathbf{T}}$是未知數，而$b = (b_1, b_2, \cdots , b_n)^{\mathbf{T}}$。

在矩陣理論中，行列式也有各種用途。多項式$p(x) = \det(xI - A)$稱為方塊矩陣$A$的特徵值多項式。這是一個由行列式定義的多項式，它的解是矩陣所有的特徵值。換句話說，$x$是矩陣$A$的特徵值若且唯若$xI - A$不是可逆矩陣。特徵值多項式在矩陣理論中有重要的應用。

### 行列式與多項式

早在高斯的時代，行列式就和多項式的研究聯繫在一起。行列式的一個應用是在所謂的「結式」上。結式是兩個多項式$\displaystyle p$和$\displaystyle q$的西爾維斯特矩陣的行列式。兩個多項式的結式等於0若且唯若它們有高於或等於一次的公因子多項式。結式還可以判斷多項式是否有重根：如果多項式$\displaystyle p$和它的微分多項式$\displaystyle p^{\prime}$的結式不為零，那麼這個多項式沒有重根，否則有重根。

行列式在多項式逼近理論中也有出現。給定一組插值點，判別插值多項式的存在性需要看所謂的范德蒙矩陣，而由於范德蒙矩陣的行列式不為零，因此根據克萊姆法則，插值多項式唯一存在（次數小於插值點個數）。

### 朗斯基行列式

朗斯基行列式是函數矩陣的行列式，因此本身也是一個函數。給定n個n-1次連續可微函數，f1、...、fn，它們的朗斯基行列式W(f1, ..., fn)為：

$W(f_1, \ldots, f_n)(t) = \begin{vmatrix} f_1(t) & f_2(t) & \cdots & f_n (t)\\ f_1'(t) & f_2'(t) & \cdots & f_n'(t)\\ \vdots & \vdots & \ddots & \vdots \\ f_1^{(n-1)}(t) & f_2^{(n-1)}(t) & \cdots & f_n^{(n-1)}(t) \end{vmatrix}$

可以證明，如果f1、...、fn線性相關，那麼它們的朗斯基行列式恆等於零。

在線性微分動力系統理論中，朗斯基行列式用來判別若干個解的線性相關性。如果n個解f1、...、fn線性無關，那麼它們的朗斯基行列式將總不為零。根據劉維爾定理，n維空間上的線性微分方程：

$$Y^{\prime}=A(t)Y$$

基礎解系所構成的朗斯基行列式$W(t)$滿足：

$W'(t)={\rm tr }\, A(t) W(t)$。

同樣地，線性微分方程：

$y^{(n)}=a_0(t) y + a_1(t) y' + a_2(t) y'' + ... + a_{n-1}(t) y^{(n-1)} \,$的基礎解系所構成的朗斯基行列式$W(t)$滿足：

$W'(t)=a_{n-1}(t) W(t)$

### 行列式與多重積分

<image>

行列式體現了線性變換對於空間體積的作用，對於非線性的函數，其對體積的影響更為複雜，但對於足夠「良好」的函數，在一個微小的範圍內，比如說在空間中一點的附近，可以將函數的效果近似地用線性的變換來代替。由此，對於某些函數，也可以將它在某一點附近的作用效果用它在這一點上的偏導數構成的矩陣（稱為雅可比矩陣）來表示。這類行列式被稱為「雅可比行列式」，即是雅可比矩陣的行列式，只對連續可微的函數有定義。

在計算「體積」的多重積分中，雅可比行列式應用於換元積分的時候。積分的思想是將空間割成許多個微小的體積元，稱為積分元素，再將每個體積元上的函數值乘以體積元的體積後相加。將一個積分元素換為另一個積分元素時，實際上作了一次對空間中體積的度量方式的改變：分劃體積元的方式不同了。譬如在二維空間中，將直角坐標積分換為極坐標積分時，面積元素由方塊區域變成扇形區域。因此，要測量這種體積度量方式的改變，可以將這種變換看成一個非線性的變換函數（實際上是一個微分同胚）：$\varphi : \mathbb{R}^n \longrightarrow \mathbb{R}^n$。而它在每一點的影響可以通過雅可比行列式來體現。

### 行列式與非線性方程組及分枝理論

運用雅可比行列式的還有非線性方程組的數值求解。對於一般的非線性方程組，不存在求解公式，只能夠用數值分析的方法求近似解。求近似解的基本思想也是將非線性問題在局部的地方逐步線性化，化歸為線性方程組來求解。設有方程組：

$$\begin{cases} f_1(x_1, x_2, \cdots, x_n) = 0 \\ \quad\vdots \qquad \qquad \qquad \vdots \quad \\ f_n(x_1, x_2, \cdots, x_n) = 0 \end{cases}$$

其中$f =(f_1 , \cdots , f_n)$是連續可微函數，並在解的附近雅可比行列式不為零，那麼可以用牛頓法迭代求得近似解。迭代程序為：

$$f(x^{(k+1)}) = x^{(k)} - \det(\mathbf{J}_f(x^{(k)}))^{-1} f( x^{(k)} ) \qquad (k=0, 1, \cdots)$$

其中的$x^{(k)} = ( x_1^{(k)},x_2^{(k)}, \cdots ,x_n^{(k)})$是第$k$次迭代時的解的近似數值。每次迭代時先求解關於線性方程組

$$\mathbf{J}_f(x^{(k)}) \Delta x^{(k)} = f(x^{(k)})$$

然後計算新的近似值

$x^{(k+1)} = x^{(k)} - \Delta x^{(k)}$

在實際應用中，還需要考慮帶有參數的非線性方程組：

$$\begin{cases} f_1(x_1, x_2, \cdots, x_n, \lambda) = 0 \\ \quad\vdots \qquad \qquad \qquad \vdots \quad \\ f_n(x_1, x_2, \cdots, x_n, \lambda) = 0 \end{cases}$$

其中的$\lambda$可以代表溫度、外力等環境因素。當環境改變時，方程解上的雅可比行列式可能從非零變為零。雅可比行列式為零的點稱為臨界點或分支點，是方程的解改變性質的地方。和線性方程組類似，當雅可比行列式的值為零時，方程組會出現局部多值的情況。尋找分支點和分支方向的研究是非線性方程求解的一大問題。

## 外部連結

- Online Matrix Calculator線上行列式計算器
- Online Matrix Calculator 線上矩陣計算器
- 《新理解矩陣5》：體積=行列式 來自科學空間