python机器学习高数篇之函数极限与导数

 更新时间:2021年08月30日 10:40:01   作者:水龙吟唱  
这篇文章主要介绍了python机器学习高数篇之函数极限和导数,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下

不知道大家有没有类似的经历,斗志满满地翻开厚厚的机器学习书,很快被一个个公式炸蒙了。

想要学习机器学习算法,却很难看的懂里面的数学公式,实际应用只会调用库里的函数,无法优化算法。

学好机器学习,没有数学知识是不行的。数学知识的积累是一个漫长的过程,罗马也不是一夜建成的。

如果想要入门机器学习,数学基础比较薄弱,想打牢相关数学基础,可以关注笔者,一起学习(数学大佬也可以来扫一眼python代码)~

接下来我们以高数(同济第七版)课后习题为例,使用python语言来求解函数和导数的习题。

这样大家做课后练习的时候,也可以用python验证一下做的对不对。

这里用到两个常见的Python库,sympy和numpy,学习的时候可以参考官方文档。

sympy 是Python语言编写的符号计算库,这里用于处理数学对象的计算称为符号计算。

官方在线文档:https://docs.sympy.org/dev/index.html

numpy是一个Python库,支持大量的多维数组及矩阵运算,提供用于数组快速操作的各种API。

官方在线文档:https://www.numpy.org.cn/reference/

函数极限

我们来看一下高数课本(同济第七版)对函数极限的定义:

在这里插入图片描述

当时上课的时候就觉得这段函数定义太反人类了啊,瞬间打击学习高数的兴趣。

为什么函数极限的定义会这么难以理解呢?

这里需要插入数学史的内容了,这个问题要追溯到几百年前…

古希腊的数学家在处理无穷小和极限问题时,使用穷竭法等方法非常的繁琐。

到了牛顿时代,微积分还不成熟,也就是说牛顿当时也没把无穷小和极限的问题弄明白。

后面一个个大牛都试图把相关的漏洞补齐,我们看到的这个ε-δ定义的极限,是由维尔斯特拉斯总结了前面各个大牛的经验,最终提出来的。

所以最终这个定义我们看不懂也正常,这个概念的形成大约经历了几百年,就算拿给当时的牛顿看也是蒙的呢。

不过这个定义,也是公认的非常严谨、接近本质的函数极限定义了。

光说概念太没意思了,学数学嘛,肯定要做题。我们来看几道高数题吧——

函数极限练习题.1

证明:

在这里插入图片描述

python版证明:

import sympy
from sympy import oo
import numpy as np
x = sympy.Symbol('x')
f = (x ** 2 - 4)/(x + 2)
sympy.limit(f,x,-2)

输出:-4

函数极限练习题.2

证明:

在这里插入图片描述

python版证明:

import sympy           #导入sympy符号计算库
from sympy import oo   #oo为无穷大符号
import numpy as np
x = sympy.Symbol('x')
f = sympy.sin(x)/sympy.sqrt(x)
sympy.limit(f,x,oo)    #求极限

输出:0

关于limit的用法,我们来查看官方文档:

在这里插入图片描述

导数

导数定义:

在这里插入图片描述

理解了概念,来做几道导数题吧——

导数练习题一(高数 总习题二 第8题(1)):

求下列导数:

在这里插入图片描述

python版求导:

import sympy
from sympy import *
from sympy.abc import x,y
diff(asin(sin(x)))

输出:cos(x)/sqrt(-sin(x)**2 + 1)

python求导数的三种写法

python中求导数主要有三种方法,我们用练习题来演示:

导数练习题:

求下列导数:

在这里插入图片描述

方法一

使用sympy的diff函数。

diff版求导:

import sympy
from sympy import *
from sympy.abc import x,y
diff(5*x**4 + 4*x**3 +2*x**2 + x + 666)

输出:20*x**3 + 12*x**2 + 4*x + 1

方法二

使用numpy库里的poly1d函数

在官方文档里,查看一下poly1d的用法:

在这里插入图片描述

poly1d版求导:

import numpy as np
p = np.poly1d([5,4, 0 ,2 ,1]) #构造多项式,每项是多项式前的系数,幂次由高到低,没有该幂次该项为0
print(np.polyder(p,1)) #求一阶导数
print(p.deriv(1))	   #另一种方法求一阶导数

输出:

3 2
20 x + 12 x + 2

方法三

使用scipy.misc模块下的derivative函数

在官方文档里,查看一下derivative的用法:

在这里插入图片描述

derivative版求导:

import numpy as npfrom scipy.misc 
import derivative
def f(x):    
	return (5*x**4 + 4*x**3 +2*x**2 + x + 666)
print (derivative(f,3,dx=1e-6))  #求x=3时的导数 

输出:

661.0000001501248

到此这篇关于python机器学习高数篇之函数极限与导数的文章就介绍到这了,更多相关python极限与导数内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • python HZK16字库使用详解

    python HZK16字库使用详解

    这篇文章主要介绍了python HZK16字库使用,本文结合实例代码给大家讲解的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2023-02-02
  • Python实现的数据结构与算法之链表详解

    Python实现的数据结构与算法之链表详解

    这篇文章主要介绍了Python实现的数据结构与算法之链表,详细分析了链表的概念、定义及Python实现与使用链表的相关技巧,非常具有实用价值,需要的朋友可以参考下
    2015-04-04
  • Python实现正弦信号的时域波形和频谱图示例【基于matplotlib】

    Python实现正弦信号的时域波形和频谱图示例【基于matplotlib】

    这篇文章主要介绍了Python实现正弦信号的时域波形和频谱图,涉及Python数学运算与图形绘制相关操作技巧,需要的朋友可以参考下
    2018-05-05
  • Python中的字符串相似度

    Python中的字符串相似度

    这篇文章主要介绍了Python中的字符串相似度,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-05-05
  • Python带你从浅入深探究Tuple(基础篇)

    Python带你从浅入深探究Tuple(基础篇)

    大家都知道Python中的元组容器序列(tuple)与列表容器序列(list)有很多相同之处,他们虽然都可以存储任意类型的数据,但是一个元组定义好之后就不能够再进行修改,对Python Tuple相关知识感兴趣的朋友一起看看吧
    2021-05-05
  • Python绘制分形图案探索无限细节和奇妙之美

    Python绘制分形图案探索无限细节和奇妙之美

    本文将介绍如何使用Python绘制各种分形图案,包括分形树、科赫曲线、曼德博集合等。通过本文读者可以了解分形图案的基本概念和构造方法,并学会使用Python绘制出各种精美的分形图案。本文还提供了具体的代码示例和实践案例,帮助读者更好地理解分形图案的奇妙之美
    2023-04-04
  • 使用 Python 的 pprint库格式化和输出列表和字典的方法

    使用 Python 的 pprint库格式化和输出列表和字典的方法

    pprint是"pretty-print"的缩写,使用 Python 的标准库 pprint 模块,以干净的格式输出和显示列表和字典等对象,这篇文章主要介绍了如何使用 Python 的 pprint库格式化和输出列表和字典,需要的朋友可以参考下
    2023-05-05
  • PyCharm设置注释字体颜色以及是否倾斜的操作

    PyCharm设置注释字体颜色以及是否倾斜的操作

    这篇文章主要介绍了PyCharm设置注释字体颜色以及是否倾斜的操作,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-09-09
  • python基础教程之面向对象的一些概念

    python基础教程之面向对象的一些概念

    这篇文章主要介绍了python基础教程之面向对象的一些概念,面向对象是一种代码组织方式,让代码复用最大化,需要的朋友可以参考下
    2014-08-08
  • TensorFlow2.X结合OpenCV 实现手势识别功能

    TensorFlow2.X结合OpenCV 实现手势识别功能

    这篇文章主要介绍了TensorFlow2.X结合OpenCV 实现手势识别功能,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2020-04-04

最新评论