文章目录

  • 1 状态变化
  • 2 极限语言
  • 3 序列与函数
  • 4 极限常数
    • 圆周率 π \pi π
    • 自然对数e
    • 欧拉常数 γ \gamma γ
  • 5 洛必达法则

1 状态变化

若将数学整体划分为三类,则可概括为代数、几何与分析。对于前两者,我们很早就建立了直观的概念,对于空间结构及其性质的研究,即为几何;以数为核心的研究领域,即为代数。

分析则具备更多的非数学的内涵,误导性很强,初学者若望文生义,则更倾向于将“分析”理解为一门数学技巧,而非数学领域。

初学数学分析时,是将其等同为微积分的,而微积分的理论基础建立在极限之上。所以,极限可作为分析学的根基,为此,需要去理解极限的本质,而极限本身则是一个动态的过程,例如下面这个重要极限

lim ⁡ x → 0 s i n ( x ) x = 1 \lim_{x\to 0}\frac{sin(x)}{x}=1 x→0lim​xsin(x)​=1

对于上式,表示当x趋于0的时候,这个分式等于1,需要注意,这里是等于号,而非约等。当我们以初等的观念去理解这个等式的时候,会自动附加一些特殊的约定:

  • x → 0 x\to0 x→0即 x = 0 x=0 x=0
  • 0是有阶数的,对于 0 m 0 n \frac{0^m}{0^n} 0n0m​,当 m > n m>n m>n时,值为0, m < n m<n m<n时,值为无穷大, m = n m=n m=n时,值为常数。
  • sin ⁡ 0 \sin0 sin0和 0 0 0具有相同的阶数,且二者相等。

通过这三个约定,可以很方便地去计算一切涉及到 sin ⁡ 0 \sin0 sin0和 0 0 0的比值问题。但这种理解并不自然,随着接触的极限表达式越来越多,需要更多的约定来促使极限理论趋于完整。

如以一种动态的眼光去审视这个重要极限,可能理解会发生变化。考虑到画图的方便,对上式稍作改动,

lim ⁡ x → ∞ x sin ⁡ 1 x = 1 \lim_{x\to\infty}x\sin\frac{1}{x}=1 x→∞lim​xsinx1​=1

则令

y = x sin ⁡ 1 x y=x\sin\frac1 x y=xsinx1​

则随着 x x x不断变大, y y y将不断地趋近于1,如图所示

其python代码为

#导入数学计算和绘图包,后面所有代码都需要导入,但不在
import numpy as np
import matplotlib.pyplot as plt
x = np.arange(1,100)    #定义x为1到100的数组,即1,2...99
y = x*np.sin(1/x)
plt.plot(x,y)   #绘制y对x的变化关系
plt.show()      #将图像显示在屏幕上

这个趋势表明,极限是一种动态过程,相应地分析是建立在状态变化上的一种动态的数学。

一旦建立了这种动态的思维,就会发现原本安定本分的数学世界也发生了微妙的变化,例如,我们又将如何理解1这个整数。

例如无限循环小数0.999...=1这个反直觉的等式是否严格。在初等的观点看来,可以很容易得到 10 × 0.999... = 9.999... → ( 10 − 1 ) ∗ 0.999... = 9 → 0.999... = 1 10 \times 0.999...=9.999...\to (10-1)*0.999...=9\to0.999...=1 10×0.999...=9.999...→(10−1)∗0.999...=9→0.999...=1。

进而敏锐地发现,若用一种不厌其烦的方式去求解分式 1 1 \frac{1}{1} 11​,会更加自然地得到0.999...

但无论如何,0.999...=1是反直觉的,反来自于初等数学的直觉。换句话说,初等数学的直觉存在矛盾,我们需要一个更加严格的有关极限的定义和表示,尤其需要建立一种可以称之为相等的映射关系。

2 极限语言

初学数学分析,很多人都对 ε − N \varepsilon-N ε−N深恶痛绝,更妙的是,不理解这种表达方式,对做题似乎影响不大。大部分人通过加深对上面的那三个约定(以及更多约定)的记忆来完成解题,从而避免了加深对数学对象的理解。

但 ε − N \varepsilon-N ε−N语言并不难理解,回想初次接触无穷这个概念的时候,最常用到的案例就是论证自然数的个数,即无论你举出一个多么大的自然数,我都能举出一个更大的数,所以自然数是无穷的。

相应地,现有一数列 { x n } \{x_n\} {xn​},随着n越来越大,若 x n x_n xn​也趋于无穷大,则可用相同的方式来表述:无论你举出一个多么大的数 E E E,我都可以找到一个 n n n,使得 x n > E x_n>E xn​>E。但和自然数不同,这个数列未必单调,也未必发散,所以需要另加上一句对于所有m>n,有 x m > E x_m>E xm​>E。这样就能确保我们的这个数列 x n > E x_n>E xn​>E是发散的了。

至此,无穷极限已经获得了一个规范的定义:假定对于任意大的 E > 0 E>0 E>0,都存在正整数 N N N,使得一切 n > N n>N n>N,不等式 ∣ x n ∣ > E |x_n|>E ∣xn​∣>E成立,则称序列 x n {x_n} xn​的极限是 ∞ \infty ∞,记作 lim ⁡ n → ∞ x n = ∞ \lim_{n\to\infty}x_n=\infty limn→∞​xn​=∞。

有穷极限亦然,对于数列 { x n } \{x_n\} {xn​},如果当 n → ∞ n\to\infty n→∞时, x n = a x_n=a xn​=a,则对于所有更大的 n n n,都使得 x n x_n xn​更接近 a a a。 ε \varepsilon ε就是对这种更接近的一种描述,由此而得到了对有穷极限的定义:

假定对于任意小的 ε \varepsilon ε,都存在正整数 N N N,使得对于一切的 n > N n>N n>N,不等式

∣ x n − a ∣ < ε |x_n-a|<\varepsilon ∣xn​−a∣<ε

则称序列 { x n } \{x_n\} {xn​}以 a a a为极限,或者收敛于 a a a,记为 lim ⁡ n → ∞ x n = a \lim_{n\to\infty}x_n=a limn→∞​xn​=a。

在这种极限观点下,回头再看上文所列举的两个式子,可能会显得更加严谨。首先,对于重要极限 lim ⁡ x → ∞ x s i n ( 1 x ) = 1 \lim_{x\to\infty}xsin(\frac{1}{x})=1 limx→∞​xsin(x1​)=1,假设 ε = 0.01 \varepsilon=0.01 ε=0.01,那么选取 N = 10 N=10 N=10,

x = np.arange(10,100)
y = 1-x*np.sin(1/x)
plt.plot(x,y)
plt.show()

其图像为

可见,当 x > N x>N x>N时, ∣ x sin ⁡ ( 1 x ) − 1 ∣ < ε |x\sin(\frac{1}{x})-1|<\varepsilon ∣xsin(x1​)−1∣<ε。由于 ε \varepsilon ε可任意选取,故可以继续减小 ε \varepsilon ε的值,但无论 ε \varepsilon ε小到什么程度,我们都可以找到一个 N N N,使之满足极限的定义式。

对于0.999...,我们可以构造一个数列 y = 1 − 0. 1 x y=1-0.1^x y=1−0.1x,当 x → ∞ x\to\infty x→∞时, y → 0 y\to0 y→0,也就是说,对于任意小的一个 ε \varepsilon ε,我们总能找到一个 N N N,使得 x > n x>n x>n时, 0. 1 x < ε 0.1^x<\varepsilon 0.1x<ε。

3 序列与函数

数列和函数都是一种映射关系,区别在于,序列是定义域为正整数的特殊函数。而微积分中主要研究的名为函数的映射,都定义在实数域上。从而在函数的定义域中,随便抽选出一个区间 [ a , b ] [a,b] [a,b],只要 a ≠ b a\not =b a​=b,则区间中的元素个数就是无穷多个。

极限在 ε − N \varepsilon-N ε−N意义上重新定义了相等,从而意味着每一个实数都包含了无穷多种初等的表示,即 1 = 0.999...0 = 0.999...1 = 0.999... n , n 1=0.999...0=0.999...1=0.999...n,n 1=0.999...0=0.999...1=0.999...n,n为任意长度的数串,中间的无穷多位,导致末位信息在变得毫无意义,或者更确切地说,根本不存在最后一位。

如果异想天开地希望建立整数与实数的对应关系,例如将整数环映射到区间 [ − 1 , 1 ] [-1,1] [−1,1]内,这个区间也将变得十分密集,对于区间 [ a , b ] [a,b] [a,b],也同样只要 a ≠ b a\not =b a​=b,则区间内存在无穷多个元素。

在实数区间 [ − 1 , 1 ] [-1,1] [−1,1]里,当 x → 0 x\to\ 0 x→ 0时, y ( x ) = y 0 y(x)=y_0 y(x)=y0​,则对任意小的 ε > 0 \varepsilon>0 ε>0,都存在一个实数 δ \delta δ,使得区间 [ − δ , δ ] [-\delta,\delta] [−δ,δ]内的 x x x满足 ∣ y 0 − y ( x ) ∣ < ε |y_0-y(x)|<\varepsilon ∣y0​−y(x)∣<ε。由于整数环和 [ − 1 , 1 ] [-1,1] [−1,1]区间存在某种映射,所以对于任意小的一个 δ \delta δ,都可以在整数映射的区间 [ − 1 , 1 ] [-1,1] [−1,1]中找到无穷多个 δ ′ < δ \delta'<\delta δ′<δ,从而在区间 [ − δ ′ , δ ′ ] [-\delta',\delta'] [−δ′,δ′]内存在同样的极限。

当然,通过整数除以正无穷得到 [ − 1 , 1 ] [-1,1] [−1,1]的一个子区间,似乎在技术上是不可实现的,因为目前来说 ∞ \infty ∞是没法做分母的,表达式 n ∞ \frac{n}{\infty} ∞n​在 n ≠ ∞ n\not= \infty n​=∞时,其值为0,否则为不定式。

但是,如以一种更动态的眼光去看待整数映射的 [ − 1 , 1 ] [-1,1] [−1,1]。对于任意小的一个 δ \delta δ,都可以在整数环中找到一个 N N N,从而在序列 − 1 , − ( N − 1 ) N , . . . − 1 N , 0 , 1 N . . . 1 -1,\frac{-(N-1)}{N},...\frac{-1}{N},0,\frac{1}{N}...1 −1,N−(N−1)​,...N−1​,0,N1​...1中找到 δ ′ < δ \delta'<\delta δ′<δ,其中 δ ′ = N δ ′ N \delta'=\frac{N_{\delta'}}{N} δ′=NNδ′​​,使得区间整数映射区间的子区间 [ − δ ′ , δ ′ ] [-\delta',\delta'] [−δ′,δ′]内,满足 ∣ y 0 − y ( x ) ∣ < ε |y_0-y(x)|<\varepsilon ∣y0​−y(x)∣<ε。

如果跳出数学抽象,那么这里的 δ \delta δ和 δ ′ \delta' δ′都是具备现实意义的。对于没怎么接触过编程的人来说,第一眼看到我们上面所画出的图,必然会想当然地认为,这张图是连续的。然而,这只不过是不到100个点的一种拟合。即便真的用无穷多个点画出一条曲线,但屏幕也只能像素的形式进行显示,这个曲线仍旧是有分立的点连接而成的,只不过这些个分立的点足够稠密,以至于可以骗过我们的眼睛。

所以,可以认为 δ \delta δ是人眼的一种分辨极限,当两个点的距离小于 δ \delta δ时,便无法区分这两个点是否分离。那么,当我们画图的时候,只要确保两个点的距离 δ ′ < δ \delta'<\delta δ′<δ,就会自然地在我们的眼中形成连续的图像。也就是说,如果我们的区间长度为 L L L,那么只要选取 L δ ′ \frac{L}{\delta'} δ′L​个点来画图,我们的视觉就会欺骗我们。

4 极限常数

圆周率 π \pi π

历史上很早就产生了极限思想,而割圆术就是这种思想的绝佳体现。

设正N边形边长为 a a a,则周长为 L = N a L=Na L=Na,而其边长与边数的关系可以表示为

a = 2 R sin ⁡ π N → L = 2 N R sin ⁡ π N a=2R\sin\frac{\pi}{N}\to L=2NR\sin\frac{\pi}{N} a=2RsinNπ​→L=2NRsinNπ​

圆可以理解为边数为无穷多的正多边形,即

L = lim ⁡ n → ∞ 2 n R sin ⁡ π n = 2 π R L=\lim_{n\to\infty}2nR\sin\frac{\pi}{n}=2\pi R L=n→∞lim​2nRsinnπ​=2πR

由于古人不知道圆周率,所以需要通过不断地测量多边形的边长和周长来逼近,则对于正多边形而言

Π = L 2 R = N sin ⁡ π N \Pi=\frac{L}{2R}=N\sin\frac{\pi}{N} Π=2RL​=NsinNπ​

N = np.arange(3,100)
Pi = N*np.sin(np.pi/N)
plt.plot(N,Pi)
plt.show()

由于到了后面,误差变得越来越小,所以用对数来看一下误差的变化

N = np.arange(3,1e4)
err = np.log10(np.pi-N*np.sin(np.pi/N))
plt.plot(N,err)
plt.show()

可见割到了正10000边形,也只能得到 1 0 − 7 10^{-7} 10−7的精度,通过计算可以得到正10000边形算出的圆周率约为3.14159260,所以我们至今也无法知道祖冲之他老人家到底是怎么得到的。

>>> 10000*np.sin(np.pi/10000)
3.141592601912665

圆周率的这种定义其实也提供了一个重要极限,即

π = lim ⁡ N → ∞ N sin ⁡ π N → lim ⁡ x → 0 sin ⁡ x x = 1 \pi=\lim_{N\to\infty}N\sin\frac{\pi}{N}\to\lim_{x\to0}\frac{\sin x}{x}=1 π=N→∞lim​NsinNπ​→x→0lim​xsinx​=1

自然对数e

很多人喜欢把自然对数和复利计算联系在一起。

假设某银行的年利率为 x x x,即存入W元,一年之后本息合计 W ( 1 + x ) W(1+x) W(1+x);如果一年之后将本息重新存入银行,则再过一年,本息合计为 W ( 1 + x ) 2 W(1+x)^2 W(1+x)2,重复操作 n n n年之后,则其本息之和为 W ( 1 + x ) n W(1+x)^n W(1+x)n。

假设这家银行可以按月算利率,则每月利率为 x 12 \frac{x}{12} 12x​,如果按月存取,则每年本息之和为 W ( 1 + x 12 ) 12 W(1+\frac{x}{12})^{12} W(1+12x​)12。

假设这家很行可以按照任意时间算利率,若每次存钱 1 n \frac{1}{n} n1​年,则利率为 x n \frac{x}{n} nx​,相应一年的本息之和为 W ( 1 + x n ) n W(1+\frac{x}{n})^n W(1+nx​)n。

问题来了,是不是随着 n n n逐渐增大,一年的收获会越来越多呢?

为了计算方便,假设 x = 1 x=1 x=1,即正常 W W W存一年,一年之后本息翻倍为2W。

结果发现

x = np.arange(1,100)
E = (1+1/x)**x
plt.plot(x,E)
plt.show()

最终这个值趋近于一个常数,这个常数就定义为 e e e,看来一年最多翻e倍,这个方法没办法发财了。但至少明白了一个著名的极限

e = lim ⁡ n → ∞ ( 1 + 1 n ) n = 2.7182818... e=\lim_{n\to\infty}(1+\frac{1}{n})^n=2.7182818... e=n→∞lim​(1+n1​)n=2.7182818...

当然,银行不太可能有翻倍这么爽的年利率,设为 x x x的话,则有

e x = ( lim ⁡ n → ∞ ( 1 + 1 n ) n ) x = lim ⁡ n → ∞ ( 1 + 1 n ) n x = lim ⁡ m → ∞ ( 1 + x m ) m e^x=(\lim_{n\to\infty}(1+\frac{1}{n})^n)^x=\lim_{n\to\infty}(1+\frac{1}{n})^{nx}=\lim_{m\to\infty}(1+\frac{x}{m})^m ex=(n→∞lim​(1+n1​)n)x=n→∞lim​(1+n1​)nx=m→∞lim​(1+mx​)m

很合理。

欧拉常数 γ \gamma γ

对 e e e两侧以 e e e为底取对数,可得

1 = lim ⁡ n → ∞ n ln ⁡ ( 1 + 1 n ) = lim ⁡ n → ∞ n ln ⁡ ( n + 1 n ) = lim ⁡ n → ∞ ln ⁡ ( n + 1 ) − ln ⁡ n 1 n 1=\lim_{n\to\infty}n\ln(1+\frac{1}{n})=\lim_{n\to\infty}n\ln(\frac{n+1}{n})=\lim_{n\to\infty}\frac{\ln(n+1)-\ln n}{\frac{1}{n}} 1=n→∞lim​nln(1+n1​)=n→∞lim​nln(nn+1​)=n→∞lim​n1​ln(n+1)−lnn​

根据这个式子,我们可以猜测

γ = ∑ n = 1 ∞ 1 n − ∑ n = 1 ∞ [ ln ⁡ ( n + 1 ) − ln ⁡ n ] = lim ⁡ N → ∞ ∑ n = 1 N 1 n − ln ⁡ N \gamma=\sum_{n=1}^\infty\frac{1}{n}-\sum_{n=1}^\infty[\ln(n+1)-\ln n]=\lim_{N\to\infty}\sum_{n=1}^N\frac{1}{n}-\ln N γ=n=1∑∞​n1​−n=1∑∞​[ln(n+1)−lnn]=N→∞lim​n=1∑N​n1​−lnN

是一个常数:

x = np.arange(1,10000)
# np.cumsum相当于求离散的“积分”
G = np.cumsum(1/x)-np.log(x)
plt.plot(x[:100],G[:100])
plt.show()

我们猜对了,这个常数即欧拉常数。

其证明过程也不复杂

ln ⁡ N = ∫ 1 N 1 x d x = ∫ 1 N 1 x + 1 ⌊ x ⌋ − 1 ⌊ x ⌋ d x = ∑ n = 1 N 1 n + ∫ 1 N 1 x − 1 ⌊ x ⌋ d x \begin{aligned} \ln N&=\int^N_1\frac{1}{x}\text dx=\int^N_1\frac{1}{x}+\frac{1}{\lfloor x\rfloor}-\frac{1}{\lfloor x\rfloor}\text dx\\ &=\sum_{n=1}^N\frac{1}{n}+\int^N_1\frac{1}{x}-\frac{1}{\lfloor x\rfloor}\text dx \end{aligned} lnN​=∫1N​x1​dx=∫1N​x1​+⌊x⌋1​−⌊x⌋1​dx=n=1∑N​n1​+∫1N​x1​−⌊x⌋1​dx​

令 − γ = ∫ 1 N 1 x − 1 ⌊ x ⌋ d x -\gamma=\int^N_1\frac{1}{x}-\frac{1}{\lfloor x\rfloor}\text dx −γ=∫1N​x1​−⌊x⌋1​dx,则

γ = ∫ 1 N x − ⌊ x ⌋ x ⌊ x ⌋ d x < ∫ 1 N 1 ⌊ x ⌋ 2 d x \gamma=\int^N_1\frac{x-\lfloor x\rfloor}{x\lfloor x\rfloor}\text dx<\int^N_1\frac{1}{\lfloor x\rfloor^2}\text dx γ=∫1N​x⌊x⌋x−⌊x⌋​dx<∫1N​⌊x⌋21​dx

则 γ \gamma γ收敛。

5 洛必达法则

令 N N N为常数,则常规的极限运算大致有以下几种

∞ ± N = ∞ ∞ ⋇ N = ∞ ( N ≠ 0 ) N ∔ ∞ = ∞ N − ∞ = − ∞ N / ∞ = 0 ± N / 0 = ± ∞ N ∞ = ∞ ( N ≠ 1 ) ∞ N = ∞ ( N ≠ 0 ) \begin{matrix} &\infty\pm N=\infty\quad&\infty\divideontimes N=\infty(N\not =0)& N\dotplus\infty=\infty\\ &N-\infty=-\infty& N/\infty=0& \pm N/0=\pm\infty\\ &N^\infty=\infty(N\not=1)\quad&\infty^N=\infty(N\not=0) \end{matrix} ​∞±N=∞N−∞=−∞N∞=∞(N​=1)​∞⋇N=∞(N​=0)N/∞=0∞N=∞(N​=0)​N∔∞=∞±N/0=±∞​

而常规情况之外的,就要通过洛必达法则来处理

0 0 , ∞ ∞ , 0 ⋅ ∞ , ∞ − ∞ , 0 0 , ∞ 0 , 1 ∞ \frac{0}{0}, \frac{\infty}{\infty}, 0\cdot\infty,\infty-\infty,0^0,\infty^0,1^\infty 00​,∞∞​,0⋅∞,∞−∞,00,∞0,1∞

对于 0 0 , ∞ ∞ \frac{0}{0}, \frac{\infty}{\infty} 00​,∞∞​而言,洛必达法则在形式上可以表示为

lim ⁡ x → a f ( x ) g ( x ) = lim ⁡ x → a f ′ ( x ) g ′ ( x ) \lim_{x\to a}\frac{f(x)}{g(x)}=\lim_{x\to a}\frac{f'(x)}{g'(x)} x→alim​g(x)f(x)​=x→alim​g′(x)f′(x)​

理解洛必达法则可从幂函数入手,假设 f ( x ) = x n f(x)=x^n f(x)=xn, g ( x ) = x m g(x)=x^m g(x)=xm,则 f ( x ) g ( x ) = x n − m \frac{f(x)}{g(x)}=x^{n-m} g(x)f(x)​=xn−m。当 x → 0 x\to0 x→0时,若 n − m > 0 n-m>0 n−m>0,则极限为无穷大,否则极限为0。

所以,尽管二者都为0,但0和0也有不同。问题是这种不同是否明显?如果定义域在 [ − 1 , 1 ] [-1,1] [−1,1]这个区间,则除了 y = x y=x y=x之外,其他几个函数在0附近的确区别不大

x = np.arange(-1.5,1.5,0.01)
lines = [plt.plot(x,x**n,label=f"n={n}",lw=0.5) for n in range(1,6)]
plt.legend()
plt.xlim(-1.5,1.5)
plt.ylim(-1.5,1.5)
plt.show()

然而随着坐标尺度的缩小,区别变得明显起来

x = np.arange(-0.1,0.1,1e-3)
lines = [plt.plot(x,x**n,label=f"n={n}",lw=0.5) for n in range(2,6)]
plt.legend()
plt.ylim(-1e-3,1e-3)
plt.show()

这意味着越是逼近0,不同阶数的幂函数将渐行渐远,如果看一下动画图或许会更好

from matplotlib import animationx = np.arange(-1e-2,1e-2,1e-5)fig = plt.figure(figsize=(9,4))
ax = fig.add_subplot(1,1,1)
lines = [ax.plot(x,x**n,label=f"n={n}",lw=0.5,scalex=True, scaley=True)[0] for n in range(2,10)]
plt.legend()Y = 1e-3
plt.ylim(-Y,Y)
def animate(i):d = Y*np.exp(-i/10)plt.ylim(-d,d)return linesani = FuncAnimation(fig, animate, interval=100, frames=300)
ani.save("py1-9.gif")plt.show()

回顾极限的定义,对于

lim ⁡ x → 0 x 3 x 2 = 0 \lim_{x\to0}\frac{x^3}{x^2}=0 x→0lim​x2x3​=0

意味着对于任意小的 ε \varepsilon ε,均能找到一个 X X X,当 x ∈ [ 0 , X ] x\in[0,X] x∈[0,X]时,有 x 3 x 2 < ε \frac{x^3}{x^2}<\varepsilon x2x3​<ε,这是显然的。

而我们之所以觉得“显然”,是因为我们接受了大量的指数运算的训练,而指数之间的运算又基于一条更简单的规则 x n x = x n − 1 \frac{x^n}{x}=x^{n-1} xxn​=xn−1。或许其真正的运算过程为

x 3 x 2 = x 3 x x 2 x = x 2 x = x \frac{x^3}{x^2}=\frac{\frac{x^3}{x}}{\frac{x^2}{x}}=\frac{x^2}{x}=x x2x3​=xx2​xx3​​=xx2​=x

受到这种运算形式的启发,对于一个相对复杂的表达式,或许可以对上式进行一点更改

lim ⁡ x → 0 f ( x ) g ( x ) = lim ⁡ x → 0 f ( x ) − 0 x g ( x ) − 0 x = 0 \lim_{x\to0}\frac{f(x)}{g(x)}= \lim_{x\to0}\frac{\frac{f(x)-0}{x}}{\frac{g(x)-0}{x} }=0 x→0lim​g(x)f(x)​=x→0lim​xg(x)−0​xf(x)−0​​=0

这个时候自然而然地出现了一个很熟悉的表达式 lim ⁡ x → 0 f ( x ) − 0 x \lim_{x\to0}\frac{f(x)-0}{x} limx→0​xf(x)−0​,正是

f ′ ( 0 ) = lim ⁡ x → 0 f ( 0 + x ) − f ( 0 ) x f'(0)=\lim_{x\to0}\frac{f(0+x)-f(0)}{x} f′(0)=x→0lim​xf(0+x)−f(0)​

所以,对于 f ( 0 ) = 0 f(0)=0 f(0)=0和 g ( 0 ) = 0 g(0)=0 g(0)=0的情况,可以存在

lim ⁡ x → 0 f ( x ) g ( x ) = f ′ ( 0 ) g ′ ( 0 ) \lim_{x\to0}\frac{f(x)}{g(x)}=\frac{f'(0)}{g'(0)} x→0lim​g(x)f(x)​=g′(0)f′(0)​

若 f ′ ( 0 ) f'(0) f′(0)和 g ′ ( 0 ) g'(0) g′(0)仍然同时为0,则继续洛,一直洛到祖坟上去。回顾一开始引入的重要极限,洛必达法则很好地验证了其正确性。

lim ⁡ x → 0 sin ⁡ ( x ) x = lim ⁡ x → 0 sin ⁡ ′ x x ′ = cos ⁡ 0 1 = 1 \lim_{x\to 0}\frac{\sin(x)}{x}=\lim_{x\to 0}\frac{\sin'x}{x'}=\frac{\cos0}{1}=1 x→0lim​xsin(x)​=x→0lim​x′sin′x​=1cos0​=1

可以画图验证一下二者在趋近于0时的特性

x = np.arange(-0.01,0.01,0.001)
plt.plot(x,x,label="x")
plt.plot(x,np.sin(x),label="sin x")
plt.legend()
plt.show()

由于实在靠的太近,根本看不出差别,所以用差的对数来表示一下

x = np.arange(0,0.01,1e-4)
ax = plt.subplot()
ax.plot(x,x-np.sin(x))
ax.set_yscale('log')
plt.show()

可见这个收敛速度是很快的,当 x = 0.002 x=0.002 x=0.002时,二者之间的差就已经达到了 1 0 − 9 10^{-9} 10−9。

用Python理解极限,看了这个就不会挂高数了相关推荐

  1. 极限中0除以常数_干货分享高数 | 极限的计算

    面对近在眼前的高数考试 你是否感到了一丝紧张 别怕 接下来的12天 我们一起回顾<高等数学一>(I) 让小牛助你一臂之力 高数专题安排表 话不多说,接下来,请大家拿出纸笔.我们即将进入高数 ...

  2. NLP实战:利用Python理解、分析和生成文本 | 赠书

    导读:本文内容参考自<自然语言处理实战:利用Python理解.分析和生成文本>一书,由Hobson Lane等人所著. 本书是介绍自然语言处理(NLP)和深度学习的实战书.NLP已成为深度 ...

  3. 0基础学python看什么书-0基础学Python入门书籍应该看什么?

    0基础学Python入门书籍应该看什么?Python 对不少人来说是谜一样的东西不知道如何下手.从何处下手,找了很多资源几个月过去了学习陷入换乱,没没能入门Python开发.出现这种情况大多是因为没有 ...

  4. python基础教程书籍推荐-初学者python入门必看书籍推荐(上)

    随着最近Python的热度上涨,学习的人数也在增多,也因为Python这门语言的简短.易学.语言优美的优点,吸引了很多人来学习它.初学者想要入门,就必须先通过阅读,学习大量的理论知识对Python有一 ...

  5. python 编程该看那些书籍_我用python5年后,我发现学python编程必看的三本书!

    非常喜欢python 我非常喜欢python,在前几年里,它一直是我热衷使用并不断研究的语言,迄今为止,python都非常友好并且易于学习! 它几乎可以做任何事,从简单的脚本创建.web,到数据可视化 ...

  6. python可视化案例书籍推荐_我用python5年后,我发现学python编程必看的三本书!...

    非常喜欢python 我非常喜欢python,在前几年里,它一直是我热衷使用并不断研究的语言,迄今为止,python都非常友好并且易于学习! 它几乎可以做任何事,从简单的脚本创建.web,到数据可视化 ...

  7. python怎么算二元一次方程_用python解决高数所有计算题--sympy求解极限、积分、微分、二元一次方程等...

    sympy是什么?Sympy是一个数学符号库(sym代表了symbol,符号),包括了积分,微分方程等各种数学运算方法,为python提供了强大的数学运算支持.对于图像来说,虽然都是做离散的计算,操作 ...

  8. python 编程该看那些书籍_python编程入门书籍-零基础学习Python编程,这8本书必看!...

    作为一名程序员,你肯定知道Python语言,从2017年开始Python的热度就一路飙升,已经成为大量开发者推荐入门的编程语言和第二编程语言,而且Python还是人工智能的主要编程语言,受到大众的追捧 ...

  9. python泰勒公式法求正弦函数_看完这篇让你高数不挂科之——泰勒公式

    本文始发于个人公众号:TechFlow,原创不易,求个关注 今天的文章我们来讨论大名鼎鼎的泰勒公式,泰勒公式真的非常有名,我相信上过高数课的一定都记得它的大名.即使你翘掉了所有的课,也一定会在考前重点 ...

最新文章

  1. 记一次工作中的小BUG
  2. svm最大间隔函数及目标函数推导
  3. thinkphp 第二节
  4. | dp-the Treasure Hunter
  5. 重磅福利!10本豆瓣平均8.0分技术书免费看!速来!
  6. Spring Boot单元测试入门实战之关于JUnit
  7. 台式计算机如何封存,一种计算机用声卡封存装置的制作方法
  8. 数据中心机房建设标准规范
  9. 【javaEE】——多线程进阶(锁策略:面试相关考点)04
  10. 小程序进阶-用户消息通知
  11. java桌面应用开发利器JavaFx
  12. 京东回归港股不是上岸,刘强东还有更大的杀招!
  13. 三维空间——点线面关系
  14. MyBatis面试题及答案
  15. 修改GitHub Pages个人主页的域名
  16. java系统随机产生10道加法运算,用户进行答题,答对一道题加10分,答错不加分
  17. 第四章 需求弹性和供给弹性分析
  18. 华为信息机与c3po包的冲突
  19. 适用于Windows 10的所有Microsoft PowerToys的全部解释
  20. 锐捷校园网登录---Linux

热门文章

  1. 新媒体运营教程:打造爆款活动方法及策略
  2. 适配器Adapter
  3. C语言面试题汇总(华为公司)
  4. Sonarqube的搭建和使用入门
  5. 极其好用的PC软件推荐
  6. RocketMq快速入门(详解)
  7. 无师自通-自己学写脚本,小明外挂脚本代码教程 转载
  8. 大学四年自学走来,这些私藏的【实用工具/学习网站】我贡献出来了
  9. 免费的在线字幕翻译工具
  10. EXP-EXP-00107