上一讲讲了三百年官司怎么收场,这一讲讲收场那句话本身。为什么是"先 ε 后 δ"?0 小于 |x-a| 里的 0 是什么意思?一个完整的 ε-δ 证明怎么写?以及这个定义顺手带出来的三件狠武器:删去邻域、极限的否定、海涅归结原则。
上一讲结尾说,魏尔斯特拉斯把"越来越近"换成了一句静态的话:
∀ε>0, ∃δ>0, 使当 0<∣x−a∣<δ 时, ∣f(x)−L∣<ε
这一讲讲这句话本身。
它看起来像一行咒语——大部分学生背下来,用来应付考试,然后忘掉。但这句话如果真读懂了,你会发现它干了一件极其漂亮的事:用一句话,把"所有函数的所有趋近方式"一次性管住了。
我们一句一句拆。
先看它在防什么
在拆之前,先知道敌人是谁。
"越来越近"这个词为什么不能用?因为它至少有三个漏洞。你随口说 "x→0 时 f(x)→1",有人可以问你:
第一,从哪边近? 从正方向近(0.1, 0.01, 0.001, …)和从负方向近(-0.1, -0.01, …)结果一样吗?比如 f(x)=∣x∣x,正方向近过去极限是 1,负方向近过去是 -1。那"趋近于"到底是多少?
第二,怎么个近法? 必须是连续地滑过去吗?跳着行不行?数列 0.1,0.001,0.01,0.0001,0.001,… 这样忽远忽近,算不算趋近?f(x)=sin(1/x) 在 x→0 时永远在 -1 和 1 之间疯抖,你硬要说它"趋近于 0",我能不能说它趋近于 0.5?
第三,凭什么它不会中途掉下去? 你看 x=0.1,0.01,0.001 三点都在趋近,怎么保证第 106 个点不出幺蛾子?
ε-δ 这句话,把这三个漏洞一次性全堵了。逐字看。
逐个符号拆
∀ε>0——你随便报,多小都行
ε 是容许误差,就是你要求 f(x) 离 L 有多近。∀ 是说:你报多少我接多少,10−3、10−10、比你想象的任何数都小的正数,都算。
这不是形式主义。它对应的是"敌人"的第三条:只看几个点没用,你得对付所有精度。 有人拿"看起来很近"说事,∀ε>0 的意思是:我认的"很近"是由你定义的,你多严格我多严格。
这里有个细节:ε>0 是严格大于。你不能报 ε=0。因为要求 ∣f(x)−L∣<0 就是说 f(x)=L,那是另一回事。这个专门留出的口子,是为了让"趋近"不等于"到达"。
∃δ>0——我能找出一个范围
δ 是输入侧的范围。∃ 是说:只要你给了 ε,我就能找到一个 δ,在 a 的左右各 δ 这么宽的一条带里,函数值跑不出 L 的 ε 邻域。
注意这个顺序:先有 ε,后有 δ。 δ 是跟着 ε 变的,是 ε 的函数。你要求越严(ε 越小),我给的范围通常就得越窄(δ 越小)。
顺序为什么致命:量词不能换
这是整句话的命门,单独拿出来说。
∀ε>0, ∃δ>0
读作:对每一个 ε,存在一个 δ。
如果换成:
∃δ>0, ∀ε>0
读作:存在一个 δ,对每一个 ε 都成立。
后者是什么意思?——存在一个范围,无论你把精度提得多高,这个范围都管用。翻译一下:在这个范围内,函数值等于 L。
那不是极限,那是"函数在某处恒等于 L"。整个定义塌了。
顺序换一下,命题从"一个关于趋势的承诺"变成"一个荒谬的强要求"。 这是数理逻辑第一次在数学定义里显出它的威力:量词顺序不是书写习惯,是定义的一部分。
0<∣x−a∣<δ——为什么偏偏有个 0
这是最容易被跳过、但信息量最大的一块。
∣x−a∣<δ 好理解:x 落在 a 的 δ 邻域里。但前面那个 0< 是在说:把 x=a 这一点挖掉。
为什么挖掉?因为极限根本不关心 f(a) 等于几,甚至不关心 f(a) 有没有定义。
最好的例子还是 xsinx。这个函数在 x=0 处没有定义(分母是 0),但它在 x=0 处的极限存在,等于 1。
如果定义里不挖掉 x=a,那 xsinx 在 0 处连极限都不能谈——而它恰恰是全微积分最重要的极限之一。
这个"挖掉一点的邻域"有专门名字,叫去心邻域(deleted neighbourhood),有时也叫空心邻域。中文教材里有时写作 0<∣x−x0∣<δ,说的就是这个。
记住这一条:极限是趋势,不是终点。 一个函数在某个点的极限存在,跟那个点上函数有没有定义、值是多少,毫无关系。
这条直觉很重要,因为它直接连到高中的裂缝:你们课本上为了算 xsinx 在 0 点的极限,在 x=0 处"补定义"成 1,然后说这个函数连续了。那个"补"字,高中不给理由,这里给了:因为极限不看你这一点的值,所以你补成什么,都不影响极限。
∣f(x)−L∣<ε——函数跑不出这个带
最后是结论:在去心邻域里,函数值必须在 L 的 ε 邻域里。即 L−ε<f(x)<L+ε。
在图上,就是横向的带里,函数曲线钻不出两条平行线夹出的走廊。

δ 决定走廊的宽窄,ε 决定走廊的高度;你报 ε,我给 δ,让曲线钻不出去
一个完整的证明怎么写
定义背下来不算懂。得用它干一件事。
题目:证明 x→0limxsinx=1。
这个证明在数学分析里有标准打法,用夹逼。完整写一遍,你就能看出 ε-δ 是怎么当工具用的。
第一步:在单位圆上比面积。 设 0<x<2π(先只证右边,左边用偶函数性质对称得到)。画单位圆,割出一个圆心角为 x 的扇形。比较三个面积:
S△OAB<S扇形OAB<S△OAC
其中 B 是圆上点 (1,0) 转 x 角后的位置,C 是切线与 x 轴正向的交点。算出来:
21sinx<21x<21tanx
第二步:变形成 xsinx。 三个正数同除 21sinx:
1<sinxx<cosx1
取倒数(不等号反向):
cosx<xsinx<1
第三步:夹逼。 当 x→0+ 时,左边 cosx→1,右边恒等于 1。所以:
1≤x→0+limxsinx≤1
只有一种可能:极限等于 1。
第四步:对称到左边。 因为 −xsin(−x)=xsinx(分子分母同号),这是偶函数,右边的结论直接搬到左边。
第五步,也是这一讲的重点:怎么把"夹逼得到 1"翻译成 ε-δ 的话。
你手里已经知道:
xsinx−1≤1−cosx
而 1−cosx=2sin22x≤2⋅(2x)2=2x2(用了 ∣sinu∣≤∣u∣)。
所以:
xsinx−1≤2x2
现在接 ε-δ。任给 ε>0,我要找一个 δ,使 0<∣x∣<δ 时左边小于 ε。 从 2x2<ε 反解:
∣x∣<2ε
取 δ=2ε。验算:当 0<∣x∣<δ 时,
xsinx−1≤2x2<2δ2=ε
证毕。
看出套路了吗?ε-δ 证明的通用打法:从你要的结论 ∣f(x)−L∣<ε 出发,把左边放大成一个只含 ∣x−a∣ 的简单式子,让那个式子 <ε,反解出 δ,再正着写一遍。 上面 2ε 这个 δ 就是这么倒推出来的。
顺手带出来的三件狠武器
ε-δ 定义除了管住极限本身,还顺手解决了三个大问题。
武器一:极限的否定——怎么证明一个极限不存在
定义是 ∀ε,∃δ。它的否定就是:
∃ε>0, ∀δ>0, ∃x:0<∣x−a∣<δ 但 ∣f(x)−L∣≥ε
读作:你报一个 L,我就能找到一个误差范围,在这个误差范围内,永远有点让函数值不达标。
意思就是:要否定一个极限,不需要检查所有点,只需要找到一个躲不掉的"捣乱精度"。
这解释了一类高中永远讲不清的题——"证明 x→0limsinx1 不存在"。答案是:你随便说极限是 L,我取 ε=1,根据介值性质,x 任意接近 0 时 sin(1/x) 都能取到 +1 和 -1,总有一个离 L 超过 1。所以无论你报什么 L,都不成立。
武器二:函数极限和数列极限是同一件事
有个定理叫海涅归结原则(Heine 定理):
x→alimf(x)=L⟺对任意 xn→a (且 xn=a), 都有 f(xn)→L
读作:函数极限存在且等于 L,等价于——你用任何方式逼近 a,得到的函数值数列都收敛到同一个 L。
这句话的杀伤力在于:它把"函数极限"这个连续的东西,换成了"数列极限"这个离散的东西。而数列极限在数学上更好处理(可以数、可以夹、可以递归构造)。
它还给了一个证明极限不存在的神器:要否定函数极限,只需要构造一个 xn→a,使 f(xn) 不收敛到你说的那个值。
比如 sin(1/x):取 xn=2nπ+π/21,则 xn→0 而 f(xn)=1;再取 yn=2nπ+3π/21,也有 yn→0 而 f(yn)=−1。同一个点、两种趋近,两个不同结果,所以极限不存在。
这是"函数的问题"转化成"数列的问题"的第一座桥。 后面的课程里我们会反复用到它。
武器三:连续的定义就是它自己
把定义里的 L 换成 f(a),∣f(x)−L∣<ε 换成 ∣f(x)−f(a)∣<ε,再去掉那个 0<:
∀ε>0, ∃δ>0, 使当 ∣x−a∣<δ 时, ∣f(x)−f(a)∣<ε
这就是连续的定义。
看出来了吗——函数在一点连续,就是"极限等于函数值",而"极限等于"这个意思,ε-δ 一句话就说清了。
高中课本说"连续就是图像不断开"。那个定义不是错,是不能用——因为"不断开"是眼睛看的,ε-δ 是算出来的。你可以用 ε-δ 证明 sinx 连续,但你怎么用"看起来没断"证明它?
武器二和三的关系
顺带说一句:海涅定理和连续的定义看似无关,其实是同一个武器的两个方向。一个把"趋近"拆成数列,一个把"趋势"换成"静态不等式"。 都是把模糊变清楚。
讲个题外话:δ 是哪来的
最后说个有意思的。ε 这个字母是柯西 1823 年引入的(对应英文 error,误差)。δ 用得稍晚,通行说法是取自差分 difference。
为什么是希腊字母?19 世纪的欧洲数学界有个不成文规矩:新概念先用没被占用的字母。 拉丁字母早就被物理量、常数、几何点占满了,希腊字母表还空着一半。ε、δ、η、θ 都是这么被征用的。
顺带说一句:ε 和 δ 这个名字是后人追加的。魏尔斯特拉斯本人当初没有说"我这个 ε 就是 error"——他定义写在了讲义和通信里,符号系统是后来才定型的。今天我们说的"ε-δ 语言",是数学史给它的名字。
思考与拓展
- 证明 x→3lim(2x−1)=5。(提示:∣2x−1−5∣=2∣x−3∣,线性函数最好证。)
- 证明 x→1lim(x2+1)=2。(提示:∣x2−1∣=∣x+1∣∣x−1∣,先把 ∣x+1∣ 在 x 接近 1 时界住。)
- 用 ε-δ 定义证明:x→0limxsinx1=0。(提示:这个极限存在,但 sin(1/x) 本身在 0 点疯抖,说明函数疯抖不必然导致乘积疯抖。)
- 为什么 x→0limf(x)=L 的定义里,不能把 0<∣x−a∣<δ 改成 0<∣x−a∣≤δ?改成 ≤ 会出什么问题?
- 海涅定理说函数极限可以转成数列极限。那 x→∞ 的极限呢?你想怎么改这句话?
一句话总结
ε-δ 不是什么咒语,它是一个承诺:你报任意误差 ε,我就能给出一个范围 δ;量词的顺序、那个挖掉的 0、夹逼时的放缩法——每一处都在堵一个「越来越近」堵不上的漏洞。
附:本文涉及的史实出处
- ε 与 δ 符号:ε 由柯西于 1823 年引入(取自 error),δ 沿用差分 difference;魏尔斯特拉斯 1861 年给出完整定义
- 海涅归结原则:海涅(Heine),19 世纪,沟通函数极限与数列极限
- ε-δ 定义的标准教材形式见任意一本数学分析教科书(如华东师大版《数学分析》第一章)
- limx→0xsinx=1 的夹逼证明与 δ=2ε 的取法,为标准结果
— Y. · 2026-09-28