Skip to content

第 7 章:紧致性、闭且有界和收敛子序列 ​

返回目录

对,你现在问的是数学分析中非常重要的 Heine–Borel 定理(海涅–博雷尔定理):

\boxed{
K\subseteq\mathbb R^n \text{ 是紧集}
\iff
K\text{ 是闭集且有界}
}

这个定理并不是紧集的定义,而是一个需要证明的结论。并且要特别注意:这个等价关系依赖于有限维欧氏空间的性质,在一般的无限维空间中不成立。

我们从紧集的原始定义开始,证明两个方向。

一、紧集的原始定义是什么? ​

紧集(Compact Set)最经典的定义来自开覆盖(Open Cover)。

假设有一个集合:

K\subseteq\mathbb R^n

存在一族开集 \{U_\alpha\}_{\alpha\in I},满足:

K\subseteq\bigcup_{\alpha\in I}U_\alpha

这意味着这些开集加起来,可以完全覆盖 K。

如果无论你怎样用开集覆盖 K,都能从中选出有限个开集,仍然覆盖整个 K,那么就称 K 是紧集。

数学表达为:

\boxed{
K\subseteq\bigcup_{\alpha\in I}U_\alpha
\Longrightarrow
\exists\,\alpha_1,\ldots,\alpha_m,\quad
K\subseteq\bigcup_{i=1}^mU_{\alpha_i}
}

这就是有限子覆盖性质(Finite Subcover Property)。

注意,不是要求每种覆盖本来就只有有限个开集,而是即使提供无限多个开集,也总能从里面挑出有限个来完成覆盖。

二、先证明:紧集一定有界 ​

这个方向比较简单。

假设 K 是紧集。

我们考虑以原点为圆心、半径不断增大的开球:

B(0,1),B(0,2),B(0,3),\ldots

它们的并集能够覆盖整个 \mathbb R^n,当然也能覆盖 K:

K\subseteq\bigcup_{m=1}^{\infty}B(0,m)

由于 K 是紧集,根据有限子覆盖性质,可以从这些开球中选出有限个,覆盖整个 K。

假设选中的最大半径为 M。

由于这些球都是同心的:

K\subseteq B(0,M)

这说明 K 中所有点到原点的距离都小于 M。

因此:

\boxed{K\text{ 紧致}\Longrightarrow K\text{ 有界}}

三、再证明:紧集一定是闭集 ​

回忆闭集的一个等价定义:

集合 K 是闭集,当且仅当它的补集 \mathbb R^n\setminus K 是开集。

因此,我们只需要证明:对于任意一个不属于 K 的点 \mathbf p,都能在它周围找到一个完全不与 K 相交的小球。

取:

\mathbf p\notin K

对于 K 内每个点 \mathbf x,构造开球:

B\left(\mathbf x,\frac{\|\mathbf x-\mathbf p\|}{3}\right)

由于 \mathbf p\ne\mathbf x,每个球的半径都大于零。

这些球显然覆盖整个 K,因为每个点都是其对应球的球心。

由紧致性,存在有限个球:

B(\mathbf x_1,r_1),\ldots,B(\mathbf x_m,r_m)

仍然覆盖 K,其中:

r_i=\frac{\|\mathbf x_i-\mathbf p\|}{3}

令:

\delta=\min(r_1,\ldots,r_m)>0

现在,对于任意 \mathbf z\in K,它必然属于某个选中的球,例如 B(\mathbf x_i,r_i)。

根据三角不等式:

\|\mathbf z-\mathbf p\|
\geq
\|\mathbf x_i-\mathbf p\|-\|\mathbf z-\mathbf x_i\|

因为:

\|\mathbf x_i-\mathbf p\|=3r_i,\qquad
\|\mathbf z-\mathbf x_i\|<r_i

所以:

\|\mathbf z-\mathbf p\|>2r_i\geq2\delta

因此,开球 B(\mathbf p,\delta) 完全不与 K 相交。

这意味着 K 的补集是开集,所以:

\boxed{K\text{ 紧致}\Longrightarrow K\text{ 闭}}

至此,我们已经证明:

\boxed{\text{紧致}\Longrightarrow\text{闭且有界}}

四、最关键的一步:为什么闭且有界一定紧致? ​

这才是 Heine–Borel 定理真正需要用到欧氏空间特殊性质的地方。

我们要证明:

\boxed{
K\subseteq\mathbb R^n\text{ 闭且有界}
\Longrightarrow K\text{ 紧致}
}

也就是证明:对 K 的任意开覆盖,一定存在有限子覆盖。

这里使用一个非常巧妙的方法:不断将空间分割成越来越小的立方体,并使用反证法。

第一步:假设结论不成立

假设 K 是闭且有界的,但它不是紧集。

那么存在一种开覆盖:

K\subseteq\bigcup_{\alpha\in I}U_\alpha

无论选多少个有限的 U_\alpha,都无法覆盖整个 K。

由于 K 有界,我们可以找到一个足够大的闭立方体 C_0,使得:

K\subseteq C_0

第二步:不断细分立方体

以二维为例,我们先把正方形分成 4 个小正方形。

由于 K 不能被有限个开集覆盖,至少有一个小正方形与 K 的交集,也不能被有限个开集覆盖。

否则,如果四个小正方形中的部分 K 都可以被有限覆盖,那么把这四组有限覆盖合并起来,就得到整个 K 的有限覆盖,与假设矛盾。

于是我们选择这个有问题的小正方形,继续分割。

最终得到一系列嵌套的闭立方体:

C_0\supseteq C_1\supseteq C_2\supseteq\cdots

并且每个 K\cap C_m 都无法被有限个开集覆盖。

同时,立方体直径不断缩小:

\boxed{\operatorname{diam}(C_m)\to0}

第三步:证明这些立方体最终收敛到一个点

在每个 K\cap C_m 中选择一点 \mathbf x_m。

由于这些立方体不断嵌套,对于任意 j,k\geq N,都有:

\mathbf x_j,\mathbf x_k\in C_N

所以:

\|\mathbf x_j-\mathbf x_k\|
\leq\operatorname{diam}(C_N)

而立方体直径趋于零,因此序列 \{\mathbf x_m\} 是柯西序列(Cauchy Sequence)。

欧氏空间 \mathbb R^n 是完备的,所以存在极限:

\boxed{\mathbf x_m\to\mathbf x^*}

又因为 K 是闭集,所有 \mathbf x_m\in K,因此:

\boxed{\mathbf x^*\in K}

而且,由于立方体嵌套且闭合,\mathbf x^* 属于每一个 C_m。

第四步:利用开集性质得到矛盾

这是整个证明最精彩的地方。

因为我们的开集族覆盖 K,所以必然有某一个开集 U_\beta 包含 \mathbf x^*:

\mathbf x^*\in U_\beta

既然 U_\beta 是开集,那么存在一个 \varepsilon>0,使得:

B(\mathbf x^*,\varepsilon)\subseteq U_\beta

但是,立方体 C_m 的直径正在趋近零,而且每个都包含 \mathbf x^*。

因此,当 m 足够大时:

C_m\subseteq B(\mathbf x^*,\varepsilon)

于是:

\boxed{K\cap C_m\subseteq U_\beta}

也就是说,仅仅一个开集 U_\beta,就已经能够覆盖这个立方体内的全部 K!

但我们在构造立方体时,要求每个 K\cap C_m 都不能被有限个开集覆盖。

矛盾!

因此,原来的假设不成立。

\boxed{
K\text{ 闭且有界}
\Longrightarrow
K\text{ 紧致}
}

Heine–Borel 定理证毕。


五、为什么又可以用收敛子序列来理解紧致性? ​

现在回到你最开始关心的那个问题:

为什么闭且有界集合中的任意序列,都存在收敛到集合内部的子序列?

实际上,它与刚才的证明有相同的数学基础。

这里使用 Bolzano–Weierstrass 定理(博尔查诺–魏尔斯特拉斯定理):

\boxed{\mathbb R^n\text{ 中任意有界序列都有收敛子序列}}

例如,假设有一个二维有界序列:

\mathbf x_n=(a_n,b_n)

由于整个序列有界,坐标序列 \{a_n\} 也有界。

根据一维 Bolzano–Weierstrass 定理,可以从中选出收敛子序列:

a_{n_k}\to a

然后只考虑对应的 \{b_{n_k}\}。

它同样有界,因此可以继续选出一个子序列:

b_{n_{k_j}}\to b

由于第二次选择的仍然是第一次收敛子序列的一部分,所以对应的 a_{n_{k_j}} 也收敛到 a。

于是:

\boxed{\mathbf x_{n_{k_j}}\to(a,b)}

推广到有限维,只需要对每个坐标依次提取子序列。

如果原来的序列全部位于闭集 K,那么它的极限也必然属于 K。

因此:

\boxed{
K\text{ 闭且有界}
\Longrightarrow
\text{任意序列都有收敛到 }K\text{ 内的子序列}
}

这种性质叫作序列紧致性(Sequential Compactness)。

对于欧氏空间:

\boxed{
\text{开覆盖紧致}
\iff
\text{序列紧致}
\iff
\text{闭且有界}
}

前面通过嵌套立方体的证明,展示了闭且有界为什么能推出开覆盖紧致;而序列紧致是理解这一结论的另一种方式。

六、为什么强调有限维? ​

这里还有一个很重要的数学事实。

在无限维空间,例如平方可和序列组成的 Hilbert 空间 \ell^2 中,考虑单位向量:

\mathbf e_1=(1,0,0,\ldots)
\mathbf e_2=(0,1,0,\ldots)
\mathbf e_3=(0,0,1,\ldots)

它们都在闭单位球内,长度都等于 1。

但对于任意 i\ne j:

\|\mathbf e_i-\mathbf e_j\|=\sqrt2

所以这些向量之间始终保持固定距离,根本无法找到收敛子序列。

因此,无限维空间的闭单位球虽然闭且有界,却并不紧致(相对于范数拓扑)。

这意味着:有限维不仅仅是证明中的技术限制,而是定理成立的重要条件。


对,开覆盖(Open Cover)完全不要求由小球组成,只要求每一个覆盖集合都是开集(Open Set)。

例如,在二维欧氏空间 \mathbb R^2 中,以下都可以作为开覆盖的组成部分:

  • 开圆盘:\{(x,y):x^2+y^2<1\}
  • 开矩形:\{(x,y):0<x<2,\ 0<y<3\}
  • 开半平面:\{(x,y):x>0\}
  • 不规则形状的开区域,甚至多个不相连开区域的并集

只要这些开集的并集包含目标集合 K,它们就构成 K 的一个开覆盖:

\boxed{K\subseteq\bigcup_{\alpha\in I}U_\alpha}

那为什么证明中经常使用小球? ​

因为在欧氏空间中,开集的定义本身就可以通过开球来描述。

如果 U 是开集,那么对其中任意一点 \mathbf x\in U,一定存在 \varepsilon>0,满足:

\boxed{B(\mathbf x,\varepsilon)\subseteq U}

这里的开球是:

B(\mathbf x,\varepsilon)
=
\{\mathbf y:\|\mathbf y-\mathbf x\|<\varepsilon\}

这意味着,不管开集 U 的形状多么复杂,只要一点位于它内部,就能在这个点周围找到一个完全包含在 U 里面的小球。

所以,在刚才 Heine–Borel 定理的证明中,我们首先知道:

\mathbf x^*\in U_\beta

因为 U_\beta 是开集,所以可以找到:

B(\mathbf x^*,\varepsilon)\subseteq U_\beta

而随着嵌套立方体越来越小,最终整个立方体都会落入这个小球,也就落入 U_\beta,从而产生矛盾。

注意这里的逻辑:不是说开覆盖必须由小球组成,而是任何开集内部都可以找到适当的小球。

还有一个更深一层的结论:在欧氏空间中,所有开球构成拓扑的一个基(Basis)。因此,讨论开覆盖时,实际上也可以只检验由开球构成的覆盖是否存在有限子覆盖;如果这个性质对所有开球覆盖成立,那么它对任意开集覆盖也成立。

图 3 · “不能有限覆盖”的区域被迫缩向一点x*每次只从同一原开覆盖挑选集合。直径 → 0;完备性保证极限存在。闭性保证 x* ∈ K。开性让足够小的 Cₘ 落进一个 U。于是只用一个原开集就能覆盖,矛盾。
二维示意只展示几次细分,不指定真实 K 的形状;n 维每步分成 2ⁿ 个闭立方体。极限点落入某个原开集后,整个小立方体最终都落入它。

补充证明一:从实数完备性到一维 Bolzano–Weierstrass ​

设有界序列 (x_j) 落在闭区间 I_0 中。把区间对半分,至少一半包含无穷多个序列项的指标;选取它为 I_1。逐次重复,得到闭区间 I_k,长度为 2^{-k}|I_0|,每个都含无穷多个指标的序列项。

可依次选严格增加的指标 j_k,使 x_{j_k}\in I_k。当 r,s\geq k 时,两项均落在 I_k,所以 |x_{j_r}-x_{j_s}|\leq|I_k|。它是柯西序列,由实数完备性收敛。这就补上了原对话中直接引用的一维定理;有限维坐标提取在上文已经说明。

补充证明二:序列紧致也推出闭且有界 ​

若 K 序列紧致却无界,可选 x_j\in K 满足 \|x_j\|>j。任何子序列都不可能收敛,矛盾。

若 K 不闭,则存在 p\notin K,每个 B(p,1/j) 都与 K 相交。选择 x_j\in K\cap B(p,1/j),则 x_j\to p。序列紧致给出一个极限在 K 中的子序列;极限唯一性迫使该极限就是 p,矛盾。因此 K 闭。

把这两个结论与上文的 Heine–Borel 证明、有限维有界序列提取结合,才得到完整的三个等价条件:开覆盖紧致、序列紧致、闭且有界。这里没有把一个尚未证明的等价关系当作定义偷用。

空集也紧致、闭且有界、序列紧致;极值定理另需非空。闭集证明中对非空 K 选有限球,空集情形单独直接成立。

补充:开球覆盖为什么足够 ​

若只知道所有开球覆盖都有有限子覆盖,面对任意开覆盖 \{U_\alpha\},为每个 x\in K 选 U_{\alpha(x)}\ni x 及 r_x>0 使 B(x,r_x)\subset U_{\alpha(x)}。这些小球构成覆盖;取有限个后,相应有限个原开集也覆盖 K。因此“可以化成开球来证明”与“定义只允许开球”是两个不同的陈述。

在无限维 \ell^2 的例子中,如果不引用一般度量空间的紧致与序列紧致等价,也能直接给出失败的开覆盖:对闭单位球内每个点 x 取 B(x,1/2)。一个这样的球至多包含一个标准基向量 e_j,因为两点在同球内的距离小于 1,而 \|e_i-e_j\|=\sqrt2。任何有限个球都不能覆盖全部 e_j,所以闭单位球不紧致。

保留每一次追问,认真走完每一步证明。