线性代数(5) 行列式的性质

linearalgebra.png

行列式转置

所谓转置就是把原来的行做成列就是转置的操作。转置符号就是用上标 T,矩阵的转置也是这样表示。有关转置在机器中也是一种对矩阵常见操作。在 numpy 提供了转置操作,对矩阵通过点 T 操作就可以对矩阵求转置。

转置

行列式性质

  • 对行成立的性质,对列也成立
b = np.array([[1,2],[2,3]])
np.linalg.det(b) # -1
np.linalg.det(b.T) # -1

从上面代码执行结果来看,行列式转置值和行列式的值相等

  • 两行互换,行列式值变号
a_1 = np.array([[1,2,3],[3,2,1],[1,3,3]])
np.linalg.det(a_1) # 8
a_2 = np.array([[3,2,1],[1,2,3],[1,3,3]])
np.linalg.det(a_2) # -8

接下来我们来看一个有趣行列式,我们会发现下面行列式 1 行 3 行相等,那么将 1 行 3 行互换后的行列式值和原行列式相等


推论:两个行(列)相等,那么

  • 某一行都乘以数 k 等于用 k 乘以这个行列式 D
    \left| \begin{array}{cccc} 1 & 2 & 3 \\ 4k & 5k & 6k \\ 7 & 8 & 9 \\ \end{array} \right| = k \left| \begin{array}{cccc} 1 & 2 & 3 \\ 4 & 5 & 6 \\ 7 & 8 & 9 \\ \end{array} \right|

推论: 某一行都有公因子 k 那么 ke 提取到行列式外面去。

a_3 =  np.array([[1,2,3],[3*2,2*2,1*2],[1,3,3]])
np.linalg.det(a_3) # 16

这里 16 = 8 * 2 也就是将 a_1 的第二行都乘以常数 2 后得到 a_3 的行列式值就是等于 a_1 行列式的值乘以 2.

a_5 =  np.array([[1*2,2*2,3*2],[3*2,2*2,1*2],[1*2,3*2,3*2]])
np.linalg.det(a_5) #64

行列式所有元素均有公因子,k 向外提取 n 次。

  • 两行元素成比例,则行列式值等于 0
a_6 = np.array([[1,2,3],[2,4,6],[0,0,1]])
np.linalg.det(a_6) # 0

证明也很好理解

通过对第二行提取公因子 2 得到行列式两行相等,所以行列式值等于 0.

推论:如果行列式某一行全是 0 那么这个行列式为 0 。

a_7 = np.array([[1,2,3],[0,0,0],[0,0,1]])
np.linalg.det(a_7) #0

证明一下,我们可以把全部是 0 行看作其他行乘以 0 的结果,所以提出 0 公因子后两行就相等,所以行列式值为 0。

  • 将某一行所有元素都是两项和,则该行列式可以表示为两个行列式相加,如下

\left| \begin{array}{cccc} 1 & 2 & 3 \\ 2 + 3 & 3 + 4 & 5 + 6 \\ 2 & 2 & 1 \end{array} \right| = \left| \begin{array}{cccc} 1 & 2 & 3 \\ 2 & 3& 5 \\ 2 & 2 & 1 \end{array} \right| + \left| \begin{array}{cccc} 1 & 2 & 3 \\ 3 & 4 & 6 \\ 2 & 2 & 1 \end{array} \right|

  • 行列式某一行所以乘以数 k 加到另一行上去,行列式的值不变,此性质对列依然有效

这里比较主要我们来证明一下

\left| \begin{array}{cccc} 1 & 2 & 3 \\ 3 & 4 & 6 \\ 2 & 2 & 1 \end{array} \right| = \left| \begin{array}{cccc} 1 & 2 & 3 \\ 3 + 1 \times 2& 4 + 2 \times 2 & 6 + 3 \times2 \\ 2 & 2 & 1 \end{array} \right|

\left| \begin{array}{cccc} 1 & 2 & 3 \\ 3 + 1 \times 2& 4 + 2 \times 2 & 6 + 3 \times2 \\ 2 & 2 & 1 \end{array} \right| = \left |\begin{array}{cccc} 1 & 2 & 3 \\ 3 & 4 & 6 \\ 2 & 2 & 1 \end{array} \right| + 2 \times \left| \begin{array}{cccc} 1 & 2 & 3 \\ 1 & 2 & 3 \\ 2 & 2 & 1 \end{array} \right|

a_6 = np.array([[1,2,3],[3,4,6],[2,2,1]])
np.linalg.det(a_6) #4
a_8 = np.array([[1,2,3],[3 + 1 *2,4 + 2 *2 ,6 + 3*2],[2,2,1]])
np.linalg.det(a_8) #4

你可能感兴趣的:(线性代数(5) 行列式的性质)