第 5 章现在由序列转向函数。新的困难在于:序列是通过离散的索引 n 向
前走,但函数的自变量 x 可以从左、从右,以无穷多种实数方式逼近一个
点 a。
这就是为什么需要引入 δ-ε 定义。
由序列极限走向函数极限
上一章的
n→∞limxn=L
意思是:只要把索引取得足够后,序列值就能进入 L 周围任意窄的误差带。
对函数来说,我们想表达同样的思想:
当 x 靠近 a 时,f(x) 靠近 L。
但这里已经不能再说“把 n 取得够大”。我们需要新的量去描述“x 与
a 够接近”,这个角色就是 δ。
Open intervals 与 punctured domains
notes 先指明要处理哪类定义域。
定义
Open interval
Open interval 是 R 的下列形式子集:
(b,c)={x∈R∣b<x<c},(−∞,c)={x∈R∣x<c},(b,∞)={x∈R∣b<x},其中 b,c∈R 且 b<c。
要讨论 a 附近的函数极限时,notes 考虑的是在某个 open interval 里,把
点 a 移除后的函数。这一点很重要:极限研究的是 a 附近 发生什么,
而未必是 a 本身的函数值。
正式的 delta-epsilon 定义
定义
函数在一点的极限
设 I 是一个包含 a∈R 的 open interval,并令
f:I∖{a}→R。若对每个 ε>0,都存在
δ>0 使得
0<∣x−a∣<δ⟹∣f(x)−L∣<ε,则我们说
x→alimf(x)=L.
这个蕴含式要慢慢读:
- 0<∣x−a∣<δ 表示
x 已进入 a 周围的 punctured neighborhood;
- ∣f(x)−L∣<ε 表示函数值进入 L 周围的 ε-带。
所以整个定义的意思是:
对每个你要求的输出精度 ε,都能找到一个足够小的输入范围
δ,使得只要 x 落在那范围内,f(x) 就会落在 L 周围的误差
带内。
常见错误
函数极限定义不理会 a 点本身的值
条件中的 0<∣x−a∣ 把 x=a 排除了。所以 f(a) 可以未定义,也可以和
L 不同,而极限仍然可以存在。
第一个例子:limx→3(2x+1)=7
Example 19 是最基本的 linear 函数例子。
例题
取 \delta=\varepsilon/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∣ 有关的式子;
- 然后倒推出一个可行的 δ。
另外两个基本例子
例题
Constant functions
若 f(x)=c 对所有 x 都成立,则
∣f(x)−c∣=∣c−c∣=0<ε对任意 ε>0 和任意 x 都成立。
所以任何正数都可以当作 δ,而
x→alimc=c.
例题
有一个 hole 的函数
考虑
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 蕴含
这个工具把 x 端的 delta 条件与 y 端的 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 带内。
极限如何失败?
notes 接着说明:如何证明某个候选极限不存在。
若要证明 limx→af(x)=L,就要找到一个固定的 ε>0,
使得不论 δ 取多小,总能找到某个 x 满足 0<∣x−a∣<δ,
但同时
∣f(x)−L∣≥ε.
Example 22 用的是
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 没有极限。
这就是一种典型失败方式:左边逼近与右边逼近给出互不相容的行为。
极限定律
一旦若干基本极限已知,notes 便教你如何由旧极限组合出新极限。
定理
极限定律
若 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.
加法定律最能展示思路:把总误差 ε 分成两半,再用 triangle
inequality,
∣f(x)+g(x)−(L+M)∣≤∣f(x)−L∣+∣g(x)−M∣.
乘法定律则多一步,要先证明 |f(x)| 在 a 附近是有界的。
例题
利用加法定律
notes 考虑 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.
序列判别:用序列刻画函数极限
Theorem 3 把函数极限再度连回序列极限。
定理
函数极限的 sequential characterization
设 f:I∖{a}→R。则
x→alimf(x)=L当且仅当对每个满足 xn∈I∖{a} 且 xn→a 的序列
(xn),都有
n→∞limf(xn)=L.
这个定理非常实用,因为它提供了两种方法:
- 若要证明极限存在,就检查所有逼近
a 的序列;
- 若要证明极限不存在,只要找两条逼近
a 的序列,令函数值出现互不相
容的极限即可。
Example 25 正是这样重新处理 f(x)=\sin(1/x)。
例题
用两条序列证明 \sin(1/x) 在 0 没有极限
取
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 的序列给出不同的函数值极限,所以
\lim_{x\to 0}\sin(1/x) 不存在。
连续性
极限最重要的用途之一,就是把“函数是连续的”这个直觉说得精确。
定义
一点的连续性
设 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
不连续。
常见错误
有极限不代表自动连续
hole 那个例子已经说明:一个函数可以在 a 有极限,但在 a 未定义。连
续性还要多加一个条件,就是函数值存在并且等于那个极限。
快速检查
快速检查
为什么函数极限定义要写成 0<∣x−a∣<δ,而不是只写 ∣x−a∣<δ?
快速检查
在证明 limx→3(2x+1)=7 时,对任意 epsilon 应选什么 delta?
利用 ∣f(x)−7∣=2∣x−3∣。
快速检查
为什么 x−2x2−4 可以在 x=2 有极限,虽然公式在那里未定义?
练习
快速检查
证明 limx→4x=2。
先把 ∣x−2∣ 有理化,同时控制分母不要太小。
快速检查
用序列判别再证明一次 \lim_{x\to 0}\sin(1/x) 不存在。
快速检查
若已知 limx→af(x) 存在,要再加上什么条件,才可推出 f 在 a 连续?
相关笔记
建议先读
5.1 序列与 epsilon-N 极限
及
5.2 Cauchy 序列与另一个实数模型。
若想回看完备性的次序背景,可重读
4.3 完备性与 Q 的缺口。