• 行列式的求导


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

    本文以计算\(\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})' \]

  • 相关阅读:
    从dotNet到VB6之模仿构造OleDbDataAdapter与dataset结合
    编程的偷懒艺术与美感
    给您参考,现在开发数据库项目用.net 2005成熟吗?还是用.net2003比较有保证
    access数据库版权及容量问题
    中天股票数据格式
    受伤与药油的最佳搭配
    关于发布各种股票软件数据格式
    .net 与flash8传递(互传)数组的技巧
    我的C语言合集
    ZOJ 1205 Martian Addition 解题报告
  • 原文地址:https://www.cnblogs.com/analysis101/p/14677671.html
Copyright © 2020-2023  润新知