![优化理论与实用算法](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=1739442053-lZp3stHsIJYEc46fI8kBeDY8Qn1z74up-0-9e1874645a9150f4fcd9e813e7842565)
![](https://epubservercos.yuewen.com/1510EB/25220464609634806/epubprivate/OEBPS/Images/image-2d3.jpg?sign=1739442053-9FJnn2EHoQ3KOdlQumbyVQAwgQYZTAUq-0-a74b284c9fc12775e52c9b0a0a831996)
图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=1739442053-Q8f1PjtzOnJdOc7uwGNHYn4j6CNN0oLD-0-6a2a80d7270e90afc11f60f1294802f1)
一般规定列向量由逗号分隔。例如,。例2.2展示了如何计算特定点上函数的梯度。
多元函数的黑塞矩阵是一个包含关于所有输入的二阶导数的矩阵[2]。二阶导数包含函数局部曲率的信息。
![](https://epubservercos.yuewen.com/1510EB/25220464609634806/epubprivate/OEBPS/Images/image-022-4.jpg?sign=1739442053-iKtG3NWQr3GeoUPHiUHdRtA1j3YiTkoJ-0-9649839b40e1f8c8a8aad29c0a9ea3aa)
例2.2 计算特定点的梯度
计算当c=[2,0]时,f(x)=x1sin(x2)+1的梯度。
![](https://epubservercos.yuewen.com/1510EB/25220464609634806/epubprivate/OEBPS/Images/image-023-1.jpg?sign=1739442053-Z2T6R7TeuhS67yVqKfe5onxlCLkUfyDA-0-66ea34774d85118f1ba7f848fa0a99a2)
多元函数f的方向导数∇sf(x)是x以速度s移动时f(x)的瞬时变化率。该定义与一元函数导数的定义紧密相关[3]:
![](https://epubservercos.yuewen.com/1510EB/25220464609634806/epubprivate/OEBPS/Images/image-023-2.jpg?sign=1739442053-9YmPcznrJAWdKHBd2VCyx2hnV849AJgT-0-5c809c4f03198e298587ad7a4306bbd8)
方向导数可以使用函数的梯度来计算:
![](https://epubservercos.yuewen.com/1510EB/25220464609634806/epubprivate/OEBPS/Images/image-023-3.jpg?sign=1739442053-G4tVJYuc8MmijXfSmzFxn8gNhcILUsys-0-67565b90affe56f791149b458ff5518d)
计算方向导数∇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=1739442053-6WWC3g2qmYeHXva6We3TEqokGMOIcIW5-0-09f76aa0d398d1556780352611b899a2)
我们希望计算出s=[-1,-1]方向上,f(x)=x1x2在x=[1,0]处的方向导数:
![](https://epubservercos.yuewen.com/1510EB/25220464609634806/epubprivate/OEBPS/Images/image-023-4.jpg?sign=1739442053-FKC2DREr4oaEGiL6h4LfCm0uyLb9PPp6-0-e722d3e169094ab493e03c7319710b7e)
我们还可以这样计算方向异数:
![](https://epubservercos.yuewen.com/1510EB/25220464609634806/epubprivate/OEBPS/Images/image-023-5.jpg?sign=1739442053-Ol9sNj9pom2MPcLwg3tJUabIWEeIlKxb-0-38feef1f0ee687f04e706e08ced2e2cc)
[1] 函数关于变量的偏导数是假定所有其他输入变量保持不变的导数,记为∂f/∂x。
[2] 只有当f的二阶导数在其取值点的邻域中都连续时,黑塞矩阵才是对称的:
![](https://epubservercos.yuewen.com/1510EB/25220464609634806/epubprivate/OEBPS/Images/image-022-5.jpg?sign=1739442053-Z6wDLDWHNtdjx9TVvhCnpI7DHxINN5JN-0-477633e3ef8d5856817de78a3d1e6232)
[3] 有些文献要求s是单位向量。例如:
G. B.Thomas,Calculus and Analytic Geometry,9th ed. Addison-Wesley,1968.