优化理论与实用算法
上QQ阅读APP看书,第一时间看更新

2.1 导数

f′(x)是单自变量x的函数f的导数,它是f的值在x处的变化速率。作图时,通常使用函数在x处的切线表示,如图2.1所示。导数的值等于切线的斜率。

图2.1 函数f用黑色表示,fx)的切线用灰色表示。fx处的导数是切线的斜率

可以使用导数来表示x附近函数的线性近似:

导数是x点处f的变化与x的变化之比:

fx)的变化量除以x的变化量,当步长变得无穷小时,如图2.2所示。

图2.2 切线是由具有足够小的步长差的点连接而得到的

f′(x)是拉格朗日发明的导数表示法。我们还可以使用莱布尼茨创建的表示法,

其强调了一个事实,即导数是f的变化量与x的变化量在x点的比率。

导数的极限方程可以用三种不同的方式表示:前向差分、中心差分和后向差分。每种方式都使用无穷小的步长h

如果f可以用符号表示,那么符号微分通常可以用微积分中的导数规则来给出f′的精确解析表达式。然后可以计算任意点x处的解析表达式。例2.1说明了该过程。

例2.1 符号微分提供解析导数

符号微分的实现细节不在本书的讨论范围之内。多种软件包(如Julia中的SymEngine.jl和Python中的SymPy)都提供了实现。这里我们使用SymEngine.jl来计算x2+x/2-sin(x)/x的导数。