![优化理论与实用算法](https://wfqqreader-1252317822.image.myqcloud.com/cover/413/46055413/b_46055413.jpg)
2.2 多维导数
梯度是导数在多元函数的推广。它代表了函数的局部斜率,从而能够预测从一点的任意方向移动一个小的步长后的效果。回想一下,导数是切线的斜率。梯度指向切线超平面的最陡上升方向,如图2.3所示。n维空间中的切线超平面是满足以下条件的点集:
![](https://epubservercos.yuewen.com/1510EB/25220464609634806/epubprivate/OEBPS/Images/image-022-2.jpg?sign=1738953383-jDaKVzj0PW6Rxz4ti5ddVwOR2Z6LIS0g-0-04379b4a384cec2103873dcdb6da7d00)
![](https://epubservercos.yuewen.com/1510EB/25220464609634806/epubprivate/OEBPS/Images/image-2d3.jpg?sign=1738953383-EwDTdF6fpf8ndGZbHwtzyZibivllsJ9o-0-e5e984d0f7cb17e77e94d09374cbf764)
图2.3 梯度的每个分量都定义了一条局部切线。这些切线定义了局部切线超平面。梯度向量指向最大增长方向(见彩插)
其中w为向量,b为标量。一个超平面具有n-1个维度。
f在x处的梯度写作∇f(x),它是一个向量。该向量由f关于它的每一个分量的偏导数[1]组成:
![](https://epubservercos.yuewen.com/1510EB/25220464609634806/epubprivate/OEBPS/Images/image-022-3.jpg?sign=1738953383-aKNPym5ONgj7sz3QNcuq7mMq4wFEMRYH-0-cdfb39cb593a2214ccdd800b9b40d7aa)
一般规定列向量由逗号分隔。例如,。例2.2展示了如何计算特定点上函数的梯度。
多元函数的黑塞矩阵是一个包含关于所有输入的二阶导数的矩阵[2]。二阶导数包含函数局部曲率的信息。
![](https://epubservercos.yuewen.com/1510EB/25220464609634806/epubprivate/OEBPS/Images/image-022-4.jpg?sign=1738953383-14gi9FAF0VL3hUPTvU0nNFRaKAI9kIqk-0-1bc366c2509f3bdfe29755198a9cd78e)
例2.2 计算特定点的梯度
计算当c=[2,0]时,f(x)=x1sin(x2)+1的梯度。
![](https://epubservercos.yuewen.com/1510EB/25220464609634806/epubprivate/OEBPS/Images/image-023-1.jpg?sign=1738953383-AlJF7pncbRYRuTX7xbY8IorRgE2T6OtM-0-c94a29bfc9fc1183e9b90b6f538c910a)
多元函数f的方向导数∇sf(x)是x以速度s移动时f(x)的瞬时变化率。该定义与一元函数导数的定义紧密相关[3]:
![](https://epubservercos.yuewen.com/1510EB/25220464609634806/epubprivate/OEBPS/Images/image-023-2.jpg?sign=1738953383-N2Lcuk4QzEzTUV20KbmBJcXiuGkaDZBm-0-0334ffa3534fb9e572f3ac7e182178eb)
方向导数可以使用函数的梯度来计算:
![](https://epubservercos.yuewen.com/1510EB/25220464609634806/epubprivate/OEBPS/Images/image-023-3.jpg?sign=1738953383-EyZQx7JM2k5qVwJY3WmulUTiq1n5nvD7-0-26c92842c65892073b680581a6973625)
计算方向导数∇sf(x)的另一种方法是定义g(α)≡f(x+αs),然后计算g′(0),如例2.3所示。
方向导数在梯度方向上最高,而在与梯度相反的方向上最低。这种方向依赖性源于方向导数定义中的点积,以及梯度是局部切线超平面的事实。
例2.3 计算方向导数
![](https://epubservercos.yuewen.com/1510EB/25220464609634806/epubprivate/OEBPS/Images/image-2z1.jpg?sign=1738953383-pbb6HoSuC5cNTONjuKajhQodkkZ80E4J-0-e19390646ac2f134ff59228a194f84e1)
我们希望计算出s=[-1,-1]方向上,f(x)=x1x2在x=[1,0]处的方向导数:
![](https://epubservercos.yuewen.com/1510EB/25220464609634806/epubprivate/OEBPS/Images/image-023-4.jpg?sign=1738953383-wen1jpIBcPeYQ1MfOUSGwXFrrk5vFBrN-0-2203e6c496b2354c6cdea956fcf1b5ae)
我们还可以这样计算方向异数:
![](https://epubservercos.yuewen.com/1510EB/25220464609634806/epubprivate/OEBPS/Images/image-023-5.jpg?sign=1738953383-66ZmtDXLod1i4xl2VmEkndc31CBof6P8-0-f61db5a7d3930e96de4d2641f37282fc)
[1] 函数关于变量的偏导数是假定所有其他输入变量保持不变的导数,记为∂f/∂x。
[2] 只有当f的二阶导数在其取值点的邻域中都连续时,黑塞矩阵才是对称的:
![](https://epubservercos.yuewen.com/1510EB/25220464609634806/epubprivate/OEBPS/Images/image-022-5.jpg?sign=1738953383-G7QdCcf9d6jlfIe5Hlc8hTuctCjUQJYl-0-c3e134aa1641ec94a1123c12b8ffe4c1)
[3] 有些文献要求s是单位向量。例如:
G. B.Thomas,Calculus and Analytic Geometry,9th ed. Addison-Wesley,1968.