人工智能数学基础
上QQ阅读APP看本书,新人免费读10天
设备和账号都新为新人

3.2 导数与微分

导数又名微商,是微积分中重要的基本概念。一个函数在某一点的导数描述了这个函数在这一点附近的变化率。导数被用在许多人工智能算法中,特别是在基于导数的参数优化方法中,其应用更广泛。

3.2.1 导数

1.导数的定义

设函数img在点img的某个邻域内有定义,给img一改变量img,函数的改变量img,若极限img存在,则称函数img在点img处可导,并称此极限值为函数img在点img处的导数,记为img,即

img

(3-1)

也常记为imgimgimg等。

在式(3-1)中,若令img,则式(3-1)可改写为

img

(3-2)

式(3-2)也可以作为导数的定义公式。

若函数imgimg内的每点都可导,则称img在区间img内可导。显然,对于img内的每个确定的img值,函数img都对应一个确定的导数,这就构成了一个新的函数,这个函数叫作原来函数img的导函数,记为imgimgimgimg

如果函数img在包含点img的某个区间内可导,函数img在点img处的导数就是导函数imgimg处的函数值,即img。在不会发生混淆的情况下,导函数也简称导数。

根据左右侧导数情况,img在点img处可导的充分必要条件是左导数img和右导数img都存在且相等。

2.可导与连续的关系

若函数img在点img处可导,则img在点img处一定连续;反之,则不然。

例如:imgimg处不可导,但由于img,所以imgimg处连续。

3.复合函数求导

对于复合函数img,其导数的计算要遵从链式法则,即令img,则

img

(3-3)

4.隐函数求导

img是某个定义域上的函数,若存在定义域上的子集img,使得对每个img属于img,存在相应的img满足方程img,则称方程确定了一个隐函数,记为img

在隐函数已经确定存在且可导的情况下,可以用复合函数求导的链式法则来对其求导。方程左右两边都对img求导,由于img其实是img的一个函数,所以可以直接得到一个带有img的方程,化简后可得到img的表达式。

例3-2 求函数img的导函数和在img处的导数。

解:可利用Python包SymPy中的函数diff求函数的导函数,也可以求具体点的导数值。具体程序如下:

img

输出结果如下:

img

img,根据函数乘积的求导公式img,也可以手动计算得出上面的结果,其中img的导数用复合函数的链式法则来求。

例3-3 已知img,求img

解:方程两边对img求导,解得img,然后利用Python包SymPy中的函数idiff求隐函数的导数。具体程序如下:

img

输出结果如下:

img

5.级数

设数列imgimg,把表达式img简记为img,称其为常数项无穷级数,简称数项级数,在不引起混淆的情况下,也可以直接称为级数。其中,img叫作数项级数的通项或一般项。若令

img

则称其为数项级数img的部分和数列。若级数img的部分和数列img的极限存在,并设img,则称级数img收敛于imgimg称为此级数的和,记作img。若img的极限不存在(包括极限为img),则称级数img发散。

例3-4 计算级数img

解:可利用Python包SymPy中的函数Sum求级数和。具体程序如下:

img

输出结果如下:

img

6.幂级数

给定区间I上的函数列img,称式子

img

为函数项无穷级数,简称函数项级数,简写为imgI称为它的定义域。

对于img,若级数img收敛,则称img为级数img的一个收敛点,收敛点的全体叫作收敛域。若级数img发散,则称img为级数img的一个发散点,发散点的全体称为发散域。称

img

为级数img的前n项和或部分和。

在收敛域内,若img,则称img为级数img的和函数。记为

img

在级数的收敛域内,和函数一定存在。

形如

img

img

的函数项级数称为幂级数。其中,常数img叫作幂级数的系数。

下面给出幂级数的收敛半径的计算方法。

定理3-1 对于幂级数img,设img(或img),img,则:

(1)若img为常数且img,则img

(2)若img,则img

(3)若img,则img

例3-5 求幂级数img的收敛域。

解:根据上面的定理,利用Python包SymPy中的函数limit计算收敛半径,并用函数Sum判定在两端点是否收敛。具体程序如下:

img

计算结果如下:

img

所以幂级数img的收敛域为img

7.泰勒级数

泰勒级数是特殊的幂级数。如果函数imgimg处具有img阶导数,那么可利用关于imgimg次多项式来构建幂级数的部分和,从而逼近原函数。

若函数img在包含img的某个闭区间img上具有img阶导数,且在开区间img上具有img阶导数,则对闭区间img上的任意一点x,得

img

其中,img表示imgimg阶导数,等号后的多项式称为函数imgimg处的泰勒展开式,img是泰勒级数的余项,表示为img的高阶无穷小。

例3-6 求函数imgimg处的3阶泰勒级数。

解:可利用Python包SymPy中的函数series进行泰勒级数展开。具体程序如下:

img

输出结果如下:

img

3.2.2 偏导数

对于多元函数求导,可仿照一元函数导数的定义方式进行定义。但是,多元函数具有多个自变量,且各自独立变化,定义时,可先让其他自变量保持不变,仅让其中一个自变量变化,研究相应的因变量关于这个自变量的变化率问题,这样就可以归结为一元函数的求导问题。若进一步研究多个自变量同时变化时的求导问题,则产生了偏导数及全微分的概念。

设函数imgimg内有定义,若固定img,则函数变为关于x的一元函数img,此时给自变量ximg点一个改变量img,则函数相应地有改变量

img

称其为函数img在点img处关于x的偏改变量。类似地,函数img在点img处关于y的偏改变量为

img

1.偏导数

设二元函数imgimg内有定义,若极限

img

存在,则称函数imgimg点关于x可偏导,并且称该极限值为函数imgimg处对x的偏导数,通常采用下列记号来表示:

img

如可以写img

同样地,可以定义函数imgimg处对y的偏导数,通常采用下列记号来表示:

img

若函数img在某区域img内的每点处都有偏导数,则偏导数imgimg也是二元函数,叫作函数img的偏导函数。通常采用下列记号来表示:

img

img

偏导数的计算方法同一元函数导数的计算方法。

2.全微分

如果函数imgimg处的全改变量

img

可表示为img,其中,img是只与img有关而与img无关的量,img,则称函数img在点img处可微分,而img称为函数img在点img处的全微分,记作

img

其中,偏导数imgimg,如记img,则全微分的形式为

img

(3-4)

若函数img在区域img内各点处都可微,则称函数imgimg内可微。函数img在区域img内的全微分记为

img

例3-7 求函数img的偏导数。

解:可利用Python包SymPy中的函数diff求偏导数。具体程序如下:

img

输出结果如下:

img

3.2.3 梯度和方向导数

1.梯度

设函数img在平面区域img内具有一阶连续偏导数,则对于每点img,都可确定一个向量:

img

该向量称为函数img在点img处的梯度,记作img,即

img

梯度的几何意义:梯度为等高线上点img处的法向量,且从数值较低的等高线指向数值较高的等高线。

2.方向导数

设函数img在点img的某一邻域img内有定义,自点img引射线img,设x轴正向到射线img的转角为img(逆时针方向:img;顺时针方向:img),并设imgimg上的另一点且img,考虑函数的增量imgimgimgimg两点间的距离img的比值。当img沿着img趋于img时,若这个比的极限存在,则称该极限为函数img在点img处沿方向img的方向导数,记作img,即

img

若函数img在点img处是可微分的,则函数在该点沿任一方向的方向导数都存在,且有

img

(3-5)

可以看出,函数在某点的梯度是这样一个向量:它的方向与函数取得最大方向导数的方向一致,而它的模为方向导数的最大值。

例3-8 计算函数img的梯度。

解:首先使用Python中的函数CoordSys3D构造笛卡儿坐标系,然后利用函数gradient求梯度。具体程序如下:

img

输出结果如下:

img