1.矩阵的导数
如果矩阵
A(t)=[aij(t)]m×n 的每一个元素
aij(t) 都是变量
t 的可微函数,则称矩阵
A(t) 是可微的,其导数定义为:
dtdA(t)=[dtdaij(t)]m×n=⎣⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎡dtda11(t)dtda21(t)⋮dtdam1(t)dtda12(t)dtda22(t)⋮dtdam2(t)⋯⋯⋯⋯dtda1n(t)dtda2n(t)⋮dtdamn(t)⎦⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎤
- 当
m=1 时,矩阵
A(t)=[a1(t),a2(t),⋯,an(t)] 为(行)向量值函数
dtdA(t)=[dtdaj(t)]1×n=[dtda1(t)dtda2(t)⋯dtdan(t)]1×n
- 当
n=1 时,矩阵
A(t)=[a1(t),a2(t),⋯,am(t)]T 为(列)向量值函数
dtdA(t)=[dtdai(t)]m×1=⎣⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎡dtda1(t)dtda2(t)⋮dtdam(t)⎦⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎤m×1
2.多元函数对矩阵的导数
设矩阵
X=[xij]m×n,考虑该矩阵的
mn 元函数
f(X)=f(x11,x12,⋯,xm1,xm2,⋯,xmn), 那么
f(X) 对矩阵
X 的导数定义为:
dXdf(X)=[∂xij∂f]m×n=⎣⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎡∂x11∂f∂x21∂f⋮∂xm1∂f∂x12∂f∂x22∂f⋮∂xm2∂f⋯⋯⋯⋯∂x1n∂f∂x2n∂f⋮∂xmn∂f⎦⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎤
3.多元函数对(列)向量的导数
设
n 维(列)向量
x=[x1,x2,⋯,xn]T,考虑该向量的
n 元函数
f(x)=f(x1,x2,⋯,xn),那么:
dxdf(x)=[∂x1∂f,∂x2∂f,⋯,∂xn∂f]T=⎣⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎡∂x1∂f∂x2∂f⋮∂xn∂f⎦⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎤,即:
f(x) 的梯度
∇f(x)=dxdf(x)
dxTdf(x)=[∂x1∂f,∂x2∂f,⋯,∂xn∂f],即:
f(x) 的梯度的转置
∇Tf(x)=dxTdf(x)
因此
∇f(x)=dxdf(x)=[dxTdf(x)]T
常用公式
(1) 海塞
(Hessian) 矩阵:
∇T{∇f(x)}=dxTd(dxdf(x)) 或
∇{∇Tf(x)}=dxd(dxTdf(x))
dxTd(dxdf)=⎣⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎡∂x12∂2f∂x2∂x1∂2f⋮∂xn∂x1∂2f∂x1∂x2∂2f∂x22∂2f⋮∂xn∂x2∂2f⋯⋯⋱⋯∂x1∂xn∂2f∂x2∂xn∂2f⋮∂xn2∂2f⎦⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎤
(2) 二次函数
f(x)=xTAx 的导数为
dxdf(x)=(A+AT)x
若
A=[aij]n×n 为对称矩阵,那么
dxdf(x)=2Ax
证明:
f(x)=xTAx=i=1∑nj=1∑naijxixj=x1j=1∑na1jxj+x2j=1∑na2jxj+⋯+xkj=1∑nakjxj+⋯+xnj=1∑nanjxj
∂xk∂f=x1a1k+x2a2k+⋯+(j=1∑nakjxj+xkakk)+⋯+xnank=(x1a1k+x2a2k+⋯+xkakk+⋯+xnank)+j=1∑nakjxj=i=1∑naikxi+j=1∑nakjxj
dxdf(x)=⎣⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎡∂x1∂f⋮∂xk∂f⋮∂xn∂f⎦⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎤=⎣⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎡i=1∑nai1xi+j=1∑na1jxj⋮i=1∑naikxi+j=1∑nakjxj⋮i=1∑nainxi+j=1∑nanjxj⎦⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎤=⎣⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎡i=1∑nai1xi⋮i=1∑naikxi⋮i=1∑nainxi⎦⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎤+⎣⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎡j=1∑na1jxj⋮j=1∑nakjxj⋮j=1∑nanjxj⎦⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎤=Ax+ATx=(A+AT)x
(3) 线性函数
f(x)=bTx 的导数为
dxdf(x)=b
由于
bTx=xTb,因此
dbdf(b)=x
证明:
f(x)=bTx=i=1∑nbixi
dxdf(x)=⎣⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎡∂x1∂f⋮∂xk∂f⋮∂xn∂f⎦⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎤=⎣⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎡b1⋮bk⋮bn⎦⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎤=b
4.一元函数关于向量的复合求导
设向量值函数
x(t)=[x1(t),x2(t),⋯,xn(t)]T,考虑该向量函数的一元函数
f(x(t))=f(x1(t),x2(t),⋯,xn(t)),那么:
dtdf=[dxdf]Tdtdx=dxTdfdtdx
证明:
dtdf=∂x1∂fdtdx1+∂x2∂fdtdx2+⋯+∂xn∂fdtdxn=[∂x1∂f,∂x2∂f,⋯,∂xn∂f]⎣⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎡dtdx1dtdx2⋮dtdxn⎦⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎤=[dxdf]Tdtdx=dxTdfdtdx
5. 泰勒级数
首先考虑二维的情况,即
x=[x1,x2]T,那么
f(x1+δ1,x2+δ2)=f(x1,x2)+∂x1∂fδ1+∂x2∂fδ2+21(∂x12∂2fδ12+∂x1∂x2∂2fδ1δ2+∂x22∂2fδ22)+o(∥δ∥2)
扩展到
n 维的情况,即
x=[x1,x2,⋯,xn]T,那么
f(x1+δ1,x2+δ2,⋯,xn+δn)=f(x1,x2,⋯,xn)+i=1∑n∂xi∂fδi+21i=1∑nj=1∑n∂xi∂xj∂2fδiδj+o(∥δ∥2)
写成矩阵的形式:
f(x+δ)=f(x)+∇f(x)Tδ+21δT∇2f(x)δ+o(∥δ∥2),其中
δ=[δ1,δ2,⋯,δn]T
或者,写成向量值函数
f(x) 在点
xˉ 的展开形式:
f(x)=f(xˉ)+∇f(xˉ)T(x−xˉ)+21(x−xˉ)T∇2f(xˉ)(x−xˉ)+o(∥x−xˉ∥2)
【注】此处采用
∇f(x) 表示梯度,采用
∇2f(x) 表示
hessian 矩阵(而非PDE中的拉普拉斯算符)。