![优化理论与实用算法](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=1738881188-D7D1sQoGbL54RSzIKj4OUuSi90WkDOcW-0-94ab36e368c92ea9d7934d8343d8efce)
图2.1 函数f用黑色表示,f(x)的切线用灰色表示。f在x处的导数是切线的斜率
可以使用导数来表示x附近函数的线性近似:
![](https://epubservercos.yuewen.com/1510EB/25220464609634806/epubprivate/OEBPS/Images/image-021-1.jpg?sign=1738881188-MjempYy49yIIP63un2oXXKaXB5VXD3qw-0-53d57508255999f19a0b22a35a876279)
导数是x点处f的变化与x的变化之比:
![](https://epubservercos.yuewen.com/1510EB/25220464609634806/epubprivate/OEBPS/Images/image-021-2.jpg?sign=1738881188-WBzOdaJUOOPejvJKTdwfXsN6ZfREjuId-0-9347d32a5c3699c1876d4ffa24c582ea)
即f(x)的变化量除以x的变化量,当步长变得无穷小时,如图2.2所示。
![](https://epubservercos.yuewen.com/1510EB/25220464609634806/epubprivate/OEBPS/Images/image-2d2.jpg?sign=1738881188-H9gk5tsSPnM9CoOq9qFi0go8JsbqeyE8-0-4e19482a49ad22ba8ce9e9c270f09f6a)
图2.2 切线是由具有足够小的步长差的点连接而得到的
f′(x)是拉格朗日发明的导数表示法。我们还可以使用莱布尼茨创建的表示法,
![](https://epubservercos.yuewen.com/1510EB/25220464609634806/epubprivate/OEBPS/Images/image-021-3.jpg?sign=1738881188-nxN9TePJvdwhaBrk2xIaajMYfI9qSP5Q-0-d489f92ef0e84994cd7bd449d7d2be1e)
其强调了一个事实,即导数是f的变化量与x的变化量在x点的比率。
导数的极限方程可以用三种不同的方式表示:前向差分、中心差分和后向差分。每种方式都使用无穷小的步长h:
![](https://epubservercos.yuewen.com/1510EB/25220464609634806/epubprivate/OEBPS/Images/image-022-1.jpg?sign=1738881188-4FkwDrPcj2rMNS1nFfHpOkrffaDtrvAR-0-4b34780cd1cff14374eb718a59f7eed3)
如果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=1738881188-p9rA9BzlhMCbNtcayUz4DP03x36wRmmm-0-1722abe0fceb64de3e98f9f0ce7cd8b3)