第 5 章现在由序列转向函数。新的困难在于:序列是通过离散的索引 n 向
前走,但函数的自变量 x 可以从左、从右,以无穷多种实数方式逼近一个
点 a。
这就是为什么需要引入 δ-ε 定义。
由序列极限走向函数极限
对于序列,
n→∞limxn=L
意思是:只要把索引取得足够后,序列值就能进入 L 周围任意窄的误差带。
对函数来说,我们想表达同样的思想:
当 x 靠近 a 时,f(x) 靠近 L。
但这里已经不能再说“把 n 取得够大”。我们需要新的量去描述“x 与
a 够接近”,这个角色就是 δ。
开区间 与 穿孔定义域
先指明要处理哪类定义域。
定义
开区间
开区间 是 R 的下列形式子集:
(b,c)={x∈R∣b<x<c},(−∞,c)={x∈R∣x<c},(b,∞)={x∈R∣b<x},其中 b,c∈R 且 b<c。
要讨论 a 附近的函数极限时,这里考虑在某个 开区间 里,把
点 a 移除后的函数。这一点很重要:极限研究的是 a 附近 发生什么,
而未必是 a 本身的函数值。
正式的 delta-epsilon 定义
定义
函数在一点的极限
设 I 是一个包含 a∈R 的 开区间,并令
f:I∖{a}→R。若对每个 ε>0,都存在
δ>0 使得
0<∣x−a∣<δ⟹∣f(x)−L∣<ε,则我们说
x→alimf(x)=L.这个蕴含式要求对每个 x∈I∖{a} 都成立。δ 可以依赖 ε,但不可以依赖输入 x。
这个蕴含式要慢慢读:
- 0<∣x−a∣<δ 表示 x 已进入 a 周围的 穿孔邻域;
- ∣f(x)−L∣<ε 表示函数值进入 L 周围的 ε-带。
所以整个定义的意思是:
对每个你要求的输出精度 ε,都能找到一个足够小的输入范围
δ,使得只要 x 落在那范围内,f(x) 就会落在 L 周围的误差
带内。
常见错误
函数极限定义不理会 a 点本身的值
条件中的 0<∣x−a∣ 把 x=a 排除了。所以 f(a) 可以未定义,也可以和
L 不同,而极限仍然可以存在。
第一个例子:limx→3(2x+1)=7
先看线性函数 f(x)=2x+1 在 a=3 处的极限。
例题
取 δ=ε/2
令 f(x)=2x+1、a=3、L=7。则
∣f(x)−7∣=∣(2x+1)−7∣=∣2x−6∣=2∣x−3∣.所以要使 ∣f(x)−7∣<ε,只需保证
∣x−3∣<2ε.故可取
δ=2ε.这样一来,只要 0<∣x−3∣<δ,
∣f(x)−7∣=2∣x−3∣<2δ=2⋅2ε=ε.因此
x→3lim(2x+1)=7.
这个例子展示了最标准的证明模式:
- 由 ∣f(x)−L∣ 开始;
- 把它化成与 ∣x−a∣ 有关的式子;
- 然后倒推出一个可行的 δ。
另外两个基本例子
例题
常数函数
若 f(x)=c 对所有 x 都成立,则
∣f(x)−c∣=∣c−c∣=0<ε对任意 ε>0 和任意 x 都成立。
所以任何正数都可以当作 δ,而
x→alimc=c.
例题
有一个 空点 的函数
考虑
f:(0,∞)∖{2}→R,f(x)=x−2x2−4.虽然这条公式在 x=2 未定义,但对 x=2,可化简成
f(x)=x+2.所以在 x=2 附近,
∣f(x)−4∣=∣(x+2)−4∣=∣x−2∣.因此取 δ=ε 即可。只要 0<∣x−2∣<δ,便有
∣f(x)−4∣<ε.故
x→2limx−2x2−4=4,即使 f(2) 根本不存在。

图:δ-ε 定义把 a 附近的输入邻域,连到 L 周围的
输出误差带。证明工作的核心,就是选出一个足够好的 δ,让这个蕴含
式总能成立。
用互动方式看清这个定义
下面的互动演示让你在典型例子之间切换、选择 ε,再试
不同样本输入 x。核心就是把
0<∣x−a∣<δ⟹∣f(x)−L∣<ε
看成输入区间与输出误差带之间的一个对应。
边读边试
用几何方式检查一次 delta-epsilon 蕴含
条件 0<|x-a|<delta 必须对每个允许的 x 都推出 |f(x)-L|<epsilon。样本可说明这个蕴含;代数误差界则为整个去心区间证明它。
0 < |x - a| < δ,其中 δ = 0.25
|f(x) - L| < ε,其中 ε = 0.5
0 < |x - a| < δ
|2.8 - 3| = 0.2
所选 x 的确落在 delta 邻域内。
|f(x) - L| < ε
|6.6 - 7| = 0.4
函数值落在 L 周围的 epsilon 带内。
极限如何失败?
接着说明:如何证明某个候选极限不存在。
若要证明 limx→af(x)=L,就要找到一个固定的 ε>0,
使得不论 δ 取多小,总能找到某个 x 满足 0<∣x−a∣<δ,
但同时
∣f(x)−L∣≥ε.
考虑函数
f(x)=x∣x∣,
它在 x>0 时等于 1,在 x<0 时等于 −1。
例题
为什么 ∣x∣/x 在 0 没有极限
取 ε=1。任意给定 δ>0,令
x1=2δ>0,x2=−2δ<0.两者都满足 ∣xi∣<δ,但
f(x1)=1,f(x2)=−1.没有任何单一实数 L 能同时和 1、−1 都相距小于 1。因此该函数在
0 没有极限。
证明不存在极限时,量词提示我们采用相反策略:只要找到一个固定的
ε0>0,使每个 δ>0 都能找到穿孔邻域内的点,并满足
∣f(x)−L∣≥ε0,就能否定候选极限 L。对于 f(x)=∣x∣/x 在
0 处的极限,正侧的值是 1,负侧的值是 -1。若 L≥0,在负侧取点便有
∣−1−L∣≥1;若 L<0,在正侧取点便有 ∣1−L∣>1。两类点都能放入
任意给定的穿孔邻域,所以这是 epsilon 矛盾,而不是只说图像“跳跃”。
这就是一种典型失败方式:左边逼近与右边逼近给出互不相容的行为。
极限定律
一旦若干基本极限已知,这里便说明如何由旧极限组合出新极限。
定理
极限定律
若 limx→af(x)=L 且 limx→ag(x)=M,则:
- limx→a(f(x)+g(x))=L+M;
- limx→a(f(x)g(x))=LM;
- 若 M=0,则
x→alimg(x)f(x)=ML.
加法定律:用同一个邻域控制两个误差
加法定律展示了最短而完整的量词结构。假设 f(x)→L、g(x)→M,并固定
ε>0。第一个极限给出 δf>0,使
0<∣x−a∣<δf 时 ∣f(x)−L∣<ε/2;第二个极限给出
相应的 δg>0。取 δ=min(δf,δg),同一个 x
就同时满足两个估计。因此
(f(x)+g(x))−(L+M)≤∣f(x)−L∣+∣g(x)−M∣<2ε+2ε=ε.
取最小值很重要,因为它建立了一个同时满足全部条件的邻域。如果证明为
两个估计分别选择不同的点,或者让 δ 依赖于 x,就没有证明定义中的
量词蕴含。
乘积与商定律的证明
乘积定律不是只套符号的规则;证明必须同时控制两个误差。假设
f:I∖{a}→R 和 g:I∖{a}→R 在 a 处的极限分别为
L、M,给定 ε>0。这里不需要 f(a) 的值;以下每个估计都只
涉及穿孔定义域。先对 f 使用误差 1,取得 δ0>0,
使每个满足 x∈I∖{a} 且 0<∣x−a∣<δ0 的 x 都有
∣f(x)−L∣<1,∣f(x)∣<∣L∣+1=:A.
这里的 A>0 是在最后分配误差前得到的局部界。再选 δ1,使每个满足
x∈I∖{a} 且 0<∣x−a∣<δ1 的 x 有
∣g(x)−M∣<ε/(2A);选 δ2,使每个满足
0<∣x−a∣<δ2 的 x 有 ∣f(x)−L∣<ε/(2B),其中
B=max(1,∣M∣)。取 δ=min(δ0,δ1,δ2)。对于满足
x∈I∖{a} 且 0<∣x−a∣<δ 的任意 x,三个估计同时成立;
由恒等式
f(x)g(x)−LM=f(x)(g(x)−M)+M(f(x)−L)
及三角不等式,得到
∣f(x)g(x)−LM∣<A2Aε+∣M∣2Bε≤2ε+2ε=ε.
所以 f(x)g(x)→LM,包括 M=0 的情形;使用 B 避免了除以零。
对于商,M=0 是必要假设。设 g:I∖{a}→R 在 a 处的极限为
M。由 g(x)→M 取得 δ0>0,使每个满足
x∈I∖{a} 且 0<∣x−a∣<δ0 的 x 有
∣g(x)−M∣<∣M∣/2,则
∣g(x)∣≥∣M∣−∣g(x)−M∣>∣M∣/2.
在同一邻域,倒数误差满足
g(x)1−M1=∣g(x)∣∣M∣∣g(x)−M∣≤∣M∣22∣g(x)−M∣.
给定 ε>0,再选择 δ1,使每个满足
x∈I∖{a} 且 0<∣x−a∣<δ1 的 x 有
∣g(x)−M∣<ε∣M∣2/2;与前一个邻域取交集,就证明了
1/g(x)→1/M。再把乘积定律应用于 f(x) 和 1/g(x),得到
g(x)f(x)⟶ML.
每个误差预算和每个分母条件都清楚出现:先取局部界,再分成两半,最后证明
分母远离零。
例题
利用加法定律
考虑 f(x)=2x+1 与 g(x)=x 在 x=4 附近。若已知
x→4lim(2x+1)=9,x→4limx=2,那么加法定律立即给出
x→4lim((2x+1)+x)=9+2=11.
例题
两个各自无极限、但和有极限的函数
即使两个加项各自没有极限,它们的和仍可能有极限。在 0 附近的穿孔实数线上,令
f(x)=sin(1/x),g(x)=−sin(1/x).两个函数在 0 都没有极限:取 n≥1,序列 1/(2πn) 和
1/(2πn+π/2) 对 f 给出函数值极限 0 和 1,对 g 给出 0 和 -1。
可是对每个允许的 x,f(x)+g(x)=0,所以和的极限是 0。这说明不能从组合
表达式有极限反推每个极限律的前提。
例题
零点处的连续极限 x/(1+x)
对于 f(x)=x/(1+x),零点处的候选极限是 L=0。先限制 ∣x∣<1/2,则
∣1+x∣≥1−∣x∣>1/2,所以
1+xx−0≤2∣x∣.给定 ε>0,取
δ=min(21,2ε).当 0<∣x∣<δ 时分母非零,且上面的误差小于 ε。因此
x→0lim1+xx=0.
序列判别:用序列刻画函数极限
序列判别把函数极限与序列极限连接起来。
定理
函数极限的 序列判别
设 f:I∖{a}→R。则
x→alimf(x)=L当且仅当对每个满足 xn∈I∖{a} 且 xn→a 的序列
(xn),都有
n→∞limf(xn)=L.
这个定理非常实用,因为它提供了两种方法:
- 若要证明极限存在,就检查所有逼近 a 的序列;
- 若要证明极限不存在,只要找两条逼近 a 的序列,令函数值出现互不相
容的极限即可。
把这个判别应用于零点附近的振荡函数 f(x)=sin(1/x)。
例题
用两条序列证明 sin(1/x) 在 0 没有极限
取 n≥1,然后
xn=2πn1,yn=2πn+π/21.则 xn→0 且 yn→0,但
f(xn)=sin(2πn)=0→0,而
f(yn)=sin(2πn+π/2)=1→1.由于两条同样逼近 0 的序列给出不同的函数值极限,所以
limx→0sin(1/x) 不存在。
序列判别的双向证明
这个定理有两个方向,而且量词次序不同。
函数极限推出所有序列极限
假设穿孔函数极限是 L。令 (xn) 是定义在 I∖{a} 中、且
xn→a 的任意序列。给定 ε>0,由 delta-epsilon 定义取得
δ>0,使 0<∣x−a∣<δ 时有 ∣f(x)−L∣<ε。因为
xn→a,可以选 N 使所有 n>N 满足 ∣xn−a∣<δ。序列每项都在
穿孔定义域中,所以 0<∣xn−a∣<δ,从而每个 n>N 都有
∣f(xn)−L∣<ε。这正是 f(xn)→L。
所有序列极限推出函数极限
反过来用逆否命题。假设函数极限不是 L。那么存在固定的
ε0>0,使对每个 δ>0,都能在穿孔定义域中找到一点满足
∣f(x)−L∣≥ε0。对每个 n≥0,取 δ=1/(n+1),选择 xn 使
xn∈I∖{a},0<∣xn−a∣<n+11,∣f(xn)−L∣≥ε0.
中间不等式证明 xn→a,最后的不等式却使 f(xn) 不可能收敛到 L,因为
同一个正误差 ε0 在每个索引都存在。这与假定的序列性质矛盾,
所以函数极限必须是 L。这个选择明确避开了 a,即使 f(a) 没有定义也不影响证明。
连续性
极限最重要的用途之一,就是把“函数是连续的”这个直觉说得精确。
定义
一点的连续性
设 f:I→R 且 a∈I。若
x→alimf(x)=f(a),则称 f 在 a 连续。
等价地,用 ε-δ 语言可写成:
∀ε>0 ∃δ>0 使得 ∣x−a∣<δ⟹∣f(x)−f(a)∣<ε.
请留意:这次条件里不再有 0<∣x−a∣。因为连续性真的会检查 x=a 时的
函数值。
一个标准不连续例子是
f(x)={0,1,x=0,x=0.
这里 x 在 0 附近时的函数值都接近 0,但 f(0)=1,所以它在 0
不连续。
常见错误
有极限不代表自动连续
空点 那个例子已经说明:一个函数可以在 a 有极限,但在 a 未定义。连
续性还要多加一个条件,就是函数值存在并且等于那个极限。
快速检查
思考检查
为什么函数极限定义要写成 0<∣x−a∣<δ,而不是只写 ∣x−a∣<δ?
解答 · 答案
因为极限考察的是 a 附近的点,不一定是 a 本身。0<∣x−a∣ 把 x=a
排除出去。
思考检查
为什么加法定律的证明取 min(δf,δg),而不是 max(δf,δg)?
说明同一个输入点必须满足什么条件,两个估计才能同时适用。
解答 · 答案
输入必须同时满足 ∣x−a∣<δf 与 ∣x−a∣<δg。取最小值能保证两者同时成立;取最大值可能容许输入落在较小的邻域之外,此时其中一个误差估计就没有保证。
思考检查
为什么倒数极限的证明必须先保证分母远离零?
解答 · 答案
倒数误差是 ∣g(x)−M∣/(∣g(x)∣∣M∣)。即使分子很小,若 ∣g(x)∣ 可以任意接近零,也不能控制整个商。当 M=0 时,预先证明 ∣g(x)∣>∣M∣/2,便能用一个固定的正下界控制分母,使后续误差估计成立。
练习
思考检查
证明 limx→4x=2。
先把 ∣x−2∣ 有理化,同时控制分母不要太小。
解答 · 引导解答
利用
∣x−2∣=x+2∣x−4∣.取
δ=min(1,2ε).若 0<∣x−4∣<δ,则特别有 x∈(3,5),故 x+2>2。因此
∣x−2∣=x+2∣x−4∣<2∣x−4∣<2δ≤ε.所以 limx→4x=2。
思考检查
两条序列趋于零,代入 f(x)=sin(1/x) 后都得到零。这能证明函数极限是零吗?取 xn=1/(2πn) 、 yn=1/((2n+1)π) , n≥1,并说明理由。
比较序列判别中的全称量词与两个例子实际证明的内容。
解答 · 示范解答
这两条序列都趋于零,函数值也都恒等于零。但这还不够,因为序列判别要求穿孔定义域中的每一条序列都符合条件。另取 zn=1/(2πn+π/2),它也趋于零,却对所有 n≥1 都有 f(zn)=1。因此候选极限零不成立;不同的函数值极限进一步说明函数极限不存在。
思考检查
若已知 limx→af(x) 存在,要再加上什么条件,才可推出 f 在 a 连续?
解答 · 引导解答
还要有 f(a) 已定义,并且满足
x→alimf(x)=f(a).这个等式正是 f 在 a 连续的定义。
前置与继续阅读
建议先读
5.1 序列与 epsilon-N 极限
及
5.2 Cauchy 序列与另一个实数模型。
若想回看完备性的次序背景,可重读
4.3 完备性与 Q 的缺口。