![优化理论与实用算法](https://wfqqreader-1252317822.image.myqcloud.com/cover/413/46055413/b_46055413.jpg)
上QQ阅读APP看书,第一时间看更新
2.1 导数
f′(x)是单自变量x的函数f的导数,它是f的值在x处的变化速率。作图时,通常使用函数在x处的切线表示,如图2.1所示。导数的值等于切线的斜率。
![](https://epubservercos.yuewen.com/1510EB/25220464609634806/epubprivate/OEBPS/Images/image-2d1.jpg?sign=1738890676-SAxDgHMeNBAHGXrbA7achmy5v9zCHGh5-0-58e57882fe17457fc5b3296b45b2c775)
图2.1 函数f用黑色表示,f(x)的切线用灰色表示。f在x处的导数是切线的斜率
可以使用导数来表示x附近函数的线性近似:
![](https://epubservercos.yuewen.com/1510EB/25220464609634806/epubprivate/OEBPS/Images/image-021-1.jpg?sign=1738890676-wsqGbDrRg9hsZF9O83DpfYGNiLiXLh6n-0-20cca2b8137c2d7c49538ec311d2e6a1)
导数是x点处f的变化与x的变化之比:
![](https://epubservercos.yuewen.com/1510EB/25220464609634806/epubprivate/OEBPS/Images/image-021-2.jpg?sign=1738890676-EzY2YoameR8CHVHlwzUIJUSIloCKIQId-0-09a8677f5974157dd2d40286a1e8145c)
即f(x)的变化量除以x的变化量,当步长变得无穷小时,如图2.2所示。
![](https://epubservercos.yuewen.com/1510EB/25220464609634806/epubprivate/OEBPS/Images/image-2d2.jpg?sign=1738890676-HXdeOdm70778AtQRhj5IUQbcGlbhky2w-0-49b593a34cf21f2ef295a62af0c230da)
图2.2 切线是由具有足够小的步长差的点连接而得到的
f′(x)是拉格朗日发明的导数表示法。我们还可以使用莱布尼茨创建的表示法,
![](https://epubservercos.yuewen.com/1510EB/25220464609634806/epubprivate/OEBPS/Images/image-021-3.jpg?sign=1738890676-5SXyBfFNIrn8DyK7PQpdMVcwH5MYW2bU-0-1da4a313f1bec6d47aae6d901ebe44ca)
其强调了一个事实,即导数是f的变化量与x的变化量在x点的比率。
导数的极限方程可以用三种不同的方式表示:前向差分、中心差分和后向差分。每种方式都使用无穷小的步长h:
![](https://epubservercos.yuewen.com/1510EB/25220464609634806/epubprivate/OEBPS/Images/image-022-1.jpg?sign=1738890676-cFDKTvRSQbMZsNCnweNm01e0BYduiVPb-0-a3f00b9f81888e037f95b0c66c2e87f4)
如果f可以用符号表示,那么符号微分通常可以用微积分中的导数规则来给出f′的精确解析表达式。然后可以计算任意点x处的解析表达式。例2.1说明了该过程。
例2.1 符号微分提供解析导数
符号微分的实现细节不在本书的讨论范围之内。多种软件包(如Julia中的SymEngine.jl和Python中的SymPy)都提供了实现。这里我们使用SymEngine.jl来计算x2+x/2-sin(x)/x的导数。
![](https://epubservercos.yuewen.com/1510EB/25220464609634806/epubprivate/OEBPS/Images/image-pz21.jpg?sign=1738890676-7Itq47slyu8fBez2JE2wsM2Z50wyoxjI-0-150418a7a9b4ca871e5f99bcbe5e621f)