多元函数泰勒展开与黑塞矩阵

1. 引入:函数展开

  • 设函数 y = f ( x ) y = f(x) y=f(x) 在点 x 0 x_0 x0 处可导,则在点 x 0 x_0 x0 的某邻域内,可以用下式表示原函数值
    f ( x ) = f ( x 0 ) + f ′ ( x 0 ) ( x − x 0 ) + o ( x − x 0 ) ,     x → x 0 f(x) = f(x_0)+f'(x_0)(x - x_0) + o(x - x_0),\space\space\space x \rightarrow x_0 f(x)=f(x0)+f(x0)(xx0)+o(xx0),   xx0
    对于这种一元函数,示意图如下
    在这里插入图片描述
  • 上面这个式子,可以看作在点 x 0 x_0 x0 处对 f ( x ) f(x) f(x) 进行了一步展开,使用线性主部 f ′ ( x 0 ) ( x − x 0 ) f'(x_0)(x - x_0) f(x0)(xx0) 和与展开点 x 0 x_0 x0 的偏差 △ x \triangle x x 的高阶无穷小表示原函数。
  • 函数展开的应用非常广泛,这种方法可以把复杂的原始目标函数近似转换为多项式函数,从而简化问题。使用泰勒展开,只要原函数任意阶可导,就可以将其展开为任意阶的多项式函数,得到更高精度的表示

2. 泰勒展开

2.1 一元函数泰勒展开

  • 使用泰勒展开,可以把在 x k x_k xk n n n 阶可导的函数 f ( x ) f(x) f(x) 展开为关于 △ x = x − x k \triangle x = x-x_k x=xxk n n n 次多项式,如下
    f ( x ) = f ( x k ) + ( x − x k ) f ′ ( x k ) + 1 2 ! ( x − x k ) 2 f ′ ′ ( x k ) + . . . = ∑ n = 0 ∞ f ( n ) ( x k ) n ! ( x − x k ) n \begin{aligned} f(x) &= f(x_k) + (x-x_k)f'(x_k)+\frac{1}{2!}(x-x_k)^2f''(x_k) + ... \\ &= \sum_{n=0}^\infin \frac{f^{(n)}(x_k)}{n!}(x-x_k)^n \end{aligned} f(x)=f(xk)+(xxk)f(xk)+2!1(xxk)2f(xk)+...=n=0n!f(n)(xk)(xxk)n
  • n n n 有上界时,需要在展开式最后添加 △ x = ( x − x k ) \triangle x = (x-x_k) x=(xxk) n n n 次方的高阶无穷小 o ( ( x − x k ) n ) o((x-x_k)^n) o((xxk)n) 以补足近似差距,保证等号成立。可见,随着展开阶数提高,展开式精度也在不断提高

2.2 二元函数泰勒展开

  • △ x = x − x k ,    △ y = y − y k \triangle x = x-x_k,\space\space \triangle y = y-y_k x=xxk,  y=yyk,设二元函数 f ( x , y ) f(x,y) f(x,y) ( x k , y k ) (x_k,y_k) (xk,yk) 处可导,可以如下展开:
    f ( x , y ) = f ( x k , y k ) + [ f x ′ ( x k , y k ) △ x + f y ′ ( x k , y k ) △ y ] + 1 2 ! [ f x x ′ ′ ( x k , y k ) △ x 2 + f x y ′ ′ ( x k , y k ) △ x △ y + f y x ′ ′ ( x k , y k ) △ x △ y + f y y ′ ′ ( x k , y k ) △ y 2 ] + . . . \begin{aligned} f(x,y) = f(x_k,y_k) &+ \Big[f'_x(x_k,y_k) \triangle x +f'_y(x_k,y_k)\triangle y\Big]\\ &+ \frac{1}{2!}\Big[f''_{xx}(x_k,y_k)\triangle x^2 + f''_{xy}(x_k,y_k)\triangle x\triangle y+f''_{yx}(x_k,y_k)\triangle x\triangle y+f''_{yy}(x_k,y_k)\triangle y^2 \Big] \\ &+ ... \end{aligned} f(x,y)=f(xk,yk)+[fx(xk,yk)x+fy(xk,yk)y]+2!1[fxx(xk,yk)x2+fxy(xk,yk)xy+fyx(xk,yk)xy+fyy(xk,yk)y2]+...
    通常写成矩阵形式
    f ( x , y ) = f ( x k , y k ) + [ f x ′ ( x k , y k ) f y ′ ( x k , y k ) ] [ △ x △ y ] + 1 2 ! [ △ x △ y ] [ f x x ′ ′ f ( x k , y k ) f x y ′ ′ f ( x k , y k ) f y x ′ ′ f ( x k , y k ) f y y ′ ′ f ( x k , y k ) ] [ △ x △ y ] + . . . \begin{aligned} f(x,y) = f(x_k,y_k) &+ \begin{bmatrix}f'_x(x_k,y_k)&f'_y(x_k,y_k)\end{bmatrix} \begin{bmatrix}\triangle x \\\triangle y\end{bmatrix} \\ &+ \frac{1}{2!}\begin{bmatrix}\triangle x &\triangle y\end{bmatrix} \begin{bmatrix}f''_{xx}f(x_k,y_k) &f''_{xy}f(x_k,y_k)\\f''_{yx}f(x_k,y_k) &f''_{yy}f(x_k,y_k)\end{bmatrix} \begin{bmatrix}\triangle x \\\triangle y\end{bmatrix} \\ &+... \end{aligned} f(x,y)=f(xk,yk)+[fx(xk,yk)fy(xk,yk)][xy]+2!1[xy][fxxf(xk,yk)fyxf(xk,yk)fxyf(xk,yk)fyyf(xk,yk)][xy]+...
  • 以上展开到2阶,所以至少要求2阶可导,若二阶导数连续(原函数为光滑曲线),则有 f x y ′ ′ = f y x ′ ′ f''_{xy}=f''_{yx} fxy=fyx,可进一步化简

2.3 n元函数泰勒展开

  • △ x i = x − x k i \triangle x^i = x-x_k^i xi=xxki,设 x = ( x 1 , x 2 , . . . , x n ) T \pmb{x} = (x^1,x^2,...,x^n)^T xxx=(x1,x2,...,xn)T n n n 元函数 f ( x ) f(\pmb{x}) f(xxx) x k = ( x k 1 , x k 2 , . . . , x k n ) T \pmb{x}_k = (x_k^1,x_k^2,...,x_k^n)^T xxxk=(xk1,xk2,...,xkn)T 处可导,可以如下展开:
    f ( x ) = f ( x k ) + ∑ i = 1 n f x i ′ ( x ) △ x i + 1 2 ! ∑ i , j = 1 n f i j ′ ′ ( x k ) ( x i − x k i ) + . . . \begin{aligned} f(\pmb{x}) = f(\pmb{x}_k) &+ \sum_{i=1}^n f'_{x^i}(\pmb{x}) \triangle x^i \\ &+ \frac{1}{2!} \sum_{i,j=1}^nf''_{ij}(\pmb{x}_k)(x^i-x^i_k)\\ &+ ... \end{aligned} f(xxx)=f(xxxk)+i=1nfxi(xxx)xi+2!1i,j=1nfij(xxxk)(xixki)+...
    通常写成矩阵形式
    f ( x ) = f ( x k ) + [ f x 1 ′ ( x k ) f x 2 ′ ( x k ) … f x n ′ ( x k ) ] [ △ x 1 △ x 2 ⋮ △ x n ] + 1 2 ! [ △ x 1 △ x 2 … △ x n ] H ( x k ) [ △ x 1 △ x 2 ⋮ △ x n ] + . . . \begin{aligned} f(\pmb{x}) = f(\pmb{x}_k) &+ \begin{bmatrix}f'_{x^1}(\pmb{x}_k)&f'_{x^2}(\pmb{x}_k) &\dots &f'_{x^n}(\pmb{x}_k)\end{bmatrix} \begin{bmatrix}\triangle x^1 \\\triangle x^2 \\ \vdots\\ \triangle x^n \end{bmatrix} \\ &+ \frac{1}{2!}\begin{bmatrix}\triangle x^1 &\triangle x^2 & \dots & \triangle x^n \end{bmatrix} \pmb{H}(\pmb{x}_k) \begin{bmatrix}\triangle x^1 \\\triangle x^2 \\ \vdots\\ \triangle x^n \end{bmatrix}\\ &+ ... \end{aligned} f(xxx)=f(xxxk)+[fx1(xxxk)fx2(xxxk)fxn(xxxk)]x1x2xn+2!1[x1x2xn]HHH(xxxk)x1x2xn+...
    其中 [ f x 1 ′ ( x k ) f x 2 ′ ( x k ) … f x n ′ ( x k ) ] \begin{bmatrix}f'_{x^1}(\pmb{x}_k)&f'_{x^2}(\pmb{x}_k) &\dots &f'_{x^n}(\pmb{x}_k)\end{bmatrix} [fx1(xxxk)fx2(xxxk)fxn(xxxk)] 就是 f ( x ) f(\pmb{x}) f(xxx) 的梯度,化简符号如下:
    f ( x ) = f ( x k ) + [ ▽ f ( x k ) ] T [ x − x k ] + 1 2 ! [ x − x k ] T H ( x k ) [ x − x k ] + . . . \begin{aligned} f(\pmb{x}) = f(\pmb{x}_k) &+ [\triangledown f(\pmb{x}_k)]^T[\pmb{x}-\pmb{x}_k] \\ &+ \frac{1}{2!}[\pmb{x}-\pmb{x}_k]^T H(\pmb{x}_k) [\pmb{x}-\pmb{x}_k]\\ &+ ... \end{aligned} f(xxx)=f(xxxk)+[f(xxxk)]T[xxxxxxk]+2!1[xxxxxxk]TH(xxxk)[xxxxxxk]+...

  • 以上展开到2阶,所以至少要求2阶可导,若二阶导数连续(原函数为光滑曲线),则有 f x y ′ ′ = f y x ′ ′ f''_{xy}=f''_{yx} fxy=fyx,可进一步化简。上式中 H ( x k ) H(\pmb{x}_k) H(xxxk) 是黑塞矩阵,当展开到二阶时就会出现

3. 黑塞矩阵(海森矩阵)

  • 黑塞矩阵是由某个多元函数的二阶偏导数构成的方阵,描述了函数的局部曲率

    黑塞矩阵常用于牛顿法解决优化问题,利用黑塞矩阵可判定多元函数的极值问题。在工程实际问题的优化设计中,所列的目标函数往往很复杂,为了使问题简化,常常将目标函数在某点邻域展开成泰勒多项式来逼近原函数,此时函数在某点泰勒展开式的矩阵形式中会涉及到黑塞矩阵

  • 在 2.3 节设定下,黑塞矩阵为
    在这里插入图片描述
  • 对称性要求 f ( x ) f(\pmb{x}) f(xxx) 在展开区域内二阶连续可导(二阶偏导数连续,原函数光滑),则原函数的混合偏导数相等,黑塞矩阵成为对称矩阵
  • 可以使用黑塞矩阵判断多元函数极值,这个以后的文章再详细分析
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

云端FFF

所有博文免费阅读,求打赏鼓励~

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值