天天看點

二次型對自變量向量的導數1. 标量對向量導數的定義2. 向量對向量導數的定義3. 二次型的導數

将形如 f = x T A x f=\boldsymbol{x^TAx} f=xTAx稱為二次型,其中 x \boldsymbol x x是 n n n維列向量, A \boldsymbol A A為 n × n n\times n n×n的矩陣, f f f為标量。二次型由于其良好的正定性、凸性在控制理論中經常用在判斷系統穩定性、最優控制等。但是有個數學上的疑問,如何求二次型函數對自變量向量的導數

(1) d f d x = ? \frac{\text df}{\text d\boldsymbol x}=? \tag{1} dxdf​=?(1)

1. 标量對向量導數的定義

控制理論中都會使用到标量函數對向量的導數,比如在李雅普諾夫第二法判斷穩定性中,但大多數控制理論的教材都沒有給出如何對向量求導數,實際上高等數學也未明确地講這件事情。最近在看《最優控制理論與應用》-解學書編著,一本很老的書,發現該書花了一章來讨論數學基礎。

标量函數 f ( x ) f(\boldsymbol x) f(x)對 n n n維列向量 x = [ x 1 ,   x 2 . . .   x n ] T \boldsymbol x=[x_{1},~x_{2}...~x_{n}]^{\text T} x=[x1​, x2​... xn​]T的導數定義為

(2) d f d x = Δ [ d f d x 1 ,   d f d x 2 , . . . d f d x n ] T \frac{\text df}{\text d \boldsymbol x}\overset{\Delta}{=} \left[\frac{\text d f}{\text d x_1},~\frac{\text d f}{\text dx_2},...\frac{\text d f}{\text d x_n}\right]^{\text{T}} \tag{2} dxdf​=Δ[dx1​df​, dx2​df​,...dxn​df​]T(2)

實際上,式(2)的定義高等數學下中的梯度 g r a d f \bold{grad }f gradf,或者記為 ∇ f \nabla f ∇f。也就是說,對列向量的導數是一個列向量。類似地,可以定義對行向量的導數。

(3) d f d x T = Δ [ d f d x 1 ,   d f d x 2 , . . . d f d x n ] \frac{\text d f}{\text d \boldsymbol x^{\text T}} \overset{\Delta}{=} \left[\frac{\text d f}{\text d x_1},~\frac{\text d f}{\text d x_2},...\frac{\text d f}{\text d x_n}\right] \tag{3} dxTdf​=Δ[dx1​df​, dx2​df​,...dxn​df​](3)

2. 向量對向量導數的定義

函數 f ( x ) = [ f 1 ( x ) ,   f 2 ( x ) . . .   f m ( x ) ] T \boldsymbol f(\boldsymbol x)=[f_{1}(\boldsymbol x), ~f_{2}(\boldsymbol x)...~f_{m}(\boldsymbol x)]^{\text{T}} f(x)=[f1​(x), f2​(x)... fm​(x)]T是 n n n維列向量 x = [ x 1 ,   x 2 . . .   x n ] T \boldsymbol x=[x_{1},~x_{2}...~x_{n}]^{\text T} x=[x1​, x2​... xn​]T的 m m m維函數向量。該向量函數對向量的導數定義為

(4) d f d x = Δ d f d x T = Δ [ d f 1 d x 1 ,   d f 1 d x 2 , ⋯ d f 1 d x n d f 2 d x 1 ,   d f 2 d x 2 , ⋯ d f 2 d x n ⋮ ⋮ ⋯ ⋮ d f m d x 1 ,   d f m d x 2 , ⋯ d f m d x n ] \frac{\text d \boldsymbol f}{\text d \boldsymbol x}\overset{\Delta}{=}\frac{\text d \boldsymbol f}{\text d \boldsymbol x^{\text T}}\overset{\Delta}{=} \begin{bmatrix} \frac{\text d f_{1}}{\text d x_{1}},&~ \frac{\text d f_{1}}{\text d x_{2}}, &\cdots&\frac{\text d f_{1}}{\text d x_{n}} \\ \frac{\text d f_{2}}{\text d x_{1}},&~ \frac{\text d f_{2}}{\text d x_{2}}, &\cdots&\frac{\text d f_{2}}{\text d x_{n}} \\ \vdots &\vdots& \cdots& \vdots\\ \frac{\text d f_{m}}{\text d x_{1}},&~ \frac{\text d f_{m}}{\text d x_{2}}, &\cdots&\frac{\text d f_{m}}{\text d x_{n}} \end{bmatrix} \tag{4} dxdf​=ΔdxTdf​=Δ⎣⎢⎢⎢⎢⎡​dx1​df1​​,dx1​df2​​,⋮dx1​dfm​​,​ dx2​df1​​, dx2​df2​​,⋮ dx2​dfm​​,​⋯⋯⋯⋯​dxn​df1​​dxn​df2​​⋮dxn​dfm​​​⎦⎥⎥⎥⎥⎤​(4)

可以根據上面的定義直接得到

(5) d x d x T = d x T d x = I \frac{\text d \boldsymbol x}{\text d \boldsymbol x^{\text T}}=\frac{\text d \boldsymbol x^{\text T}}{\text d \boldsymbol x}=\boldsymbol I \tag{5} dxTdx​=dxdxT​=I(5)

3. 二次型的導數

有了上述的定義之後,可以根據定義得出對向量求導數的一些性質。

(6) d ( a T b ) d x = d a T d x b + d b T d x a \frac{\text d (\boldsymbol{a^{\text{T}}b})}{\text d \boldsymbol x}=\frac{\text d \boldsymbol{a^{\text{T}}}}{\text d \boldsymbol x}\boldsymbol b+\frac{\text d \boldsymbol{b^{\text{T}}}}{\text d \boldsymbol x}\boldsymbol a \tag{6} dxd(aTb)​=dxdaT​b+dxdbT​a(6)

A = [ a 1 ,   a 2 ⋯ a m ] \boldsymbol A=[\boldsymbol a_{1},~\boldsymbol a_{2}\cdots\boldsymbol a_{m}] A=[a1​, a2​⋯am​]是 n × m n\times m n×m的矩陣,可以根據上面的定義和性質計算

(7) d ( x T A ) d x = [ d d x ( x T a 1 ) ,   d d x ( x T a 2 ) ⋯ d d x ( x T a m ) ] \frac{\text d (\boldsymbol {x^{\text{T}}A})}{\text d\boldsymbol {x}}= [\frac{\text d}{\text d \boldsymbol x}\boldsymbol ({x^{\text{T}}}\boldsymbol a_{1}),~\frac{\text d}{\text d \boldsymbol x}(\boldsymbol {x^{\text{T}}}\boldsymbol a_{2})\cdots\frac{\text d}{\text d \boldsymbol x}(\boldsymbol {x^{\text{T}}}\boldsymbol a_{m})] \tag{7} dxd(xTA)​=[dxd​(xTa1​), dxd​(xTa2​)⋯dxd​(xTam​)](7)

又因為,

(8) d d x ( x T a i ) = d x T d x a i + d a i T d x x = a i \frac{\text d}{\text d \boldsymbol x}\boldsymbol ({x^{\text{T}}}\boldsymbol a_{i})=\frac{\text d\boldsymbol {x^{\text{T}}}}{\text d \boldsymbol x}\boldsymbol a_{i}+\frac{\text d{\boldsymbol a_{i}^{\text{T}}}}{\text d \boldsymbol x}\boldsymbol x=\boldsymbol a_{i} \tag{8} dxd​(xTai​)=dxdxT​ai​+dxdaiT​​x=ai​(8)

是以,

(9) d ( x T A ) d x = A \frac{\text d (\boldsymbol {x^{\text{T}}A})}{\text d\boldsymbol {x}}=\boldsymbol A \tag{9} dxd(xTA)​=A(9)

根據式(6)得到二次型函數 f = x T A x f=\boldsymbol{x^TAx} f=xTAx對自變量 x \boldsymbol{x} x的導數可以表為

(10) d f d x = d x T d x A x + d ( A x ) T d x x = d x T d x A x + d ( x T A T ) d x x = A x + A T x = ( A + A T ) x \begin{matrix} \frac{\text df}{\text d\boldsymbol x} = \frac{\text d\boldsymbol{x^\text T}}{\text d\boldsymbol x}\boldsymbol{Ax}+\frac{\text d\boldsymbol{(Ax)^\text T}}{\text d\boldsymbol x}\boldsymbol{x}\\ = \frac{\text d\boldsymbol{x^\text T}}{\text d\boldsymbol x}\boldsymbol{Ax}+\frac{\text d\boldsymbol{(x^\text TA^{\text T})}}{\text d\boldsymbol x}\boldsymbol{x}\\ = \boldsymbol{Ax}+\boldsymbol{A^{\text T}x}\\ = (\boldsymbol{A+A^{\text T})x} \end{matrix} \tag{10} dxdf​=dxdxT​Ax+dxd(Ax)T​x=dxdxT​Ax+dxd(xTAT)​x=Ax+ATx=(A+AT)x​(10)

如果 A \boldsymbol A A是對稱陣,則有

(11) d f d x = d ( x T A x ) d x = 2 A x \frac{\text df}{\text d\boldsymbol x} =\frac{\text d(\boldsymbol{x^TAx})}{\text d\boldsymbol x} = 2\boldsymbol{Ax} \tag{11} dxdf​=dxd(xTAx)​=2Ax(11)

這就是在教材上給出的結果。