海森矩阵:是一个多元函数的二阶偏导数构成的方阵。
1. 二元函数的海森矩阵
如果不理解二元函数的泰勒展开可先阅读博客。
$$f(x_{0} + h,y_{0} + k) = f(x_{0},y_{0}) + frac{hcdot frac{partial }{partial x} + kcdot frac{partial }{partial y}}{1!}f(x_{0},y_{0}) + frac{left ( hcdot frac{partial }{partial x} + kcdot frac{partial }{partial y} ight )^{2}}{2!}f(x_{0},y_{0}) +...+ frac{left ( hcdot frac{partial }{partial x} + kcdot frac{partial }{partial y} ight )^{n}}{n!}f(x_{0},y_{0}) + R_{n}$$
写成矩阵形式为
$$f(x_{0} + h,y_{0} + k) = f(x_{0},y_{0}) + egin{bmatrix}
frac{partial f}{partial x} & frac{partial f}{partial y}
end{bmatrix} igg|_{(x_{0},y_{0})} egin{bmatrix}
h\
k
end{bmatrix} +
frac{1}{2}egin{bmatrix}
h & k
end{bmatrix}egin{bmatrix}
frac{partial ^{2}f}{partial x^{2}} & frac{partial ^{2}f}{partial xpartial y} \
frac{partial ^{2}f}{partial xpartial y} & frac{partial ^{2}f}{partial y^{2}}
end{bmatrix} Bigg|_{(x_{0},y_{0})}
egin{bmatrix}
h\
k
end{bmatrix} + cdots $$
这里我们只写泰勒展开的前三项,第三项就是一个二次型。后面的项太过复杂,一般前三项够了。
记自变量为 $x = (x^{(1)}, x^{(2)})$,是一个向量,将函数 $f(x)$ 在 $x_{0}$ 处展开,于是 $Delta x = egin{bmatrix}
x^{(1)} - x_{0}^{(1)} \
x^{(2)} - x_{0}^{(2)}
end{bmatrix}$,将上面的展开式进一步表示为梯度形式:
$$f(x) = f(x_{0}) + abla f(x_{0})^{T}Delta x + frac{1}{2}Delta x^{T}G(x_{0})Delta x + cdots $$
其中,$ abla f(x_{0})$ 为 $f(x)$ 在点 $x_{0}$ 处的梯度向量,$G(x_{0})$ 是一个二阶矩阵,称为 $f(x)$ 在 $x_{0}$ 处的海森矩阵,它们取值为别为:
$$ abla f(x_{0}) = left ( frac{partial f}{partial x^{(1)}}, frac{partial f}{partial x^{(2)}} ight ) Bigg |_{(x_{0})}$$
$$G(x_{0}) = egin{bmatrix}
frac{partial ^{2}f}{partial x^{(1)2}} & frac{partial ^{2}f}{partial x^{(1)}partial x^{(2)}} \
frac{partial ^{2}f}{partial x^{(1)}partial x^{(2)}} & frac{partial ^{2}f}{partial x^{(2)2}}
end{bmatrix} Bigg|_{(x_{0})}$$
2. 多元函数的海森矩阵
由上面介绍的二元函数的海森矩阵,进一步推广到多元函数的海森矩阵。这里也仅仅是展开到二阶。
记自变量向量为 $x = (x^{(1)}, x^{(2)}, cdots, x^{(n)})$,$f(x)$ 是一个 $n$ 元的函数,则其在点 $x_{0}$ 处的泰勒展开式为
$$f(x) = f(x_{0}) + abla f(x_{0})^{T}Delta x + frac{1}{2}Delta x^{T}G(x_{0})Delta x + cdots$$
这个形式和二元的展开是一样的,但是一些取值不一样:
$$Delta x = egin{bmatrix}
x^{(1)} - x_{0}^{(1)} \
x^{(2)} - x_{0}^{(2)} \
vdots \
x^{(n)} - x_{0}^{(n)}
end{bmatrix}$$
$$ abla f(x_{0}) = left ( frac{partial f}{partial x^{(1)}}, frac{partial f}{partial x^{(2)}}, cdots ,frac{partial f}{partial x^{(n)}} ight ) Bigg |_{(x_{0})}$$
$$G(x_{0}) = egin{bmatrix}
frac{partial ^{2}f}{partial x^{(1)2}} & frac{partial ^{2}f}{partial x^{(1)}partial x^{(2)}} & cdots & frac{partial ^{2}f}{partial x^{(1)}partial x^{(n)}} \
frac{partial ^{2}f}{partial x^{(1)}partial x^{(2)}} & frac{partial ^{2}f}{partial x^{(2)2}} & cdots & frac{partial ^{2}f}{partial x^{(2)}partial x^{(n)}} \
vdots & vdots & ddots & vdots \
frac{partial ^{2}f}{partial x^{(1)}partial x^{(n)}} & frac{partial ^{2}f}{partial x^{(2)}partial x^{(n)}} & cdots & frac{partial ^{2}f}{partial x^{(n)2}}
end{bmatrix}$$
这个 $n$ 阶矩阵 $G(x_{0})$ 称为 $f(x)$ 在 $x_{0}$ 处的海森矩阵。
3. 利用海森矩阵判定多元函数的极值
我们已经知道如何判断二元函数的极值点,如果不了解,可先去阅读博客。
现在来考虑 $n$ 元函数的极值,自变量为向量 $x = (x^{(1)}, x^{(2)}, cdots, x^{(n)})$,假如 $f(x)$ 在点 $x_{0}$ 的邻域有二阶连续偏导数,若
$$frac{partial f}{partial x^{(j)}} = 0, j = 1,2,cdots,n$$
并且
$$A = G(x_{0}) = egin{bmatrix}
frac{partial ^{2}f}{partial x^{(1)2}} & frac{partial ^{2}f}{partial x^{(1)}partial x^{(2)}} & cdots & frac{partial ^{2}f}{partial x^{(1)}partial x^{(n)}} \
frac{partial ^{2}f}{partial x^{(1)}partial x^{(2)}} & frac{partial ^{2}f}{partial x^{(2)2}} & cdots & frac{partial ^{2}f}{partial x^{(2)}partial x^{(n)}} \
vdots & vdots & ddots & vdots \
frac{partial ^{2}f}{partial x^{(1)}partial x^{(n)}} & frac{partial ^{2}f}{partial x^{(2)}partial x^{(n)}} & cdots & frac{partial ^{2}f}{partial x^{(n)2}}
end{bmatrix}$$
则有如下结果:
1)当 $A$ 为正定矩阵时,$f(x)$ 在 $x_{0}$ 处是极小值。
2)当 $B$ 为负定矩阵时,$f(x)$ 在 $x_{0}$ 处是极大值。