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
推论: 某一行都有公因子 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。
- 将某一行所有元素都是两项和,则该行列式可以表示为两个行列式相加,如下
- 行列式某一行所以乘以数 k 加到另一行上去,行列式的值不变,此性质对列依然有效
这里比较主要我们来证明一下
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