当前位置 博文首页 > 老猿Python:人工智能数学基础:利用导数判断函数单调性、凹凸性

    老猿Python:人工智能数学基础:利用导数判断函数单调性、凹凸性

    作者:[db:作者] 时间:2021-08-19 15:53

    一、单调性判断定理

    定理:
    设函数y=f(x)在[a,b]上连续,在(a,b)内可导。
    (1)如果在(a,b)内f(x)≥0,且等号仅在有限多个点处成立,那么函数y=f(x)在[a,b]上单调增加;
    (2)如果在(a,b)内f(x)≤0,且等号仅在有限多个点处成立,那么函数y=f(x)在[a,b]上单调减少。

    证明思路
    利用拉格朗日中值公式,可以正得任意两点的函数值差等于某点导数与两点x值的差的乘积,因此x值的差决定了函数值的差的符号。

    另外对于导数为0的点,将区间分成了2部分,每部分的单调性跟随导数的值与自变量的差的值,这表明两个区间的单调性遵循定理的要求,则两个区间叠加后也会遵循。

    二、曲线凹凸性判断

    1、凹凸性的判断规则

    函数曲线的上升或下降反映了函数的单调性,而曲线在上升或下降过程中,还存在一个弯曲方向的问题,如图:
    在这里插入图片描述

    都是上升曲线,曲线ACB向上凸起,而ADB则向下弯曲。

    曲线的凹凸性在几何图形上的描述:通过曲线上任取两点,如果连接这两点的直线(弦)总是位于这两点曲线弧的上方,则曲线是向下弯曲(凹),如果弦总是位于曲线弧的上方,则曲线是向上凸的。

    曲线的凹凸性函数形式的表达
    设f(x)在区间I上连续,如果对I上任意两点x1、x2恒有:
    在这里插入图片描述
    那么称f(x)在I上的图形是(向上)凹的(或凹弧),如果恒有:
    在这里插入图片描述
    那么称/(x)在I上的图形是(向上)凸的(或凸弧)。

    2、曲线凹凸性判断定理

    设f(x)在[a,b]上连续,在(a,b)内具有一阶和二阶导数,那么
    (1)若在(a,b)内f”(x)>0,则f(x)在[a,b]上的图形是凹的;
    (2)若在(a,b)内f”(x)<0,则f(x)在[a,b]上的图形是凸的。

    证明思路

    任取区间内两点x1、x2,假设x2>x1,然后取x0=(x1+x2)/2,记h=x0-x1=x2-x0,分别对区间[x1,x0]、[x0,x2]应用柯西中值定理,得到的两个式子相减后再应用柯西中值定理,如果函数f(x)的二阶导数大于0,就可以得到:
    在这里插入图片描述

    三、极值

    1、定义

    设函数f(x)在点x0的某邻域U(x0)内有定义,如果对于去心邻域U°(x0)内的任一x,有
    f(x)<f(x0)(或f(x)>f(x0)),那么就称f(x0)是函数f(x)的一个极大值(或极小值)

    备注:去心邻域实际的表示不是U°,而是在U上面一个小圈,但无法用文字输入,因此老猿所有的博文都用了U°来表示,实际的符号应该是:
    在这里插入图片描述

    函数的极大值与极小值统称为函数的极值,使函数取得极值的点称为极值点

    函数的极大值和极小值概念是局部性的。如果f(x0)是函数f(x)的一个极大值,那是就x0附近的一个局部范围来说,f(x0)是f(x)的一个最大值,如果就f(x)的整个定义域来说f(x0)不见得是最大值。关于极小值也类似。

    在这里插入图片描述

    在图3-11中,函数f(x)有两个极大值:f(x2)、f(x5),三个极小值:f(x1)、f(x4)、f(x6),其中极大值f(x2)比极小值f(x0)还小。就整个区间[a,b]来说,只有一个极小值f(x1)同时也是最小值,而没有一个极大值是最大值。

    2、定理1(必要条件)

    定理:设函数f(x)在x0处可导,且在x0处取得极值,则f’(x0)=0。

    定理1就是说:可导函数f(x)的极值点必定是它的驻点,但反过来,函数的驻点却不一定是极值点

    例如,f(x)=x3的导数f’(x)=3x2,f’(0)=0,因此x=0是这可导函数的驻点,但x=0却不是这函数的极值点。

    所以,函数的驻点只是可能的极值点。此外,函数在它的导数不存在的点处也可能取得极值

    3、定理2(第一充分条件)

    定理:设函数f(x)在x0处连续,且在x0的某去心邻域U°(x0,δ)内可导。
    (1)若x∈(x0-δ,x0)时,f’(x)>0,而x∈(x0,x0+δ)时,f’(x)<0,则f(x)在x0处取得极大值;
    (2)若x∈(x0-δ,x0)时,f’(x)<0,而x∈(x0,x0+δ)时,f’(x)>0,则f(x)在x0处取得极小值;
    (3)若x∈U°(x0,δ)时,f’(x)的符号保持不变,则f(x)在x0处没有极值。

    定理2也可简单地这样说:当x在x0的邻近渐增地经过x0时,如果f’(x)的符号由正变负,那么f(x)在x0处取得极大值;如果f(x)的符号由负变正,那么f(x)在x0处取得极小值;如果f’(x)的符号并不改变,那么f(x)在x0处没有极值。

    根据上面的两个定理,如果函数f(x)在所讨论的区间内连续,除个别点外处处可导,那么就可以按下列步骤来求f(x)在该区间内的极值点和相应的极值:
    (1)求出导数f’(x);
    (2)求出f(x)的全部驻点与不可导点;
    (3)考察f’(x)的符号在每个驻点或不可导点的左、右邻近的情形,以确定该点是否为极值点;如果是极值点,进一步确定是极大值点还是极小值点;
    (4)求出各极值点的函数值,就得函数(x)的全部极值。

    4、定理3(第二充分条件)

    定理:设函数f(x)在x0处具有二阶导数且f’(x0)=0,f"(x0)≠0,则
    (1)当f"(x0)<0时,函数f(x)在x0处取得极大值;
    (2)当f”(x)>0时,函数f(x)在x0处取得极小值。

    证明思路
    根据导数的定义有:
    在这里插入图片描述
    而f’(x0)=0,可以得到x在x0的足够小的去心邻域时,上式右边不带极限符号的表达式的运算结果的符号取决于f"(x0)的符号,也可以得出f’(x)的符号与x-x0的符号的关系,再结合定理2就可以证明上述结论。

    定理3表明

    如果函数f(x)在驻点x0处的一阶导数f’(x0)=0、二阶导数f”(x0)≠0,那么该驻点x0一定是极值点,并且可以按二阶导数f”(x0)的符号来判定f(x0)是极大值还是极小值。

    但如果f"(x)=0,那么定理3就不能应用。事实上,当f’(x0)=0,f"(x)=0时(x)在x处可能有极大值,也可能有极小值,也可能没有极值。

    例如,f(x)=-x4,f2(x)=x4,f3(x)=x3这三个函数在x=0处就分别属于这三种情况。

    因此,如果函数在驻点处的二阶导数为零,那么可以用一阶导数在驻点左右邻近的符号来判定;如果函数在驻点处有f"(x0)=…=f(n-l)(x0)=0,f(n)(x0)≠0,那么也可利用具有佩亚诺余项的泰勒公式来讨论判定)。

    四、求最值的方法

    假定函数f(x)在闭区间[a,b]上连续,在开区间(a,b)内除有限个点外可导,且至多有有限个驻点。在上述条件下,我们来讨论f(x)在[a,b]上的最大值和最小值的求法。

    首先,由闭区间上连续函数的性质可知,f(x)在[a,b]上的最大值和最小值一定存在。

    其次,如果最大值(或最小值)f(x0)在开区间(a,b)内的点x0处取得,那么,按f(x)在开区间内除有限个点外可导且至多有有限个驻点的假定,可知f(x0)一定也是f(x)的极大值(或极小值),从而x0一定是f(x)的驻点或不可导点。又f(x)的最大值和最小值也可能在区间的端点处取得。

    因此,可用如下方法求f(x)在[a,b]上的最大值和最小值:
    (1)求出f(x)在(a,b)内的驻点及不可导点;
    (2)计算f(x)在上述驻点、不可导点处的函数值及f(a)、f(b);
    (3)比较(2)中诸值的大小,其中最大的便是f(x)在[a,b]上的最大值,最小的便是f(x)在[a,b]上的最小值。

    在求函数的最大值(或最小值)时,特别值得指出的是下述情形:f(x)在一个区间(有限或无限,开或闭)内可导且只有一个驻点x0,并且这个驻点x0是函数f(x)的极值点,那么,当f(x0)是极大值时f(x0)就是f(x)在该区间上的最大值(图3-15(a));当f(x0)是极小值时f(x0)就是f(x)在该区间上的最小值(图3-15(b)),在应用问题中往往遇到这样的情形。

    在这里插入图片描述

    五、借助导数描绘函数图形

    借助于一阶导数的符号,可以确定函数图形在哪个区间上上升,在哪个区间上下降;

    借助于二阶导数的符号,可以确定函数图形在哪个区间上为凹,在哪个区间上为凸,在什么地方有拐点。

    知道了函数图形的升降、凹凸以及拐点后,也就可以掌握函数的形态,并把函数的图形画得比较准确。

    利用导数描绘函数图形的一般步骤如下

    1. 第一步 确定函数y=f(x)的定义域及函数所具有的某些特性(如奇偶性、周期性等),并求出函数的一阶导数f’(x)和二阶导数f"(x);
    2. 第二步 求出一阶导数’(x)和二阶导数f”(x)在函数定义域内的全部零点,并求出函数f(x)的间断点及f’(x)和f”(x)不存在的点,用这些点把函数的定义域划分成几个部分区间;
    3. 第三步 确定在这些部分区间内f’(x)和f“(x)的符号,并由此确定函数图形的升降、凹凸和拐点;
    4. 第四步 确定函数图形的水平、铅直渐近线以及其他变化趋势;
    5. 第五步 算出f’(x)和f”(x)的零点以及不存在的点所对应的函数值,定出图形上相应的点;
    6. 为了把图形描绘得准确些,有时还需要补充一些点,然后结合第三、四步中得到的结果,联结这些点画出函数y=f(x)的图形。

    现在,随着现代计算机技术的发展,借助于计算机和许多数学软件,可以方便地画出各种函数的图形。但是,如何识别机器作图中的误差,如何掌握图形上的关键点,如何选择作图的范围等,从而进行人工干预,仍然需要我们有运用微分学的方法描绘函数图形的基本知识。

    六、小结

    本文介绍了利用导数判断函数单调性、凹凸性、极值相关的概念和定理,通过本文的介绍,可以熟悉通过导数判断函数单调性、凹凸性、极值以及求最值的原理和方法。最后,通过一阶导数和二阶导数确定了函数的单调性、凹凸性、极值点之后,就可以描绘出函数的几何图形。

    说明:

    本文内容是老猿学习同济版高数的总结,有需要原教材电子版以及OpenCV、Python基础知识、、图像处理原理介绍相关电子资料,或对文章内有有疑问咨询的,请扫博客首页左边二维码加微信公号,根据加微信公号后的自动回复操作。

    更多人工智能数学基础请参考专栏《人工智能数学基础》。

    写博不易,敬请支持:

    如果阅读本文于您有所获,敬请点赞、评论、收藏,谢谢大家的支持!

    关于老猿的付费专栏

    1. 付费专栏《https://blog.csdn.net/laoyuanpython/category_9607725.html 使用PyQt开发图形界面Python应用》专门介绍基于Python的PyQt图形界面开发基础教程,对应文章目录为《 https://blog.csdn.net/LaoYuanPython/article/details/107580932 使用PyQt开发图形界面Python应用专栏目录》;
    2. 付费专栏《https://blog.csdn.net/laoyuanpython/category_10232926.html moviepy音视频开发专栏 )详细介绍moviepy音视频剪辑合成处理的类相关方法及使用相关方法进行相关剪辑合成场景的处理,对应文章目录为《https://blog.csdn.net/LaoYuanPython/article/details/107574583 moviepy音视频开发专栏文章目录》;
    3. 付费专栏《https://blog.csdn.net/laoyuanpython/category_10581071.html OpenCV-Python初学者疑难问题集》为《https://blog.csdn.net/laoyuanpython/category_9979286.html OpenCV-Python图形图像处理 》的伴生专栏,是笔者对OpenCV-Python图形图像处理学习中遇到的一些问题个人感悟的整合,相关资料基本上都是老猿反复研究的成果,有助于OpenCV-Python初学者比较深入地理解OpenCV,对应文章目录为《https://blog.csdn.net/LaoYuanPython/article/details/109713407 OpenCV-Python初学者疑难问题集专栏目录 》
    4. 付费专栏《https://blog.csdn.net/laoyuanpython/category_10762553.html Python爬虫入门 》站在一个互联网前端开发小白的角度介绍爬虫开发应知应会内容,包括爬虫入门的基础知识,以及爬取CSDN文章信息、博主信息、给文章点赞、评论等实战内容。

    前两个专栏都适合有一定Python基础但无相关知识的小白读者学习,第三个专栏请大家结合《https://blog.csdn.net/laoyuanpython/category_9979286.html OpenCV-Python图形图像处理 》的学习使用。

    对于缺乏Python基础的同仁,可以通过老猿的免费专栏《https://blog.csdn.net/laoyuanpython/category_9831699.html 专栏:Python基础教程目录)从零开始学习Python。

    如果有兴趣也愿意支持老猿的读者,欢迎购买付费专栏。

    老猿Python,跟老猿学Python!

    ? ? 前往老猿Python博文目录 https://blog.csdn.net/LaoYuanPython ?

    cs