![优化理论与实用算法](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=1739277344-F53LQ8Xv8F8NmBXQIlGZwPGoPc76R67Q-0-e46d0f219bd3986d3eb6f5f381671d69)
![](https://epubservercos.yuewen.com/1510EB/25220464609634806/epubprivate/OEBPS/Images/image-2d3.jpg?sign=1739277344-48BFYCPsY512o8zAG8CFLWKozZc249JE-0-859f8550e28d8fe1f8fb071e2d0ce167)
图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=1739277344-apf7yMdBFFu561clu0oo7ocZiOmkCJWU-0-7fc085d3228fb0ef50ec5ccded2674e6)
一般规定列向量由逗号分隔。例如,。例2.2展示了如何计算特定点上函数的梯度。
多元函数的黑塞矩阵是一个包含关于所有输入的二阶导数的矩阵[2]。二阶导数包含函数局部曲率的信息。
![](https://epubservercos.yuewen.com/1510EB/25220464609634806/epubprivate/OEBPS/Images/image-022-4.jpg?sign=1739277344-KiO3UpqOkDTqxy5OcjzANFrDy4XhS7L2-0-28529514d69ae8b67862fe30b5a3142f)
例2.2 计算特定点的梯度
计算当c=[2,0]时,f(x)=x1sin(x2)+1的梯度。
![](https://epubservercos.yuewen.com/1510EB/25220464609634806/epubprivate/OEBPS/Images/image-023-1.jpg?sign=1739277344-Tqtlvp6tjXMVMW8Q5wC8Rt9HWqAWYgGG-0-f1e8302053dcb6e50f9d9aa387c2ecee)
多元函数f的方向导数∇sf(x)是x以速度s移动时f(x)的瞬时变化率。该定义与一元函数导数的定义紧密相关[3]:
![](https://epubservercos.yuewen.com/1510EB/25220464609634806/epubprivate/OEBPS/Images/image-023-2.jpg?sign=1739277344-nenjDWzbMLi2Hs7Qg6e8qHe9cjymN75N-0-44e55ed3d716942ad4d54e9cc5086cdf)
方向导数可以使用函数的梯度来计算:
![](https://epubservercos.yuewen.com/1510EB/25220464609634806/epubprivate/OEBPS/Images/image-023-3.jpg?sign=1739277344-MNCguPSFg5unebTKWSiJaXUTmiexZOLm-0-e91f412c917e047913cba379bbcb9168)
计算方向导数∇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=1739277344-nPk47B1NvkfFZrKjAY3UdSM0bainLjWO-0-c973b4c7450d63bf39704fd6cb2854c0)
我们希望计算出s=[-1,-1]方向上,f(x)=x1x2在x=[1,0]处的方向导数:
![](https://epubservercos.yuewen.com/1510EB/25220464609634806/epubprivate/OEBPS/Images/image-023-4.jpg?sign=1739277344-SF59VBPBHHNdnJF2Vje88S1SocGOlZ0y-0-866901bfe8154e1e2b313a48e502b716)
我们还可以这样计算方向异数:
![](https://epubservercos.yuewen.com/1510EB/25220464609634806/epubprivate/OEBPS/Images/image-023-5.jpg?sign=1739277344-nJikhdFwdNYR79FH1d5aqG6QA4VA6m1k-0-41e43555e9dae5509be758638564f2f7)
[1] 函数关于变量的偏导数是假定所有其他输入变量保持不变的导数,记为∂f/∂x。
[2] 只有当f的二阶导数在其取值点的邻域中都连续时,黑塞矩阵才是对称的:
![](https://epubservercos.yuewen.com/1510EB/25220464609634806/epubprivate/OEBPS/Images/image-022-5.jpg?sign=1739277344-GIcyE8HvrEdqG0WIeuw9AFp7blzgzCOZ-0-2c5bfca9c8e4b325a961ea5051317c85)
[3] 有些文献要求s是单位向量。例如:
G. B.Thomas,Calculus and Analytic Geometry,9th ed. Addison-Wesley,1968.