夹逼定理

如果 g ≤ f ≤ h,而 g 和 h 都趋于同一个 L,那么 f 别无选择只能也趋于 L。算不出来的东西,可以被夹出来。

11 分钟思维方法: 估算与放缩

不求精确值,先卡出它落在哪两个数之间

这一片为什么存在

到目前为止,你求极限的办法都是“算”:代入、约分、拆成几个已知极限去乘。但迟早会撞上一堵墙——比如 x→0 时的 sin(1/x),它在任意小的区间里都振荡无穷多次,没有任何代数变形能化简掉它,极限法则也拒绝服务,因为它自己就没有极限。这一片给你第二种手段:当一个函数算不动,就别再盯着它算,去找两个算得动的函数把它关起来。

内容

想象你在一条走廊里走。你看不见自己走的路线——可能歪歪扭扭,可能来回撞墙。但有两件事你确定:左墙始终在你左边,右墙始终在你右边。如果这两堵墙在前方某处合拢成一个点,那么不管你怎么走,你都必须到那个点。你的路线有多难看完全无所谓,因为结论不是从你的路线推出来的,而是从墙推出来的。

夹逼定理就是这句话的数学版本,它的全部价值就在这个“无所谓”上。

平时求极限是在提取信息:你要把 f 的精确行为一点点算出来。夹逼反过来,它要求你主动扔掉信息。“|sin(任何东西)| ≤ 1”这句话,扔掉了 sin(1/x) 的几乎全部内容——扔掉了它振荡多快、在每一点取什么值、有没有单调区间,只留下一条“它跑不出 [-1, 1]”。而恰恰是这一条就够了。放缩这类手法反直觉的地方正在这里:信息扔得越干净,能下的结论反而越硬——因为算不动的那部分,正是被你扔掉的那部分。

有三件事容易误会,值得先说清。

第一,墙不需要一路都在。极限是一个只关于“a 附近”的问题。x 离 a 很远的时候 f 有没有跑到墙外,跟 lim_{x→a} f 毫无关系。你只需要在某个包住 a 的小区间上(这个区间甚至可以不含 a 本身)不等式成立。硬要求“整个定义域上都成立”,只会让你白白放弃大量本来能用的界。

第二,两堵墙必须合拢到同一个点。如果左墙趋于 0 而右墙趋于 1,走廊在尽头还有一整段宽度,f 可以在里面永远晃荡——这时候不是“证不出来”,而是根本没有结论可言。sin(1/x) 自己就是最好的例子:−1 ≤ sin(1/x) ≤ 1 完全正确,两端也各自有极限,但一个是 −1 一个是 1,走廊没合拢;而 sin(1/x) 在 0 处确实没有极限。两件事对得上。

第三,被夹的那个函数可以烂到任何程度。x·sin(1/x) 在 0 的每个邻域里都振荡无穷多次,在任何小区间上都不单调,在 0 处甚至没有定义——这些性质一条都不进入论证。常见的说法是“sin(1/x) 没有极限,所以 x·sin(1/x) 也不该有”,这是把因子的性质当成了乘积的性质。乘上 x 之后振荡一点没少,但振幅被压向 0;夹逼看得见振幅,看不见振荡。

最后一件要预先讲明的:夹逼告诉你极限是几,不告诉你 f 长什么样。它不会吐出一个化简后的表达式,也不给你计算 f 的新办法——它是验证型工具,不是求解型工具。你得先有一个候选值 L,定理负责宣判。好在实践中 L 通常自己送上门:你把上下界的极限算出来的那一刻,L 已经在那儿了。

设 a 为实数,存在 δ₀ > 0,使得对所有满足 0 < |x − a| < δ₀ 的 x 都有
g(x) ≤ f(x) ≤ h(x)。
若 lim_{x→a} g(x) = L 且 lim_{x→a} h(x) = L(同一个 L),则 lim_{x→a} f(x) 存在,并且等于 L。

逐个交代符号:
· 0 < |x − a| < δ₀ 是 a 的去心邻域,即“a 附近,但不包括 a 这一点”。这正是上面“墙不需要一路都在”的形式化写法:δ₀ 要多小都行。挖掉 a 点,是因为极限从不询问 f(a)——f 在 a 处没定义(如 x·sin(1/x) 在 0 处)也照用不误。
· g、h 是下界与上界,二者都必须是你已经会求极限的函数;否则你只是把一个难题换成了两个。
· L 在假设里出现两次,必须是同一个符号。这不是书写上的省事,而是全部力量的唯一来源。
· 结论中的“存在”不是废话:你无需事先假定 lim f 存在。定理同时交付存在性与取值——这是它和极限法则的分水岭,后者必须各部分先有极限才肯开工。

为什么成立(ε–δ,一行):给定 ε > 0,取 δ₁ 使 0 < |x−a| < δ₁ 时 L − ε < g(x),取 δ₂ 使 0 < |x−a| < δ₂ 时 h(x) < L + ε,令 δ = min(δ₀, δ₁, δ₂)。则在去心 δ 邻域内
L − ε < g(x) ≤ f(x) ≤ h(x) < L + ε,
即 |f(x) − L| < ε。证毕。注意 f 自始至终只出现在中间那串不等号上,除此之外它的任何性质都没被用到。

同样的陈述对 x→a⁺、x→a⁻、x→±∞,以及数列形式 aₙ ≤ bₙ ≤ cₙ,逐字成立。

跟着做一遍

求 lim_{x→0} x·sin(1/x)。请自己先花两分钟试着用极限法则硬算一次,确认它为什么卡住,再往下看。

  1. 确认硬算走不通:乘积法则要求两个因子各自有极限,而 x→0 时 sin(1/x) 没有极限,法则用不了;也没有代数变形能消掉 1/x。于是放弃“算 f”,改为“夹 f”。
  2. 找界的唯一起点:无论 t 是什么,都有 |sin t| ≤ 1。取 t = 1/x 也不例外(x ≠ 0 时 1/x 总有意义)。两边乘以 |x| ≥ 0,得 |x·sin(1/x)| ≤ |x|。
  3. 去掉绝对值写成夹的形状:−|x| ≤ x·sin(1/x) ≤ |x|,对所有 x ≠ 0 成立。用 |x| 而不是 x 当上界,是为了不必分 x > 0 和 x < 0 讨论符号。
  4. 核对定理的条件:f 在 x = 0 处无定义,这不要紧——定理只要求不等式在 0 的某个去心邻域上成立,而这里对每一个 x ≠ 0 都成立,比要求的还强。
  5. 算两端:lim_{x→0} (−|x|) = 0,lim_{x→0} |x| = 0。两端极限相同,都是 0——走廊合拢了,这是能夹的前提,必须显式检查。
  6. 套用定理:g = −|x|,h = |x|,L = 0,故 lim_{x→0} x·sin(1/x) = 0。
  7. 抽检两条最极端的路线:沿 xₙ = 1/(2nπ + π/2),sin(1/xₙ) = 1,f(xₙ) = xₙ → 0(振幅最大处);沿 xₙ = 1/(nπ),f(xₙ) = 0(每次穿零处)。两者都趋于 0,与结论一致。
  8. 反过来看一眼,体会“同一个 L”有多关键:把 f 换成 sin(1/x) 本身,同一套界给出 −1 ≤ sin(1/x) ≤ 1,两端极限是 −1 和 1,不相等,定理无话可说——事实上该极限确实不存在。把走廊收窄的那个东西,是因子 x,不是 sin。

结果

lim_{x→0} x·sin(1/x) = 0。值得回看的是它怎么得到的:整个过程从未计算过 sin(1/x) 在任何一点的取值,只用了“它不超过 1”这一条。振荡没有被解决,它只是被证明为无关紧要——这就是夹逼的典型收益方式。

它在树上的位置

概念不是一篇一篇平铺的。下面两组是这一片真实的上下游:它靠着什么,又撑起了什么。

读完之后

这一页是产品里的一天。产品是那棵树:你学到哪、哪块在衰减、明天该学什么。一篇读物回答不了这三个问题,树才回答。

看看那是什么意思