重讀微積分(一):極限
重讀微積分(二):三個極限常數的來源
本系列所有代碼都用R語言完成。
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→alimg(x)f(x)=x→alimg′(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]這個區間,的确看不出太多的差別
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)
然而随着我們縮小坐标的尺度,差別就變得明顯起來
> x = seq(-0.1,0.1,0.001)
> plot(x,x^2,type='l')
> lines(x,x^3)
這意味着越是逼近0,不同階數的幂函數将漸行漸遠,回顧極限的定義,對于
lim x → 0 x 3 x 2 = 0 \lim_{x\to0}\frac{x^3}{x^2}=0 x→0limx2x3=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=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 x→0limg(x)f(x)=x→0limxg(x)−0xf(x)−0=0
這個時候我們就發現了一個很熟悉的表達式 lim x → 0 f ( x ) − 0 x \lim_{x\to0}\frac{f(x)-0}{x} limx→0xf(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→0limxf(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→0limg(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→0limxsin(x)=x→0limx′sin′x=1cos0=1
可以畫圖驗證一下二者在趨近于0時的特性
x = seq(-0.01,0.01,0.001)
plot(x,x,ylab="x/sin(x)")
lines(x,sin(x),col='red')
由于實在靠的太近,是以用差的對數來表示一下
x = seq(-0.1,0.1,0.001)
err = log(abs(x-sin(x)),10)
plot(x,err,type='l')
可見這個收斂速度是很快的,當 x = 0.001 x=0.001 x=0.001時,二者之間的差就已經達到了 1 0 − 9 10^{-9} 10−9。