在应用中,经常会碰到需要对某个矩阵的行列式进行求导的情况。而行列式的计算方法比较复杂,如果将它展开成后计算,会比较麻烦,因此最好直接记住一些结论。
本文以计算∂A∂∣A∣和∂A∂ln∣A∣为例,介绍如何对行列式求导,并希望大家可以记住结论。
首先,为防止大家线性代数的内容忘得差不多了,我们先以方阵A(n×n)为例,回顾一下与行列式有关的基本概念:
- minor(余子式,或者叫余因式)M:是一个n×n方阵,其中元素Mij就是把原方阵A去掉第i行、第j列之后再取行列式的值;
- cofactor(代数余子式)C:Cij=(−1)i+jMij;
- adjugate(伴随矩阵)A∗:Aij∗=(−1)i+jMji,即A∗=C′;
而方阵A行列式,就可以用某一行(比如第i行)的cofactor C的形式来表达(当然也可以用A∗):∣A∣=∑jAijCij
另外,若A是非奇异矩阵,则有
A−1=∣A∣A∗=∣A∣C′
现在,再来看对∣A∣的求导。对于A的某个元素Aij,将行列式写成A的第i行展开的形式,我们有
∂Aij∂∣A∣=∂Aij∂∑jAijCij=Cij
第二个等式是因为,对于任意的j,在Cij的计算中都是剔除了Aij的,也即它和Aij的变动没关系。
因此,我们有
∂A∂∣A∣=C=(A∗)′
如果A非奇异,那么有
∂A∂∣A∣=(∣A∣A−1)′=∣A∣(A−1)′
对于ln∣A∣,利用链式法则,有
∂A∂ln∣A∣=∣A∣1∣A∣(A−1)′=(A−1)′