矩阵函数求导
首先要区分两个概念:矩阵函数和函数矩阵
(1) 函数矩阵,简单地说就是多个一般函数的阵列,包括单变量和多变量函数。
函数矩阵的求导和积分是作用在各个矩阵元素上,没有更多的规则。
单变量函数矩阵的微分与积分
考虑实变量t的实函数矩阵 X(t)=(xij(t))m×n
,所有分量函数xij(t)定义域相同。
定义函数矩阵的微分与积分
⎛d⎞t⎛t⎞d⎟⎜⎟⎜⎟X(t)=⎜xtXτdτ=xτdτ(),()(). ⎟⎜⎟∫∫ijij⎟⎜⎜tt⎟⎝⎠dxdx0⎝⎠0
函数矩阵的微分有以下性质: (1)
ddd
X(t)+Y(t))=X(t)+Y(t); (dtdtdtddX(t)dY(t)X(t)Y(t)=Y(t)+X(t); ()dtdtdt特殊情形
(a) 若K是常数矩阵,则
(2)
dd
KX(t))=KX(t); (dtdt
(b) 若X(t)是方阵,则
d2dX(t)dX(t)X(t)=X(t)+X(t); dtdtdt
(3)
ddX(t)-1
X-1(t)=-X-1(t)X(t); dtdt
()(4) 对任意的方阵A和时变量t,恒有
dAt
e=AeAt=eAtA; dt
(5) 若AB=BA,则eAeB=eBeA=eA+B。如果A,B可交换,则许多三角不等
式可以推广到矩阵上。如sin(A+b),sin(2A)等。
参考文献:余鄂西,矩阵论,高等教育出版社。
(2) 矩阵函数,就是自变量为矩阵的函数映射;根据函数的自变量和因变量的
形式可分为多种。
矩阵函数的导数
定义(向量导数):映射f:\\→\\,f=f1(x),f2(x),\",fm(x)定义映射的导数为一个m×n的偏导数矩阵
n
m
()T
=(fi(x)),i=1...m,
⎡Df⎤=dfi(x),i=1...m,j=1...n. 例如 dAx=A, ⎢⎣⎥⎦ij
dxjdx⇒
D⎡⎣⎢αf(x)+βg(x)⎤⎦⎥=αDf(x)+βDg(x),α∈\\,β∈\\ D⎡⎢f(g(x))⎤⎥=f'(g(x))g'(x) ⎣⎦
D⎡⎢fT(x)g(x)⎤⎥=gT(x)f'(x)+fT(x)g'(x),f,g∈\\n→\\m ⎣⎦
⇒
dxTAx
=xTA+(Ax)T=xT(A+AT) dx
定义(矩阵导数):
dA(X)dvec(A(X))
dXdvec(X)
有
符号说明
• • • • •
d/dx (y) 是一个向量,其第 (i) 个元素是dy(i)/dx d/dx (y) 是一个向量,其第 (i) 个元素是dy/dx(i)
d/dx (yT) 是一个矩阵,其第 (i,j) 个元素是 dy(j)/dx(i) d/dx (Y) 是一个矩阵,其第 (i,j) 个元素是dy(i,j)/dx d/dX (y) 是一个矩阵,其第 (i,j) 个元素是dy/dx(i,j)
注意 Hermitian 转置不能应用,因为复共轭不可解析,x,y是向量,X,Y是矩阵,x,y是标量。
在下面的表达中 A, B, C 是不依赖于 X的矩阵,a,b是不依赖于x的向量,
线性积
• •
• • •
d/dx (AYB) =A * d/dx (Y) * B
o d/dx (Ay) =A * d/dx (y) d/dx (xTA) =A
o d/dx (xT) =I
o d/dx (xTa) = d/dx (aTx) = a d/dX (aTXb) = abT
o d/dX (aTXa) = d/dX (aTXTa) = aaT d/dX (aTXTb) = baT
d/dx (YZ) =Y * d/dx (Z) + d/dx (Y) * Z
二次积
•
• •
•
d/dx (Ax+b)TC(Dx+e) = ATC(Dx+e) + DTCT(Ax+b)
o d/dx (xTCx) = (C+CT)x
[C: symmetric]: d/dx (xTCx) = 2Cx d/dx (xTx) = 2x
o d/dx (Ax+b)T (Dx+e) = AT (Dx+e) + DT (Ax+b)
d/dx (Ax+b)T (Ax+b) = 2AT (Ax+b)
o [C: symmetric]: d/dx (Ax+b)TC(Ax+b) = 2ATC(Ax+b) d/dX (aTXTXb) = X(abT + baT)
o d/dX (aTXTXa) = 2XaaT d/dX (aTXTCXb) = CTXabT + CXbaT
o d/dX (aTXTCXa) = (C + CT)XaaT
o [C:Symmetric] d/dX (aTXTCXa) = 2CXaaT d/dX ((Xa+b)TC(Xa+b)) = (C+CT)(Xa+b)aT
三次积
•
d/dx (xTAxxT) = (A+AT)xxT+xTAxI
逆
•
d/dx (Y-1) = -Y-1d/dx (Y)Y-1
迹
Note: matrix dimensions must result in an n*n argument for tr().
• • • • • •
• • • • •
d/dX (tr(X)) = I
d/dX (tr(Xk)) =k(Xk-1)T
d/dX (tr(AXk)) = SUMr=0:k-1(XrAXk-r-1)T d/dX (tr(AX-1B)) = -(X-1BAX-1)T
o d/dX (tr(AX-1)) =d/dX (tr(X-1A)) = -X-TATX-T d/dX (tr(ATXBT)) = d/dX (tr(BXTA)) = AB
o d/dX (tr(XAT)) = d/dX (tr(ATX)) =d/dX (tr(XTA)) = d/dX (tr(AXT)) = A d/dX (tr(AXBXT)) = ATXBT + AXB
o d/dX (tr(XAXT)) = X(A+AT) o d/dX (tr(XTAX)) = XT(A+AT) o d/dX (tr(AXTX)) = (A+AT)X d/dX (tr(AXBX)) = ATXTBT + BTXTAT
[C:symmetric] d/dX (tr((XTCX)-1A) = d/dX (tr(A (XTCX)-1) = -(CX(XTCX)-1)(A+AT)(XTCX)-1
[B,C:symmetric] d/dX (tr((XTCX)-1(XTBX)) = d/dX (tr( (XTBX)(XTCX)-1) = -2(CX(XTCX)-1)XTBX(XTCX)-1 + 2BX(XTCX)-1
行列式
•
• • •
d/dX (det(X)) = d/dX (det(XT)) = det(X)*X-T
o d/dX (det(AXB)) = det(AXB)*X-T o d/dX (ln(det(AXB))) = X-T d/dX (det(Xk)) = k*det(Xk)*X-T
o d/dX (ln(det(Xk))) = kX-T
[Real] d/dX (det(XTCX)) = det(XTCX)*(C+CT)X(XTCX)-1
o [C: Real,Symmetric] d/dX (det(XTCX)) = 2det(XTCX)* CX(XTCX)-1 [C: Real,Symmetricc] d/dX (ln(det(XTCX))) = 2CX(XTCX)-1
Jacobian
如果y 是x的函数,则dyT/dx是y关于x的Jacobian 矩阵。其行列式|dyT/dx|是表示了dy和dx的超体积比值. Jacobian行列式出现在变元积分中:
TIntegral(f(y)dy)=Integral(f(y(x)) |dy/dx| dx).
Hessian矩阵
如果f是x的函数,则对称矩阵d2f/dx2 = d/dxT(df/dx)就是f(x)的Hessian 矩阵。 满足df/dx = 0 的x的值,当Hessian是正定、负定、不定时,就是相应的最小值、最大值、或者是鞍点。
• •
d2/dx2 (aTx) = 0
d2/dx2 (Ax+b)TC(Dx+e) = ATCD + DTCTA
o d2/dx2 (xTCx) = C+CT
d2/dx2 (xTx) = 2I
o d2/dx2 (Ax+b)T (Dx+e) = ATD + DTA
d2/dx2 (Ax+b)T (Ax+b) = 2ATA
o [C: symmetric]: d2/dx2 (Ax+b)TC(Ax+b) = 2ATCA