∫π每天一道数学题
← 返回数学分析
数学分析 · 第 2 讲 · 2026-09-28 · 约 11 分钟

第2讲 ε-δ 逐字拆解——一句话凭什么管住了所有函数

上一讲讲了三百年官司怎么收场,这一讲讲收场那句话本身。为什么是"先 ε 后 δ"?0 小于 |x-a| 里的 0 是什么意思?一个完整的 ε-δ 证明怎么写?以及这个定义顺手带出来的三件狠武器:删去邻域、极限的否定、海涅归结原则。

上一讲结尾说,魏尔斯特拉斯把"越来越近"换成了一句静态的话:

∀ε>0, ∃δ>0, 使当 0<∣x−a∣<δ 时, ∣f(x)−L∣<ε\forall \varepsilon > 0,\ \exists \delta > 0,\ \text{使当}\ 0 < |x-a| < \delta\ \text{时,}\ |f(x)-L| < \varepsilon

这一讲讲这句话本身。

它看起来像一行咒语——大部分学生背下来,用来应付考试,然后忘掉。但这句话如果真读懂了,你会发现它干了一件极其漂亮的事:用一句话,把"所有函数的所有趋近方式"一次性管住了。

我们一句一句拆。

先看它在防什么

在拆之前,先知道敌人是谁。

"越来越近"这个词为什么不能用?因为它至少有三个漏洞。你随口说 "x→0x \to 0 时 f(x)→1f(x) \to 1",有人可以问你:

第一,从哪边近? 从正方向近(0.1, 0.01, 0.001, …)和从负方向近(-0.1, -0.01, …)结果一样吗?比如 f(x)=x∣x∣f(x) = \dfrac{x}{|x|},正方向近过去极限是 1,负方向近过去是 -1。那"趋近于"到底是多少?

第二,怎么个近法? 必须是连续地滑过去吗?跳着行不行?数列 0.1,0.001,0.01,0.0001,0.001,…0.1, 0.001, 0.01, 0.0001, 0.001, … 这样忽远忽近,算不算趋近?f(x)=sin⁡(1/x)f(x) = \sin(1/x) 在 x→0x \to 0 时永远在 -1 和 1 之间疯抖,你硬要说它"趋近于 0",我能不能说它趋近于 0.5?

第三,凭什么它不会中途掉下去? 你看 x=0.1,0.01,0.001x = 0.1, 0.01, 0.001 三点都在趋近,怎么保证第 10610^6 个点不出幺蛾子?

ε-δ 这句话,把这三个漏洞一次性全堵了。逐字看。

逐个符号拆

∀ε>0\forall \varepsilon > 0——你随便报,多小都行

ε\varepsilon 是容许误差,就是你要求 f(x)f(x) 离 LL 有多近。∀\forall 是说:你报多少我接多少,10−310^{-3}、10−1010^{-10}、比你想象的任何数都小的正数,都算。

这不是形式主义。它对应的是"敌人"的第三条:只看几个点没用,你得对付所有精度。 有人拿"看起来很近"说事,∀ε>0\forall \varepsilon > 0 的意思是:我认的"很近"是由你定义的,你多严格我多严格。

这里有个细节:ε>0\varepsilon > 0 是严格大于。你不能报 ε=0\varepsilon = 0。因为要求 ∣f(x)−L∣<0|f(x) - L| < 0 就是说 f(x)=Lf(x) = L,那是另一回事。这个专门留出的口子,是为了让"趋近"不等于"到达"。

∃δ>0\exists \delta > 0——我能找出一个范围

δ\delta 是输入侧的范围。∃\exists 是说:只要你给了 ε\varepsilon,我就能找到一个 δ\delta,在 aa 的左右各 δ\delta 这么宽的一条带里,函数值跑不出 LL 的 ε\varepsilon 邻域。

注意这个顺序:先有 ε\varepsilon,后有 δ\delta。 δ\delta 是跟着 ε\varepsilon 变的,是 ε\varepsilon 的函数。你要求越严(ε\varepsilon 越小),我给的范围通常就得越窄(δ\delta 越小)。

顺序为什么致命:量词不能换

这是整句话的命门,单独拿出来说。

∀ε>0, ∃δ>0\forall \varepsilon > 0,\ \exists \delta > 0

读作:对每一个 ε\varepsilon,存在一个 δ\delta。

如果换成:

∃δ>0, ∀ε>0\exists \delta > 0,\ \forall \varepsilon > 0

读作:存在一个 δ\delta,对每一个 ε\varepsilon 都成立。

后者是什么意思?——存在一个范围,无论你把精度提得多高,这个范围都管用。翻译一下:在这个范围内,函数值等于 LL。

那不是极限,那是"函数在某处恒等于 LL"。整个定义塌了。

顺序换一下,命题从"一个关于趋势的承诺"变成"一个荒谬的强要求"。 这是数理逻辑第一次在数学定义里显出它的威力:量词顺序不是书写习惯,是定义的一部分。

0<∣x−a∣<δ0 < |x-a| < \delta——为什么偏偏有个 0

这是最容易被跳过、但信息量最大的一块。

∣x−a∣<δ|x - a| < \delta 好理解:xx 落在 aa 的 δ\delta 邻域里。但前面那个 0<0 < 是在说:把 x=ax = a 这一点挖掉。

为什么挖掉?因为极限根本不关心 f(a)f(a) 等于几,甚至不关心 f(a)f(a) 有没有定义。

最好的例子还是 sin⁡xx\dfrac{\sin x}{x}。这个函数在 x=0x = 0 处没有定义(分母是 0),但它在 x=0x = 0 处的极限存在,等于 1。

如果定义里不挖掉 x=ax = a,那 sin⁡xx\dfrac{\sin x}{x} 在 0 处连极限都不能谈——而它恰恰是全微积分最重要的极限之一。

这个"挖掉一点的邻域"有专门名字,叫去心邻域(deleted neighbourhood),有时也叫空心邻域。中文教材里有时写作 0<∣x−x0∣<δ0 < |x - x_0| < \delta,说的就是这个。

记住这一条:极限是趋势,不是终点。 一个函数在某个点的极限存在,跟那个点上函数有没有定义、值是多少,毫无关系。

这条直觉很重要,因为它直接连到高中的裂缝:你们课本上为了算 sin⁡xx\dfrac{\sin x}{x} 在 0 点的极限,在 x=0x=0 处"补定义"成 1,然后说这个函数连续了。那个"补"字,高中不给理由,这里给了:因为极限不看你这一点的值,所以你补成什么,都不影响极限。

∣f(x)−L∣<ε|f(x) - L| < \varepsilon——函数跑不出这个带

最后是结论:在去心邻域里,函数值必须在 LL 的 ε\varepsilon 邻域里。即 L−ε<f(x)<L+εL - \varepsilon < f(x) < L + \varepsilon。

在图上,就是横向的带里,函数曲线钻不出两条平行线夹出的走廊。

ε-δ 定义的几何含义:一条钻不出去的走廊

δ 决定走廊的宽窄,ε 决定走廊的高度;你报 ε,我给 δ,让曲线钻不出去

一个完整的证明怎么写

定义背下来不算懂。得用它干一件事。

题目:证明 lim⁡x→0sin⁡xx=1\lim\limits_{x \to 0} \dfrac{\sin x}{x} = 1。

这个证明在数学分析里有标准打法,用夹逼。完整写一遍,你就能看出 ε-δ 是怎么当工具用的。

第一步:在单位圆上比面积。 设 0<x<π20 < x < \dfrac{\pi}{2}(先只证右边,左边用偶函数性质对称得到)。画单位圆,割出一个圆心角为 xx 的扇形。比较三个面积:

S△OAB<S扇形OAB<S△OACS_{\triangle OAB} < S_{\text{扇形}OAB} < S_{\triangle OAC}

其中 BB 是圆上点 (1,0)(1, 0) 转 xx 角后的位置,CC 是切线与 xx 轴正向的交点。算出来:

12sin⁡x<12x<12tan⁡x\frac{1}{2}\sin x < \frac{1}{2}x < \frac{1}{2}\tan x

第二步:变形成 sin⁡xx\dfrac{\sin x}{x}。 三个正数同除 12sin⁡x\dfrac{1}{2}\sin x:

1<xsin⁡x<1cos⁡x1 < \frac{x}{\sin x} < \frac{1}{\cos x}

取倒数(不等号反向):

cos⁡x<sin⁡xx<1\cos x < \frac{\sin x}{x} < 1

第三步:夹逼。 当 x→0+x \to 0^+ 时,左边 cos⁡x→1\cos x \to 1,右边恒等于 1。所以:

1≤lim⁡x→0+sin⁡xx≤11 \le \lim_{x \to 0^+} \frac{\sin x}{x} \le 1

只有一种可能:极限等于 1。

第四步:对称到左边。 因为 sin⁡(−x)−x=sin⁡xx\dfrac{\sin(-x)}{-x} = \dfrac{\sin x}{x}(分子分母同号),这是偶函数,右边的结论直接搬到左边。

第五步,也是这一讲的重点:怎么把"夹逼得到 1"翻译成 ε-δ 的话。

你手里已经知道:

∣sin⁡xx−1∣≤1−cos⁡x\left|\frac{\sin x}{x} - 1\right| \le 1 - \cos x

而 1−cos⁡x=2sin⁡2x2≤2⋅(x2)2=x221 - \cos x = 2\sin^2\dfrac{x}{2} \le 2 \cdot \left(\dfrac{x}{2}\right)^2 = \dfrac{x^2}{2}(用了 ∣sin⁡u∣≤∣u∣|\sin u| \le |u|)。

所以:

∣sin⁡xx−1∣≤x22\left|\frac{\sin x}{x} - 1\right| \le \frac{x^2}{2}

现在接 ε-δ。任给 ε>0\varepsilon > 0,我要找一个 δ\delta,使 0<∣x∣<δ0 < |x| < \delta 时左边小于 ε\varepsilon。 从 x22<ε\dfrac{x^2}{2} < \varepsilon 反解:

∣x∣<2ε|x| < \sqrt{2\varepsilon}

取 δ=2ε\delta = \sqrt{2\varepsilon}。验算:当 0<∣x∣<δ0 < |x| < \delta 时,

∣sin⁡xx−1∣≤x22<δ22=ε\left|\frac{\sin x}{x} - 1\right| \le \frac{x^2}{2} < \frac{\delta^2}{2} = \varepsilon

证毕。

看出套路了吗?ε-δ 证明的通用打法:从你要的结论 ∣f(x)−L∣<ε|f(x)-L| < \varepsilon 出发,把左边放大成一个只含 ∣x−a∣|x-a| 的简单式子,让那个式子 <ε< \varepsilon,反解出 δ\delta,再正着写一遍。 上面 2ε\sqrt{2\varepsilon} 这个 δ\delta 就是这么倒推出来的。

顺手带出来的三件狠武器

ε-δ 定义除了管住极限本身,还顺手解决了三个大问题。

武器一:极限的否定——怎么证明一个极限不存在

定义是 ∀ε,∃δ\forall \varepsilon, \exists \delta。它的否定就是:

∃ε>0, ∀δ>0, ∃x:0<∣x−a∣<δ 但 ∣f(x)−L∣≥ε\exists \varepsilon > 0,\ \forall \delta > 0,\ \exists x: 0 < |x-a| < \delta \ \text{但}\ |f(x)-L| \ge \varepsilon

读作:你报一个 LL,我就能找到一个误差范围,在这个误差范围内,永远有点让函数值不达标。

意思就是:要否定一个极限,不需要检查所有点,只需要找到一个躲不掉的"捣乱精度"。

这解释了一类高中永远讲不清的题——"证明 lim⁡x→0sin⁡1x\lim\limits_{x \to 0} \sin\dfrac{1}{x} 不存在"。答案是:你随便说极限是 LL,我取 ε=1\varepsilon = 1,根据介值性质,xx 任意接近 0 时 sin⁡(1/x)\sin(1/x) 都能取到 +1 和 -1,总有一个离 LL 超过 1。所以无论你报什么 LL,都不成立。

武器二:函数极限和数列极限是同一件事

有个定理叫海涅归结原则(Heine 定理):

lim⁡x→af(x)=L  ⟺  对任意 xn→a (且 xn≠a), 都有 f(xn)→L\lim_{x \to a} f(x) = L \iff \text{对任意}\ x_n \to a\ (\text{且}\ x_n \ne a),\ \text{都有}\ f(x_n) \to L

读作:函数极限存在且等于 LL,等价于——你用任何方式逼近 aa,得到的函数值数列都收敛到同一个 LL。

这句话的杀伤力在于:它把"函数极限"这个连续的东西,换成了"数列极限"这个离散的东西。而数列极限在数学上更好处理(可以数、可以夹、可以递归构造)。

它还给了一个证明极限不存在的神器:要否定函数极限,只需要构造一个 xn→ax_n \to a,使 f(xn)f(x_n) 不收敛到你说的那个值。

比如 sin⁡(1/x)\sin(1/x):取 xn=12nπ+π/2x_n = \dfrac{1}{2n\pi + \pi/2},则 xn→0x_n \to 0 而 f(xn)=1f(x_n) = 1;再取 yn=12nπ+3π/2y_n = \dfrac{1}{2n\pi + 3\pi/2},也有 yn→0y_n \to 0 而 f(yn)=−1f(y_n) = -1。同一个点、两种趋近,两个不同结果,所以极限不存在。

这是"函数的问题"转化成"数列的问题"的第一座桥。 后面的课程里我们会反复用到它。

武器三:连续的定义就是它自己

把定义里的 LL 换成 f(a)f(a),∣f(x)−L∣<ε|f(x) - L| < \varepsilon 换成 ∣f(x)−f(a)∣<ε|f(x) - f(a)| < \varepsilon,再去掉那个 0<0 < :

∀ε>0, ∃δ>0, 使当 ∣x−a∣<δ 时, ∣f(x)−f(a)∣<ε\forall \varepsilon > 0,\ \exists \delta > 0,\ \text{使当}\ |x-a| < \delta\ \text{时,}\ |f(x)-f(a)| < \varepsilon

这就是连续的定义。

看出来了吗——函数在一点连续,就是"极限等于函数值",而"极限等于"这个意思,ε-δ 一句话就说清了。

高中课本说"连续就是图像不断开"。那个定义不是错,是不能用——因为"不断开"是眼睛看的,ε-δ 是算出来的。你可以用 ε-δ 证明 sin⁡x\sin x 连续,但你怎么用"看起来没断"证明它?

武器二和三的关系

顺带说一句:海涅定理和连续的定义看似无关,其实是同一个武器的两个方向。一个把"趋近"拆成数列,一个把"趋势"换成"静态不等式"。 都是把模糊变清楚。

讲个题外话:δ 是哪来的

最后说个有意思的。ε\varepsilon 这个字母是柯西 1823 年引入的(对应英文 error,误差)。δ\delta 用得稍晚,通行说法是取自差分 difference。

为什么是希腊字母?19 世纪的欧洲数学界有个不成文规矩:新概念先用没被占用的字母。 拉丁字母早就被物理量、常数、几何点占满了,希腊字母表还空着一半。ε\varepsilon、δ\delta、η\eta、θ\theta 都是这么被征用的。

顺带说一句:ε\varepsilon 和 δ\delta 这个名字是后人追加的。魏尔斯特拉斯本人当初没有说"我这个 ε\varepsilon 就是 error"——他定义写在了讲义和通信里,符号系统是后来才定型的。今天我们说的"ε-δ 语言",是数学史给它的名字。

思考与拓展

  1. 证明 lim⁡x→3(2x−1)=5\lim\limits_{x \to 3}(2x - 1) = 5。(提示:∣2x−1−5∣=2∣x−3∣|2x-1-5| = 2|x-3|,线性函数最好证。)
  2. 证明 lim⁡x→1(x2+1)=2\lim\limits_{x \to 1}(x^2 + 1) = 2。(提示:∣x2−1∣=∣x+1∣∣x−1∣|x^2 - 1| = |x+1||x-1|,先把 ∣x+1∣|x+1| 在 xx 接近 1 时界住。)
  3. 用 ε-δ 定义证明:lim⁡x→0xsin⁡1x=0\lim\limits_{x \to 0} x \sin\dfrac{1}{x} = 0。(提示:这个极限存在,但 sin⁡(1/x)\sin(1/x) 本身在 0 点疯抖,说明函数疯抖不必然导致乘积疯抖。)
  4. 为什么 lim⁡x→0f(x)=L\lim\limits_{x \to 0} f(x) = L 的定义里,不能把 0<∣x−a∣<δ0 < |x-a| < \delta 改成 0<∣x−a∣≤δ0 < |x-a| \le \delta?改成 ≤\le 会出什么问题?
  5. 海涅定理说函数极限可以转成数列极限。那 x→∞x \to \infty 的极限呢?你想怎么改这句话?

一句话总结

ε-δ 不是什么咒语,它是一个承诺:你报任意误差 ε,我就能给出一个范围 δ;量词的顺序、那个挖掉的 0、夹逼时的放缩法——每一处都在堵一个「越来越近」堵不上的漏洞。

附:本文涉及的史实出处

  • ε 与 δ 符号:ε 由柯西于 1823 年引入(取自 error),δ 沿用差分 difference;魏尔斯特拉斯 1861 年给出完整定义
  • 海涅归结原则:海涅(Heine),19 世纪,沟通函数极限与数列极限
  • ε-δ 定义的标准教材形式见任意一本数学分析教科书(如华东师大版《数学分析》第一章)
  • lim⁡x→0sin⁡xx=1\lim_{x\to 0}\dfrac{\sin x}{x}=1 的夹逼证明与 δ=2ε\delta = \sqrt{2\varepsilon} 的取法,为标准结果
— Y. · 2026-09-28