十八、行列式

行列式就是一个数字而已。

1. 2x2矩阵的行列式

假设:

\mathbf{A} = \begin{bmatrix} a & b\\ c & d \end{bmatrix}

那么A逆为:

\mathbf{A}^{-1} = \frac{1}{ad-bc}\begin{bmatrix} d & -b\\ -c & a \end{bmatrix}

但是,并不是所有的矩阵都有逆矩阵,对于矩阵A,当ad-bc等于0时,上面的等式将没有意义,因此,ad-bc是个非常有趣的数,我们应该给它起一个名字,就叫行列式吧。

Det(\mathbf{A}) = \left | \mathbf{A} \right | = \left | \begin{bmatrix} a & b\\ c & d \end{bmatrix} \right | = \left | \begin{matrix} a & b\\ c & d \end{matrix} \right | = ad-bc

很多人觉得既写竖线,又写中括号很麻烦,所以就省略了中括号。

行列式不等于0,等价于矩阵A存在逆矩阵。行列式的重要作用就是判断矩阵是否存在逆矩阵。

2. 3x3矩阵的行列式

假设

\mathbf{A} = \begin{bmatrix} a_{11} & a_{12} & a_{13} \\ a_{21} & a_{22} & a_{23} \\ a_{31} & a_{32} & a_{33} \end{bmatrix}

那么A的行列式定义为:

Det(A)=a_{11}\begin{vmatrix} a_{22} & a_{23}\\ a_{32} & a_{33} \end{vmatrix} - a_{12}\begin{vmatrix} a_{21} & a_{23}\\ a_{31} & a_{33} \end{vmatrix} + a_{13}\begin{vmatrix} a_{21} & a_{22}\\ a_{31} & a_{32} \end{vmatrix}

注意,上面的式子是人为定义的3x3矩阵的行列式,其思路和2x2矩阵相同

3. nxn矩阵的行列式

假设

\mathbf{A} = \begin{bmatrix} a_{11} & a_{12} & \cdots & a_{1n}\\ a_{21} & a_{22} & \cdots & a_{2n}\\ \cdots & \cdots & \cdots & \cdots\\ a_{n1} & a_{n2} & \cdots & a_{nn} \end{bmatrix}

在定义nxn矩阵的行列式之前,先定义子矩阵\mathbf{A}_{ij}:矩阵\mathbf{A}忽略掉第i行和第j列,剩余的(n-1)x(n-1)矩阵即为子矩阵\mathbf{A}_{ij}

nxn矩阵的行列式,实际是个递归调用:

det(\mathbf{A}) =a_{11}det(\mathbf{A_{11}}) - a_{12}det(\mathbf{A_{12}}) + a_{13}det(\mathbf{A_{13}}) - \cdots + \cdots \pm a_{1n}det(\mathbf{A_{1n}})

递归公式:用自己定义自身,不过自己是自身的稍稍简化版,持续递归下去时,你会得到越来越简化的式子,直到最基本的东西。

4. 沿其它行或列求nxn矩阵的行列式

可以沿其它行或列求nxn矩阵的行列式,暂未证明。这很有用,因为我们可以选择行列中0较多的来做,这样可以简化计算。唯一要注意的是符号位,第i行,第j列的符号为:

sign(i,j)=(-1)^{i+j}

假设

\mathbf{A}=\begin{bmatrix} a_{11} & a_{12} & a_{13} & \cdots & a_{1n}\\ \cdots & \cdots & \cdots & \cdots & \cdots\\ a_{i1} & a_{i2} & a_{i3} & \cdots & a_{in}\\ \cdots & \cdots & \cdots & \cdots & \cdots\\ a_{n1} & a_{n2} & a_{n3} & \cdots & a_{nn} \end{bmatrix}

选择第i行求行列式:

\begin{align*} det(\mathbf{A})&=(-1)^{i+1}a_{i1}det(\mathbf{A_{i1}})+(-1)^{i+2}a_{i2}det(\mathbf{A_{i2}}) + \cdots + (-1)^{i+n}a_{in}det(\mathbf{A_{in}}) \\ &= \sum_{j=1}^{j=n}(-1)^{i+j}a_{ij}det(\mathbf{A_{ij}}) \end{align*}

5. Sarrus法则(萨吕法则)

萨吕法则可以快速的求解3x3矩阵的行列式。

6. 矩阵行列式的一些属性

6.1 当矩阵某一行乘以系数时的行列式计算

仅仅有一行乘以某个系数k时,新行列式等于k倍的原始行列式。

假设

{A}'=\begin{bmatrix} a_{11} & a_{12} & a_{13} & \cdots & a_{1n}\\ \cdots & \cdots & \cdots & \cdots & \cdots\\ ka_{i1} & ka_{i2} & ka_{i3} & \cdots & ka_{in}\\ \cdots & \cdots & \cdots & \cdots & \cdots\\ a_{n1} & a_{n2} & a_{n3} & \cdots & a_{nn} \end{bmatrix}

那么

\begin{align*} det({A}')&=\sum_{j=1}^{j=n}(-1)^{i+j}ka_{ij}det({A}'_{ij})\\ &=\sum_{j=1}^{j=n}(-1)^{i+j}ka_{ij}det(A_{ij})\\ &= k\sum_{j=1}^{j=n}(-1)^{i+j}a_{ij}det(A_{ij})\\ &= kdet(A) \end{align*}

同理

det(kA)=k^ndet(A)

6.2 当行相加时矩阵行列式的规律

这是一个很特殊的情况,三个矩阵除了一行不同外,其它行都相同,且其中一个矩阵的那一行,刚好等于另外两个矩阵的那一行的和,那么第一个矩阵的行列式等于另外两个矩阵的行列式的和(行相加,不是矩阵相加):

假设

\mathbf{X}=\begin{bmatrix} a_{11} & a_{12} & \cdots & a_{1n}\\ \cdots & \cdots & \cdots & \cdots\\ x_{i1} & x_{i2} & \cdots & x_{in}\\ \cdots & \cdots & \cdots & \cdots\\ a_{n1} & a_{n2} & \cdots & a_{nn} \end{bmatrix}

\mathbf{Y}=\begin{bmatrix} a_{11} & a_{12} & \cdots & a_{1n}\\ \cdots & \cdots & \cdots & \cdots\\ y_{i1} & y_{i2} & \cdots & y_{in}\\ \cdots & \cdots & \cdots & \cdots\\ a_{n1} & a_{n2} & \cdots & a_{nn} \end{bmatrix}

\mathbf{Z}=\begin{bmatrix} a_{11} & a_{12} & \cdots & a_{1n}\\ \cdots & \cdots & \cdots & \cdots\\ x_{i1}+y_{i1} & x_{i2}+y_{i2} & \cdots & x_{in}+y_{in}\\ \cdots & \cdots & \cdots & \cdots\\ a_{n1} & a_{n2} & \cdots & a_{nn} \end{bmatrix}

那么

det(\mathbf{X}) = \sum_{j=1}^{n}(-1)^{i+j}x_{ij}det(\mathbf{A_{ij}})

det(\mathbf{Y}) = \sum_{j=1}^{n}(-1)^{i+j}y_{ij}det(\mathbf{A_{ij}})

\begin{align*} det(\mathbf{Z}) &= \sum_{j=1}^{n}(-1)^{i+j}(x_{ij}+y_{ij})det(\mathbf{A_{ij}}) \\ &= \sum_{j=1}^{n}(-1)^{i+j}x_{ij}det(\mathbf{A_{ij}}) + \sum_{j=1}^{n}(-1)^{i+j}y_{ij}det(\mathbf{A_{ij}}) \\ &= det(\mathbf{X}) + det(\mathbf{Y}) \end{align*}

即Z矩阵的行列式等于X矩阵和Y矩阵行列式的和

6.3 有相同行的行列式

有相同行(或列)的矩阵的行列式为0(两种证明方法,一种由交换矩阵的属性推导出;一种从可逆的条件着手,得到结果)

假设

\underset{n \times n}{\mathbf{A}} = \begin{bmatrix} a_{11} & a_{12} & \cdots & a_{1n}\\ a_{21} & \cdots & \cdots & a_{2n}\\ \cdots & \cdots & \cdots & \cdots\\ a_{i1} & a_{i2} & \cdots & a_{in}\\ \cdots & \cdots & \cdots & \cdots\\ a_{j1} & a_{j2} & \cdots & a_{jn}\\ \cdots & \cdots & \cdots & \cdots\\ a_{n1} & a_{n2} & \cdots & a_{nn} \end{bmatrix}

定义术语r_i为:

r_i = a_{i1} \: a_{i2} \: \cdots a_{in}

也可以写成行向量的形式:

\vec{r_i} = \left[ a_{i1} \: a_{i2} \: \cdots a_{in} \right]

因此矩阵A可以写成r_i的形式(这种形式更简单):

\underset{n \times n}{\mathbf{A}} = \begin{bmatrix} r_1\\ r_2\\ \cdots\\ r_i\\ \cdots\\ r_j\\ \cdots\\ r_n \end{bmatrix} \: or \: \underset{n \times n}{\mathbf{A}} = \begin{bmatrix} \vec{r_1}\\ \vec{r_2}\\ \cdots\\ \vec{r_i}\\ \cdots\\ \vec{r_j}\\ \cdots\\ \vec{r_n} \end{bmatrix}

交换矩阵(swap matrix)

把原矩阵的i,j行互换后的矩阵,称为原矩阵的交换矩阵

交换矩阵的行列式,等于负的原矩阵的行列式(该属性暂未证明)

\mathbf{S}_{ij}=\begin{bmatrix} \vec{r_1}\\ \vec{r_2}\\ \cdots\\ \vec{r_j}\\ \cdots\\ \vec{r_i}\\ \cdots\\ \vec{r_n} \end{bmatrix}

det(\mathbf{S_{ij}}) = - det(\mathbf{A})

假设矩阵A的第i行等于第j行,那么交换i,j行,矩阵不变,因此:

if \: row \: i = row \: j \\ \Rightarrow \mathbf{S_{ij}} = A \\ \Rightarrow det(\mathbf{S_{ij}}) = det(\mathbf{A})

结合“交换矩阵的行列式,等于负的原矩阵的行列式”,因此当矩阵的两行相等时:

-det(\mathbf{A}) = det(\mathbf{A})

\Rightarrow det(\mathbf{A}) = 0

另一种证明方法:

matrix \: invertible \Leftrightarrow rref \: is \: I_n

\begin{align*} duplicate \: rows &\Rightarrow never \: get \: rref \: to \: be \: I_n \\ &\Rightarrow not \: invertible \\ &\Rightarrow det = 0 \end{align*}

6.4 行变换后的行列式

有些行变换会改变行列式的值,有些行变换不会,例如,使用“第j行-c乘以第i行”来替代“第j行”就不会改变行列式的值:

replace rowj with rowj - C * rowi, it does not change the determinant of A ,因此求行列式时,我们可以利用该行变换简化行列式的求解

6.5 上三角矩阵的行列式

上三角矩阵:upper triangular matrix,主对角线以下的元素都为0的矩阵,例如:

\underset{n \times n}{\mathbf{A}} = \begin{bmatrix} a_{11} & a_{22} & \cdots & \cdots & a_{1n}\\ 0 & a_{22} & \cdots & \cdots & a_{2n}\\ 0 & 0 & a_{33} & \cdots & a_{3n}\\ \cdots & \cdots & \cdots & \cdots & \cdots \\ 0 & 0 & \cdots & 0 & a_{nn} \end{bmatrix}

上三角矩阵的行列式等于主对角线上的所有元素的乘积:

det(\mathbf{A}) = a_{11}a_{22} \cdots a_{nn}

证明(从数学归纳法的角度):

每次选择第一列进行计算

\left | \mathbf{A} \right | = a_{11} \begin{vmatrix} a_{22} & a_{23} & \cdots & a_{2n}\\ 0 & a_{33} & \cdots & a_{3n}\\ \cdots & \cdots & \cdots & \cdots\\ 0 & 0 & \cdots & a_{nn} \end{vmatrix} = \cdots = a_{11} a_{22} \cdots a_{nn}

扩展:下三角矩阵的行列式也等于主对角线上的所有元素的乘积。

可以利用矩阵行列式的属性(行变换,交换两行等),将矩阵化为上三角矩阵,然后再求行列式,这样求解将非常简单

猜你喜欢

转载自blog.csdn.net/gutsyfarmer/article/details/101195083