zoukankan      html  css  js  c++  java
  • 行列式的求导

    在应用中,经常会碰到需要对某个矩阵的行列式进行求导的情况。而行列式的计算方法比较复杂,如果将它展开成后计算,会比较麻烦,因此最好直接记住一些结论。

    本文以计算\(\dfrac{\partial |A|}{\partial A}\)\(\dfrac{\partial \ln |A|}{\partial A}\)为例,介绍如何对行列式求导,并希望大家可以记住结论。

    首先,为防止大家线性代数的内容忘得差不多了,我们先以方阵\(A\)\(n\times n\))为例,回顾一下与行列式有关的基本概念:

    • minor(余子式,或者叫余因式)\(M\):是一个\(n\times n\)方阵,其中元素\(M_{ij}\)就是把原方阵\(A\)去掉第\(i\)行、第\(j\)列之后再取行列式的值;
    • cofactor(代数余子式)\(C\)\(C_{ij}=(-1)^{i+j}M_{ij}\)
    • adjugate(伴随矩阵)\(A^*\)\(A^*_{ij}=(-1)^{i+j}M_{ji}\),即\(A^*=C'\)

    而方阵\(A\)行列式,就可以用某一行(比如第\(i\)行)的cofactor \(C\)的形式来表达(当然也可以用\(A^*\)):$$|A|=\sum_{j}A_{ij}C_{ij}$$

    另外,若\(A\)是非奇异矩阵,则有

    \[A^{-1}=\dfrac{A^*}{|A|}=\dfrac{C'}{|A|} \]

    现在,再来看对\(|A|\)的求导。对于\(A\)的某个元素\(A_{ij}\),将行列式写成\(A\)的第\(i\)行展开的形式,我们有

    \[\dfrac{\partial |A|}{\partial A_{ij}} = \dfrac{\partial \sum_{j}A_{ij}C_{ij}}{\partial A_{ij}}=C_{ij} \]

    第二个等式是因为,对于任意的\(j\),在\(C_{ij}\)的计算中都是剔除了\(A_{ij}\)的,也即它和\(A_{ij}\)的变动没关系。

    因此,我们有

    \[\dfrac{\partial |A|}{\partial A} = C = (A^*)' \]

    如果\(A\)非奇异,那么有

    \[\dfrac{\partial |A|}{\partial A} = (|A|A^{-1})'= |A|(A^{-1})' \]

    对于\(\ln |A|\),利用链式法则,有

    \[\dfrac{\partial \ln |A|}{\partial A} = \dfrac{1}{|A|} |A|(A^{-1})' = (A^{-1})' \]

  • 相关阅读:
    97. Interleaving String
    96. Unique Binary Search Trees
    95. Unique Binary Search Trees II
    94. Binary Tree Inorder Traversal
    odoo many2many字段 指定打开的form视图
    docker sentry 配置文件位置
    postgres 计算时差
    postgres 字符操作补位,字符切割
    postgres判断字符串是否为时间,数字
    odoo fields_view_get
  • 原文地址:https://www.cnblogs.com/analysis101/p/14677671.html
Copyright © 2011-2022 走看看