美文网首页深度学习
线性代数(5) 行列式的性质

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

作者: zidea | 来源:发表于2020-07-27 20:23 被阅读0次
    linearalgebra.png

    行列式转置

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

    转置

    D = \left| \begin{array}{cccc} 1 & 2 & 3 \\ 4 & 5 & 6 \\ 7 & 8 & 9 \\ \end{array} \right|

    D^T = \begin{bmatrix} 1 & 4 & 7\\ 2 & 5 & 8\\ 3 & 6 & 9\\ \end{bmatrix}

    (D^T)^T = \begin{bmatrix} 1 & 2 & 3 \\ 4 & 5 & 6 \\ 7 & 8 & 9 \\ \end{bmatrix}

    D= \left| \begin{array}{cccc} 1 & 2 & 3\\ 4 & 5 & 6\\ 7 & 8 & 9 \end{array} \right|

    D^T= \left| \begin{array}{cccc} 1 & 4 & 7\\ 2 & 5 & 8\\ 3 & 6 & 9 \end{array} \right|

    行列式性质

    • D^T = D 对行成立的性质,对列也成立
    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 行互换后的行列式值和原行列式相等

    D = \left| \begin{array}{cccc} 2 & 3 & 4 & 5\\ 1 & 0 & 0 & 0\\ 2 & 3 & 4 & 5\\ 5 & 6 & 7 & 8\\ \end{array} \right|
    推论:两个行(列)相等,那么D=0
    D = -D \rightarrow 2D = 0 \rightarrow D=0

    • 某一行都乘以数 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
    

    证明也很好理解
    \left| \begin{array}{cccc} 1 & 2 & 3 \\ 2 & 4 & 6 \\ 0 & 0 & 1 \\ \end{array} \right| = 2 \left| \begin{array}{cccc} 1 & 2 & 3 \\ 1 & 2 & 3 \\ 0 & 0 & 1 \end{array} \right|

    通过对第二行提取公因子 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) 行列式的性质

        本文链接:https://www.haomeiwen.com/subject/zhytrktx.html