用R语言理解洛必达法则

文章目录

    • 5 洛必达法则
      • 极限的种类
      • 洛必达法则作用于幂函数

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/∞=0N=(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)} xalimg(x)f(x)=xalimg(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)=xnm。当 x → 0 x\to0 x0时,若 n − m > 0 n-m>0 nm>0,则极限为无穷大,否则极限为0。

所以,尽管二者都为0,但0和0也有不同。问题是这种不同是否明显?如果定义域在 [ − 1 , 1 ] [-1,1] [1,1]这个区间,的确看不出太多的区别

x = seq(-1,1,0.01)  #生成等差数列
plot(x,x^2,type='l')
lines(x,x^3)
lines(x,x^4)
lines(x,x^5)
lines(x,x^6)

用R语言理解洛必达法则_第1张图片

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

> x = seq(-0.1,0.1,0.001)
> plot(x,x^2,type='l')
> lines(x,x^3)

用R语言理解洛必达法则_第2张图片

这意味着越是逼近0,不同阶数的幂函数将渐行渐远,回顾极限的定义,对于

lim ⁡ x → 0 x 3 x 2 = 0 \lim_{x\to0}\frac{x^3}{x^2}=0 x0limx2x3=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=xn1。或许其真正的运算过程为

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=xx2xx3=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 x0limg(x)f(x)=x0limxg(x)0xf(x)0=0

这个时候我们就发现了一个很熟悉的表达式 lim ⁡ x → 0 f ( x ) − 0 x \lim_{x\to0}\frac{f(x)-0}{x} limx0xf(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)=x0limxf(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)} x0limg(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 x0limxsin(x)=x0limxsinx=1cos0=1

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

x = seq(-0.01,0.01,0.001)
plot(x,x,ylab="x/sin(x)")
lines(x,sin(x),col='red')

用R语言理解洛必达法则_第3张图片

由于实在靠的太近,所以用差的对数来表示一下

x = seq(-0.1,0.1,0.001)
err = log(abs(x-sin(x)),10)
plot(x,err,type='l')

用R语言理解洛必达法则_第4张图片

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

你可能感兴趣的:(R语言,微积分,R语言,数学基础,洛必达法则)