紧性与连续函数的全局结论
在前几章里,连续性的定义一直是局部的:给定一个点 c,只要 x 足够靠近 c,就能保证 f(x) 靠近 f(c)。这一章要处理的问题反过来:如果每一点附近都能控制函数,什么时候可以把这些局部控制拼成整个集合上的结论?
答案是紧性。紧性让“每一点各有一个小邻域”可以缩减为“有限多个小邻域已经够用”。有限性一出现,局部的 δ、局部的有界性、局部的符号信息,就能被取最小值、最大值或有限并集统一起来。
本章围绕三条结论展开:连续函数保持区间的中间值,连续函数在紧集上取得最大值和最小值,连续函数在紧集上一致连续。它们看起来分别属于图像、优化和 epsilon-delta 控制,证明中却反复使用同一个动作:从局部信息提取有限信息。

紧性把局部信息变成有限信息
在实直线上,本章主要使用闭有界区间 [a,b]。更一般地,一个集合 K⊂R 称为紧集,可以用开覆盖语言表达:任意一族开集只要覆盖了 K,就能从中选出有限多个仍然覆盖 K。
在 R 中,Heine-Borel 定理说明:集合紧当且仅当它闭且有界。因此闭区间 [a,b] 是紧的,而开区间 (a,b)、半开区间 (a,b]、无界区间 都不是紧的。
开覆盖定义一开始显得抽象,但它正好对应连续性证明中最常出现的局部邻域。比如为了证明某个性质在每一点附近成立,我们常会得到一批开区间:
{Vx:x∈K}
其中每个 Vx 只负责照顾 x 附近的一小段。若 K 紧,这些局部区间虽然可能无限多,却存在有限个 Vx 已经覆盖全部 。之后就可以把有限多个局部常数拼成一个全局常数。
有限子覆盖的操作感
下面的交互把“从很多局部区间中选出有限个”做成了可视化。重点不是算法本身,而是看见紧性如何允许我们停在有限步。
紧性不是说覆盖一定由有限多个开集组成,而是说只要已经覆盖紧集,就一定能抽出有限个仍然覆盖它。原覆盖可以是无限族。
连续像紧
本章的第一个核心事实是:连续函数把紧集送到紧集。设 f:K→R 连续,K 紧。要证明 f(K) 紧,可以直接用开覆盖。
设 {Uα} 是 f(K) 的一个开覆盖。对每个 α,看它在 f 下的原像:
f−1(Uα)={x∈K:f(x)∈
因为 f 连续,开集的原像在 K 中是开的;又因为 {Uα} 覆盖 f(K),这些原像覆盖 K。由 紧,可以选出有限多个原像覆盖 :
f−1(Uα1),…,f
于是 Uα1,…,Uαn 覆盖 。这正是 紧的定义。
“连续像紧”是极值定理的干净证明:如果 K 紧,那么 f(K) 也是紧;在实直线上,紧集闭且有界,所以 f(K) 有最大值和最小值。
介值定理
介值定理描述连续函数图像不能跳过中间高度。设 f 在闭区间 [a,b] 上连续,且 f(a)<N<f(b)。那么存在 c,使得
f(c)=N.
若 f(a)>N>f(b),结论同样成立。

定理的过零形式
最常用的是过零形式。若 f 在 [a,b] 上连续,并且
f(a)<0<f(b),
那么存在 c∈(a,b) 使得 f(c)=0。一般的 N 只要考虑函数 g(x)= 就能化为过零形式。
上确界证明
假设 f(a)<0<f(b)。定义
S={x∈[a,b]:f(x)<0}.
集合 S 非空,因为 a∈S;它有上界 b,所以由实数完备性,c=supS 存在。
接下来证明 f(c)=0。如果 f(c)<0,由 f 在 c 连续,c 右侧足够近的点也满足 。这会给出一个比 更大的 中元素,违背 是上确界。
如果 f(c)>0,由连续性,c 左侧足够近的点也满足 f(x)>0。这说明 c 左侧有一段区间没有 S 中元素,违背 是 的最小上界。
两种情况都不可能,所以只剩下
f(c)=0.
介值定理的证明用的是完备性,而不是紧性的全部力量。闭区间的作用是提供端点、上确界和连续性可用的局部区间。它仍然属于“局部连续性 + 实数无空洞”的典型结论。
根定位器
下面的交互展示二分法如何把介值定理变成求根过程。只要端点异号且函数连续,每次取中点都能保留一个仍然异号的小区间。
应用:方程有解
证明方程
x5+x−1=0
在 (0,1) 中有解。
设 f(x)=x5+x−1。多项式在 R 上连续,因此在 上连续。
这个证明没有求出根的精确表达式。实分析经常先证明对象存在,再讨论如何逼近或计算它。
应用:连续函数把区间映成区间
若 I 是区间,f:I→R 连续,那么 f(I) 仍是区间。理由是:任取 u,v∈f(I 且 ,存在 使得 、。由于 是区间, 或 包含在 中;在这个闭区间上用介值定理,就能找到 使得 。因此 。
这个说法解释了为什么连续曲线在区间上不能“跳过”某个函数值。
极值定理
极值定理说明:连续函数在紧集上不仅有界,而且能真正取得最大值和最小值。
若 K⊂R 紧,f:K→R 连续,则存在 xmin,x,使得对所有 ,
f(xmin)≤f(x)≤f(xmax).
当 K=[a,b] 时,这就是微积分中熟悉的闭区间极值定理。

用连续像紧证明
由连续像紧,f(K) 是 R 中的紧集。根据 Heine-Borel 定理,f(K) 闭且有界。
有界说明 f(K) 有上确界和下确界:
M=supf(K),m=inff(K).
因为 f(K) 是闭集,它包含自己的极限点;上确界 M 和下确界 m 都属于 f(K)。于是存在 xm,使得
f(xmax)=M,f(xmin)=m.
这就证明了极值定理。
用数列证明
数列证明更能看清“紧性”的角色。令
M=supf(K).
按照上确界定义,可以选出一列点 xn∈K,使得
f(xn)>M−n1.
由于 K 紧,序列 (xn) 有收敛子列 xnk,且 。由连续性,
f(xnk)→f(x∗).
另一方面,f(xnk)→M,因此 f(x∗)。最大值被取得。最小值同理。
极值定理的数列证明可以概括为:先用上确界逼近最大高度,再用紧性抽出收敛子列,最后用连续性把极限传到函数值上。
不能删掉的假设
极值定理有两个关键假设:定义域紧,函数连续。任意删掉一个,结论都可能失败。
在开区间 (0,1) 上,函数 f(x)=x 连续且有界,但没有最大值,也没有最小值。它的值域是 (0,1),上确界 1 和下确界 0 都没有被取到。
在无界区间 R 上,函数 f(x)=x2 连续,但没有最大值。在闭区间 [0,1] 上,如果函数不连续,例如
f(x)={0,1,0≤x<1,
它仍然能取到最大最小;但这只是偶然。换成
g(x)={x,0,0≤x<1,
则 g 在 [0,1] 上有界,却没有最大值,因为它的上确界是 1,但没有点取到 1。

应用:连续函数的范围
设 f 在 [a,b] 上连续。由极值定理,存在最小值 m 和最大值 M。由介值定理,f 在这两个高度之间的每个值都能取到。因此
f([a,b])=[m,M].
这句话把介值定理和极值定理合在一起:连续函数把闭区间映成闭区间。
一致连续
点连续的量词是:
∀x0∈E, ∀ε>0, ∃δ
这里的 δ 可以依赖于点 x0。不同位置的函数变化速度不同,所需的 δ 也可能不同。
一致连续要求同一个 δ 对整个集合都有效:
∀ε>0, ∃δ>0, ∀x,y∈E, ∣x−
区别只在量词顺序。逐点连续是“每个点各自找 δ”,一致连续是“先找一个 δ,再同时管住所有点对”。

量词对比
逐点连续可以写成:
∀x0 ∀ε ∃δ(x0,ε) ∀x.
一致连续可以写成:
∀ε ∃δ(ε) ∀x ∀y.
当定义域很小、函数变化受控制时,这两者可能都成立。当定义域靠近奇点、无界延伸,或者函数斜率越来越大时,逐点连续仍可能成立,但一致连续会失败。
对比实验
下面的交互比较几个典型函数。观察重点是:给定同一个 ε 后,是否存在一个全域统一的 δ。
例子:x2 在 [0,1] 上一致连续
设 f(x)=x2,定义域为 [0,1]。对任意 x,y∈[0,1],
∣x2−y2∣=∣x−y∣∣x+y∣≤
给定 ε>0,取
δ=2ε.
若 ∣x−y∣<δ,则
∣x2−y2∣≤2∣x−y∣<ε.
因此 x2 在 [0,1] 上一致连续。
反例:x2 在 R 上不一致连续
同一个函数在更大的定义域上可能不一致连续。设 f(x)=x2 在 R 上。如果它一致连续,那么对 ε=1,存在 δ>0,使得
∣x−y∣<δ⇒∣x2−y2∣<1.
取足够大的 n,并令
xn=n,yn=n+2
则 ∣xn−yn∣=δ/2<δ,但
∣yn2−xn2∣=δn+
当 n 足够大时,这个值超过 1,矛盾。因此 x2 在 R 上不一致连续。
反例:1/x 在 (0,1) 上不一致连续
函数 f(x)=1/x 在每个点都连续,但在 (0,1) 上不一致连续。取
xn=n1,yn=
则
∣xn−yn∣=n(n+1)
但
xn1−
如果一致连续成立,当两点距离趋于 0 时,函数值距离也应当趋于 0。这里函数值距离恒等于 1,所以一致连续失败。
“函数在每一点连续”不等于“一致连续”。当问题涉及整个区间上同一个误差控制时,要检查定义域是否紧,或者直接从一致连续定义出发证明。
Heine-Cantor 定理
Heine-Cantor 定理是本章最能体现紧性作用的结论。
若 K⊂R 紧,且 f:K→R 连续,则 f 在 K 上一致连续。

覆盖式证明
给定 ε>0。因为 f 在每个 x∈K 连续,所以存在半径 rx>0,使得当 且
∣y−x∣<rx
时,有
∣f(y)−f(x)∣<2ε.
考虑开区间族
{(x−2rx,x+
它覆盖 K。由紧性,存在有限多个点 x1,…,xn∈K,使得
K⊂i=1⋃n(xi−
取
δ=min{2rx1
因为只有有限多个正数,这个最小值仍然是正数。
现在任取 p,q∈K 且 ∣p−q∣<δ。由有限覆盖,p 落在某个区间中,即
∣p−xi∣<2rx
于是
∣q−xi∣≤∣q−p∣+∣p−
由 xi 处的连续性控制,
∣f(p)−f(xi)∣<2
最后由三角不等式,
∣f(p)−f(q)∣≤∣f(p)−f(xi
这证明了 f 在 K 上一致连续。
证明路线拆解
从点连续开始。每个点 x 给出一个局部半径 rx,在这个半径内函数值变化小于 ε/2。
这正是紧性的典型用法:点连续给出一族局部数据,紧性把它压缩成有限数据,有限数据再给出全局常数。
数列式反证
Heine-Cantor 定理也可以用数列语言证明。若 f 不一致连续,则存在 ε0>0,使得对每个 n,可以找到 xn 满足
∣xn−yn∣<n1
但
∣f(xn)−f(yn)∣≥ε0
由 K 紧,(xn) 有收敛子列 xnk。又因为
∣ynk−x∗∣≤
所以 ynk→x∗。由 f 在 x 连续,
f(xnk)→f(x∗),
于是
∣f(xnk)−f(yn
这与它始终大于等于 ε0 矛盾。
覆盖式证明强调“有限子覆盖”;数列式证明强调“收敛子列”。在实直线上,这两种紧性的表达等价。遇到连续函数定理时,两种证明都值得掌握。
紧性在三个定理中的角色
本章的定理可以放在同一张逻辑图里看。
介值定理
介值定理主要依赖连续性和实数完备性。连续性保证符号不能在一点附近突然改变;上确界性质保证分界点存在。它告诉我们:连续函数在区间上不跳值。
极值定理
极值定理依赖紧性和连续性。紧性阻止最大值“逃到边界外”或“逃向无穷远”;连续性保证函数值的极限仍是函数值。它告诉我们:连续函数在紧集上不仅有界,还能达到边界高度。
Heine-Cantor 定理
Heine-Cantor 定理依赖紧性把每一点的 δ 变成全局同一个 δ。它告诉我们:紧集上的连续性自动升级为一致连续。
本章最重要的判断习惯是:当结论需要“全区间同时成立”时,先寻找紧性;当结论只说“某个中间点存在”时,先寻找区间性、连续性和完备性。
典型题型
证明函数有零点
题目:证明方程
cosx=x
在 (0,1) 中至少有一个解。
设 f(x)=cosx−x。余弦函数和恒等函数连续,所以 f 在 [0,1 上连续。
证明像集是闭区间
题目:设 f 在 [a,b] 上连续,证明 f([a,b]) 是某个闭区间。
由极值定理,f 在 [a,b] 上取得最小值 m 和最大值 M。
判断一致连续
题目:判断 f(x)=x 在 [0,1] 上是否一致连续。
答案是肯定的。因为 [0,1] 紧,x 在 [0,1] 上连续,由 Heine-Cantor 定理,它一致连续。
如果要求不用 Heine-Cantor 定理,也可以直接估计。对 x,y∈[0,1],不妨设 x≥y。有
∣x−y
因此
∣x−y
给定 ε>0,取 δ=ε2 即可。
自检练习
练习一
设 f 在 [0,2] 上连续,且 f(0)=3、f(2)=−1。证明存在 使得 。
考虑 g(x)=f(x)−1。有 g(0)=2>0,g(2。由于 在 上连续,由介值定理,存在 使得 ,即 。
练习二
设 f 在紧集 K 上连续。证明 ∣f∣ 在 K 上取得最大值。
绝对值函数连续,复合函数 ∣f∣ 在 K 上连续。由极值定理,∣f∣ 在紧集 K 上取得最大值。也可以先由连续像紧知道 f(K) 紧,再由绝对值连续知道 ∣ 紧,从而有最大值。
练习三
判断命题是否正确:若 f 在 (0,1) 上连续且有界,则 f 一定在 (0,1) 上取得最大值。
错误。取 f(x)=x。它在 (0,1) 上连续且有界,但没有最大值,因为对任意 x∈(0,1),都可以找到更大的点 (x,并且 。
练习四
证明 f(x)=1/(1+x2) 在 R 上一致连续。
可以用导数有界来证明。对任意 x,有
f′(x)=(1+x2)
本章小结
连续性本身是局部条件。介值定理用完备性说明连续函数不能跳过中间值;极值定理用紧性说明连续函数在紧集上会取得最大和最小;Heine-Cantor 定理用紧性说明点点连续可以统一成一致连续。
把这些结论放在一起看,紧性不是装饰性假设。它的实际工作是把无限多的局部数据压缩成有限多的数据,而有限性让“取最大”“取最小”“取统一 δ”这些操作变得合法。