第1章 · 欧氏空间与线性映射基础
1.3 欧氏空间的拓扑初步
在 §1.1 中,我们定义了开球和点列的极限。在 §1.2 中,我们证明了线性映射的连续性。在第 2 章中,我们将讨论多元函数的极限、连续性和可微性。这些概念都需要一套精确的语言来描述"接近""附近""边界"等几何直观。
回顾初等微积分:定义在开区间 $(a,b)$ 上的函数性质最好——每一点都有"向两边延伸的空间"。定义在闭区间 $[a,b]$ 上的连续函数能取到最大值和最小值。在高维中,开集和紧集分别扮演这两种角色。本节建立这套语言。
在进入具体定义之前,先解释一个贯穿全节的术语。我们即将定义的开集、闭集、紧集、连续映射等概念,都属于一个更宏大的数学框架——拓扑学。这个术语在后续各章会反复出现,在此说明其含义。
1.3.0 什么是"拓扑"视角——致读者的一个简短说明
在 §1.1 中,我们用距离来定义"接近":两点"接近"是指它们之间的距离小于某个正数。这是最自然的想法,也是整个分析学的基础。
但这里有一个值得深思的问题:当我们说一个函数 $f$ 在点 $\boldsymbol{a}$ 处连续时,我们写下了这样的条件——
对任意 $\varepsilon > 0$,存在 $\delta > 0$,使得当 $\|\boldsymbol{x} - \boldsymbol{a}\| < \delta$ 时,有 $\|f(\boldsymbol{x}) - f(\boldsymbol{a})\| < \varepsilon$。
这个条件用了两个距离:定义域中的 $\|\boldsymbol{x} - \boldsymbol{a}\|$ 和值域中的 $\|f(\boldsymbol{x}) - f(\boldsymbol{a})\|$。但在整个陈述中,我们是否真的用到了距离的全部信息?
考虑一个具体的例子。设 $f(x) = x^2$,在 $a = 0$ 处连续。证明的典型步骤是:给定 $\varepsilon$,取 $\delta = \sqrt{\varepsilon}$,然后验证当 $|x - 0| < \delta$ 时,$|x^2 - 0| < \varepsilon$。在这个论证中,我们真正依赖的是什么呢?我们依赖的是这个事实:对于任意包含 $f(a)$ 的开区间 $(-\varepsilon, \varepsilon)$,存在包含 $a$ 的开区间 $(-\delta, \delta)$,使得 $f$ 将后者整个映射到前者里面。
注意发生了什么:我们从一个关于距离的论证中,提取出了一个只涉及开集之间包含关系的陈述。原来的论证需要计算平方根,需要 $\varepsilon$-$\delta$ 之间的具体函数关系。但最终保证连续性的,不是这个具体的数值关系,而是值域中的任意开区间(由距离定义)在定义域中有一个开区间作为原像。
这正是拓扑学的核心洞察。距离的具体数值在连续性论证中的作用,仅仅在于定义哪些集合是"开的"。一旦通过距离定义好了哪些是开集,后续很多论证就只需要用到开集之间的包含关系,而不再需要拿出 $\varepsilon$ 和 $\delta$ 的具体数值来算了。
当我们定义一个具体的空间(比如 $\mathbb{R}^n$)上的开集结构时,距离是不可或缺的。本节中所有"开集"的定义都是通过距离给出的——开球由距离定义,开集由开球定义。但当我们使用开集来讨论连续性、紧致性等性质时,很多论证就只需要开集的语言了。
在完全没有距离的一般拓扑空间中,我们甚至可以直接指定"哪些集合是开的",而不必先定义距离。这就是"拓扑"比"度量"更一般的含义。但本书始终在 $\mathbb{R}^n$ 中工作,因此我们总是有距离的——我们只是学会了何时可以忘掉具体的数值,只用开集来思考。
这个观察有一个重要的后果:如果用开集的语言来表述连续性,得到的等价定义在形式上完全不出现数字 $\varepsilon$ 和 $\delta$。它只陈述"任意开集的原像是开集"。这意味着,连续性归根结底是关于"开集结构"的性质,而不仅仅是关于距离的数值不等式。
下面我们开始正式建立 $\mathbb{R}^n$ 中的开集、闭集和紧集的概念。读者将会看到,随着内容的推进,开集的语言会越来越显出它的简洁和洞察力。
1.3.1 开集与闭集
回忆 §1.1.4:以 $\boldsymbol{a}$ 为中心、$r > 0$ 为半径的开球是集合
直观上,开球是到 $\boldsymbol{a}$ 的距离严格小于 $r$ 的所有点。它不包含边界(球面)。当 $n=1$ 时,开球就是开区间;当 $n=2$ 时,开球是圆的内部(不含圆周)。
现在,要从开球出发,定义更一般的"开集"。在这之前,先讲清楚开球和开集的关系,因为这是一个常被初学者忽略的问题。
开球与开集的关系
我们即将把开集定义为这样的集合:其中每个点都能用一个完全落在该集合内的小开球"包围"起来。由此,开球是判断开集的"标尺"——一个集合是不是开集,就看它的每个点能不能通过这把标尺的检验。此外,可以证明(练习 1.3 第 9 题),$\mathbb{R}^n$ 中的任何一个开集,都可以写成(可能无穷多个)开球的并集。在这个意义上,开球是构成所有开集的"基本砖块"。
但是,开集本身不一定是一个球。开球是形状最"规整"的开集,但一个集合完全可以形状很不规整,却仍然是开集——只要它的每个点都有一个完全属于该集合的小开球。以下定义给出了精确的表述。
一个单独的球是圆的。但两个球并在一起,可以是两个分离的圆形区域。无穷多个小球并在一起,可以拼出方形、星形、甚至更复杂的形状。关键在于:只要每个点附近有一个小球完全落在集合里,这个集合就是开的。
设 $A \subset \mathbb{R}^n$。点 $\boldsymbol{a} \in A$ 称为 $A$ 的内点,如果存在 $r > 0$ 使得 $B(\boldsymbol{a}, r) \subset A$。
如果 $A$ 的每个点都是内点,则称 $A$ 为开集。
"$A$ 是开集"指的是 $A$ 作为 $\mathbb{R}^n$ 的子集满足上述条件。开集本身没有维数限制——一个开集可以是 $n$ 维的区域,也可以是空集。空集是开集,因为没有任何点需要检查,条件空虚地成立。
- 开球 $B(\boldsymbol{a}, r)$ 本身是开集。事实上,对任意 $\boldsymbol{x} \in B(\boldsymbol{a}, r)$,取 $s = r - \|\boldsymbol{x} - \boldsymbol{a}\| > 0$,可以验证 $B(\boldsymbol{x}, s) \subset B(\boldsymbol{a}, r)$(练习 1.3 第 1 题)。
- 全空间 $\mathbb{R}^n$ 是开集(取 $r = 1$ 即可)。
- 空集 $\varnothing$ 是开集。
- 在 $\mathbb{R}^1$ 中,开区间 $(a, b)$ 是开集。在 $\mathbb{R}^2$ 中,开矩形 $(a, b) \times (c, d)$(四条边都不含)是开集。注意,这个矩形不是圆形的,所以它不是开球——但它是开集。因为对于矩形内部的任何一点,总可以以该点为中心画一个足够小的圆,这个圆完全包含在矩形内。
- 更复杂的形状也可以是开集。例如在 $\mathbb{R}^2$ 中,$A = \{(x,y) \mid y > x^2\}$(抛物线 $y=x^2$ 上方的整个区域)是开集。虽然它无限延伸、形状不规整,但它没有边界,每一点都能用一个小开球包围在内。
- 单点集 $\{\boldsymbol{a}\}$ 在 $n \ge 1$ 时不是开集:任何包含 $\boldsymbol{a}$ 的开球都还包含其他点。
开集中的每个点都有一个完全属于该集合的"安全半径"。这意味着开集"没有边界"——如果你站在开集中的任何一点,你可以向任何方向稍微移动一点点,而不离开集合。
- $\mathbb{R}^n$ 和 $\varnothing$ 是开集。
- 任意多个开集的并集是开集。
- 有限多个开集的交集是开集。
1. 已说明。
2. 设 $\{U_\alpha\}$ 是一族开集,令 $U = \bigcup_\alpha U_\alpha$。任取 $\boldsymbol{x} \in U$,则 $\boldsymbol{x}$ 属于某个 $U_\alpha$。因 $U_\alpha$ 是开集,存在 $B(\boldsymbol{x}, r) \subset U_\alpha \subset U$。因此 $U$ 中每点都是内点,$U$ 是开集。
证明的关键是:并集中的任何一点,必然属于其中某一个开集。这一点在该开集中有一个安全半径 $r$,这个安全半径也自动是并集中的安全半径(因为那个开集整个包含在并集中)。因此并集中每点都是内点。
3. 设 $U_1, \dots, U_k$ 是开集,令 $U = \bigcap_{i=1}^k U_i$。任取 $\boldsymbol{x} \in U$,则对每个 $i$,$\boldsymbol{x} \in U_i$。因每个 $U_i$ 是开集,存在 $r_i > 0$ 使 $B(\boldsymbol{x}, r_i) \subset U_i$。取 $r = \min\{r_1, \dots, r_k\}$,则 $r > 0$。对每个 $i$,有 $B(\boldsymbol{x}, r) \subset B(\boldsymbol{x}, r_i) \subset U_i$,从而 $B(\boldsymbol{x}, r) \subset U$。因此 $U$ 是开集。
交集中的一点必须在每个开集中都是内点,所以对每个开集存在一个安全半径 $r_i$。取所有 $r_i$ 的最小值 $r$,那么以 $r$ 为半径的球同时落在每一个开集中,也就落在它们的交集中。
为什么必须是有限交? 因为"有限个正数的最小值"仍然是正数。如果有无穷多个开集,就对应无穷多个半径,它们的下确界可能是零,此时无法保证存在一个公共的正半径。
在 $\mathbb{R}^1$ 中,$\bigcap_{n=1}^\infty (-1/n, 1/n) = \{0\}$ 是单点集,不是开集。每个开区间 $(-1/n, 1/n)$ 都是开集,但无穷交之后,原点 0 不再有任何"安全半径",因为任何开球 $(-r, r)$ 都会超出某个足够小的 $(-1/n, 1/n)$。
在定义闭集之前,需要引入"补集"的概念。
设 $A \subset \mathbb{R}^n$。$A$ 在 $\mathbb{R}^n$ 中的补集,记作 $\mathbb{R}^n \setminus A$,定义为
即补集包含全空间 $\mathbb{R}^n$ 中所有不属于 $A$ 的点。在上下文明确时,有时也简记作 $A^{\mathrm{c}}$。
$\mathbb{R}^n \setminus A$ 读作"$\mathbb{R}^n$ 去掉 $A$"。这个符号的直观意义是:从全空间 $\mathbb{R}^n$ 中"挖掉"集合 $A$,剩下的所有点构成补集。例如,$\mathbb{R} \setminus \{0\}$ 就是去掉原点后的整条实数轴 $(-\infty, 0) \cup (0, \infty)$。
$A \subset \mathbb{R}^n$ 称为闭集,如果它的补集 $\mathbb{R}^n \setminus A$ 是开集。
闭集不是开的"反面"。一个集合可以同时是开集和闭集,也可以两者都不是。
- 闭球 $\overline{B}(\boldsymbol{a}, r) = \{\boldsymbol{x} \mid \|\boldsymbol{x} - \boldsymbol{a}\| \le r\}$ 是闭集。其补集 $\{\boldsymbol{x} \mid \|\boldsymbol{x} - \boldsymbol{a}\| > r\}$ 是开集(练习 1.3 第 2 题)。
- $\mathbb{R}^n$ 和 $\varnothing$ 既是开集又是闭集。它们是 $\mathbb{R}^n$ 中仅有的既开又闭的子集(这是一个非平凡的事实,见练习 1.3 第 10 题)。
- 在 $\mathbb{R}^1$ 中,闭区间 $[a, b]$ 是闭集。单点集 $\{a\}$ 是闭集。
- 半开区间 $[a, b)$ 在 $\mathbb{R}^1$ 中既不是开集也不是闭集。
由德·摩根律与定理 1.3.3 得到闭集的对偶性质。这里先补充集合论中的两个基本事实。
德·摩根律:对任意一族集合 $\{A_\alpha\}$($\alpha$ 取遍某个指标集),有
$$\mathbb{R}^n \setminus \bigcap_\alpha A_\alpha = \bigcup_\alpha (\mathbb{R}^n \setminus A_\alpha), \qquad \mathbb{R}^n \setminus \bigcup_\alpha A_\alpha = \bigcap_\alpha (\mathbb{R}^n \setminus A_\alpha).$$简言之,"补集换交为并,换并为交"。这两个等式可以直接验证:$\boldsymbol{x}$ 不在所有 $A_\alpha$ 的交集中,等价于存在某个 $\alpha$ 使得 $\boldsymbol{x}$ 不在 $A_\alpha$ 中——这正是第一个等式。第二个等式同理。
- $\mathbb{R}^n$ 和 $\varnothing$ 是闭集。
- 任意多个闭集的交集是闭集。
- 有限多个闭集的并集是闭集。
性质 1 直接由定义及定理 1.3.3 性质 1 得到(因为 $\mathbb{R}^n \setminus \mathbb{R}^n = \varnothing$ 和 $\mathbb{R}^n \setminus \varnothing = \mathbb{R}^n$ 都是开集)。
性质 2:设 $\{F_\alpha\}$ 是一族闭集,即每个 $\mathbb{R}^n \setminus F_\alpha$ 是开集。由德·摩根律,
右边是开集的任意并,由定理 1.3.3 性质 2 知它是开集。因此左边也是开集,即 $\bigcap_\alpha F_\alpha$ 是闭集。
证明策略:要证一列闭集的交是闭集,只需证它的补集是开集。补集通过德·摩根律转化为各闭集的补集(都是开集)的并,而任意多个开集的并是开集。
性质 3:设 $F_1, \dots, F_k$ 是闭集。由德·摩根律,
右边是有限个开集的交,由定理 1.3.3 性质 3 知它是开集。因此左边也是开集,即 $\bigcup_{i=1}^k F_i$ 是闭集。
证明策略与性质2相同,但要注意:有限个开集的交是开集(定理 1.3.3 性质 3),所以性质 3 只对有限并成立。
开集:任意并,有限交。
闭集:任意交,有限并。
两者通过"补集"运算互换。
1.3.2 极限与闭集的序列刻画
在 §1.1.4 中,我们用范数定义了数列极限。现在回顾并重新用开集语言表述。
设 $\{\boldsymbol{x}_k\} \subset \mathbb{R}^n$,$\boldsymbol{a} \in \mathbb{R}^n$。则 $\boldsymbol{x}_k \to \boldsymbol{a}$ 当且仅当对任意 $\varepsilon > 0$,存在 $N$ 使得当 $k > N$ 时 $\boldsymbol{x}_k \in B(\boldsymbol{a}, \varepsilon)$。
这就是 §1.1.4 中定义 1.1.13 的直接重述。 ∎
换言之,收敛意味着:给 $\boldsymbol{a}$ 周围任意小的开球,数列从某一项起进入该开球并永远留在其中。用开集的语言来等价地表述——
$\boldsymbol{x}_k \to \boldsymbol{a}$ 当且仅当对任意包含 $\boldsymbol{a}$ 的开集 $U$,存在 $N$ 使得当 $k > N$ 时 $\boldsymbol{x}_k \in U$。
这是因为包含 $\boldsymbol{a}$ 的任何开集 $U$ 必定包含某个开球 $B(\boldsymbol{a}, r)$(这是开集的定义)。如果数列最终进入所有开球,它也就最终进入所有包含 $\boldsymbol{a}$ 的开集。反之亦然,因为开球本身就是开集。
从开球到开集的过渡基于一个简单的事实:开集中的每一点都有一个以该点为中心的小开球落在开集内。所以"数列最终进入所有开球"自动意味着"数列最终进入所有开集"。反过来,因为开球本身就是开集,所以"进入所有开集"自然包含"进入所有开球"。
$A \subset \mathbb{R}^n$ 是闭集当且仅当 $A$ 对极限封闭:若 $\{\boldsymbol{x}_k\} \subset A$ 且 $\boldsymbol{x}_k \to \boldsymbol{x}$,则 $\boldsymbol{x} \in A$。
($\Rightarrow$)方向:闭集 ⇒ 对极限封闭
设 $A$ 是闭集,$\{\boldsymbol{x}_k\} \subset A$ 且 $\boldsymbol{x}_k \to \boldsymbol{x}$。我们要证 $\boldsymbol{x} \in A$。
这里的目标是从"补集是开集"推出"序列极限不会跑出集合"。证明策略是反证法——假设极限点跑到了补集中,然后利用补集是开集的性质导出矛盾。
反设 $\boldsymbol{x} \notin A$。则 $\boldsymbol{x} \in \mathbb{R}^n \setminus A$(补集)。因为 $\mathbb{R}^n \setminus A$ 是开集(闭集的定义),存在 $r > 0$ 使得 $B(\boldsymbol{x}, r) \subset \mathbb{R}^n \setminus A$。
这是开集定义的应用:补集中每个点都是内点,所以存在一个以 $\boldsymbol{x}$ 为中心的开球完全包含在补集中。这个开球的作用是建立一个"隔离区"——它把 $\boldsymbol{x}$ 和 $A$ 完全隔开了:在这个球内,没有任何 $A$ 的点。
由 $\boldsymbol{x}_k \to \boldsymbol{x}$,对上述 $r > 0$,存在 $N$ 使得当 $k > N$ 时,$\|\boldsymbol{x}_k - \boldsymbol{x}\| < r$,即 $\boldsymbol{x}_k \in B(\boldsymbol{x}, r)$。从而 $\boldsymbol{x}_k \in B(\boldsymbol{x}, r) \subset \mathbb{R}^n \setminus A$。
数列收敛的定义是:对于任意给定的正半径,从某项起所有项都落入以极限点为中心、该半径为半径的开球内。
关键点:现在我们有一个具体的半径 $r$(就是上一步从开集定义中得到的那个),收敛性保证数列的项从某项起全部进入 $B(\boldsymbol{x}, r)$。但这个开球整个在补集 $\mathbb{R}^n \setminus A$ 中,所以这些项也都在补集中。
这意味着:从某项起,$\boldsymbol{x}_k \in \mathbb{R}^n \setminus A$,即 $\boldsymbol{x}_k \notin A$。
但这与 $\{\boldsymbol{x}_k\} \subset A$ 矛盾——序列的每一项都属于 $A$,不可能同时又属于补集。故反设不成立,$\boldsymbol{x} \in A$。
这个矛盾源于两个事实的冲突:数列的项全在 $A$ 中(已知条件);收敛性迫使它们最终全部进入补集(从闭集定义推出)。两者无法同时成立。因此极限点不可能在补集中——它必须在 $A$ 中。这证明了闭集的序列极限不会"跑出去"。
($\Leftarrow$)方向:对极限封闭 ⇒ 闭集
假设 $A$ 对极限封闭。我们要证 $\mathbb{R}^n \setminus A$ 是开集(即 $A$ 是闭集)。
这里的目标反过来了:我们要从"$A$ 对序列极限封闭"这个条件出发,推出"补集是开集"。证明策略仍然是反证法——假设补集不是开集,然后利用极限封闭的性质推出矛盾。
若不然,则 $\mathbb{R}^n \setminus A$ 不是开集。这意味着存在 $\boldsymbol{x} \in \mathbb{R}^n \setminus A$,使得 $\boldsymbol{x}$ 不是 $\mathbb{R}^n \setminus A$ 的内点。
"补集是开集"的定义是:补集中的每个点都是它的内点。因此,"不是开集"就意味着补集中至少存在一个点不是内点。我们把这个点命名为 $\boldsymbol{x}$。在后续整个推导中,$\boldsymbol{x}$ 始终固定为这一步找到的那个点。
直观理解:$\boldsymbol{x}$ 是补集中的一个点,但它在补集中"没有安全半径"——无论取多小的半径,以它为中心的开球都不能完全包含在补集中。形象地说,$\boldsymbol{x}$ 位于补集的"边界"上:从补集内部看,它不是内点;从 $A$ 的方向看,$A$ 的点可以无限逼近它。但要注意,这是直观,我们下面的论证完全是严格的。
这意味着:对任意 $r > 0$,开球 $B(\boldsymbol{x}, r)$ 不完全包含在 $\mathbb{R}^n \setminus A$ 中,即 $B(\boldsymbol{x}, r) \cap A \neq \varnothing$。
"不完全包含在补集中"意味着开球至少有一个点"漏"到了补集外面。补集的补集就是 $A$ 本身,所以这个"漏出去"的点必定属于 $A$。因此,对任意正半径 $r$,开球 $B(\boldsymbol{x}, r)$ 都与 $A$ 相交。
对每个 $k \in \mathbb{N}$,取 $r = 1/k$,在交集中选一点 $\boldsymbol{x}_k \in B(\boldsymbol{x}, 1/k) \cap A$。
上一步的结论对任意正半径都成立,所以对半径 $1, \frac{1}{2}, \frac{1}{3}, \dots$ 逐个应用,在每个交集中取一个点,分别命名为 $\boldsymbol{x}_1, \boldsymbol{x}_2, \boldsymbol{x}_3, \dots$。这个构造出的点列有两重身份:每个 $\boldsymbol{x}_k$ 都在 $A$ 中,而且到 $\boldsymbol{x}$ 的距离小于 $1/k$。
则 $\{\boldsymbol{x}_k\} \subset A$ 且 $\|\boldsymbol{x}_k - \boldsymbol{x}\| < 1/k$,故 $\boldsymbol{x}_k \to \boldsymbol{x}$。
因为 $\|\boldsymbol{x}_k - \boldsymbol{x}\| < 1/k \to 0$,由数列收敛的定义,$\boldsymbol{x}_k$ 收敛于 $\boldsymbol{x}$。现在情况是:我们构造了一个全在 $A$ 中的点列,它收敛到 $\boldsymbol{x}$。
由假设,$\boldsymbol{x} \in A$。
关键步骤:假设条件——"$A$ 对极限封闭"——说的是:如果 $A$ 中的点列收敛到某个点,那么这个极限点必定仍在 $A$ 中。这正是我们当前面临的情况:$\{\boldsymbol{x}_k\}$ 是 $A$ 中的点列,它收敛于 $\boldsymbol{x}$。因此,由"对极限封闭"这一假设,极限点 $\boldsymbol{x}$ 必须属于 $A$。
但这与 $\boldsymbol{x} \in \mathbb{R}^n \setminus A$ 矛盾。
矛盾出现了:同一个点 $\boldsymbol{x}$——
- 最初被选定为补集 $\mathbb{R}^n \setminus A$ 中的点,因此 $\boldsymbol{x} \notin A$;
- 现在由极限封闭的性质推出 $\boldsymbol{x} \in A$。
一个点不可能同时属于 $A$ 又不属于 $A$。
因此 $\mathbb{R}^n \setminus A$ 必为开集,$A$ 是闭集。 ∎
在($\Leftarrow$)方向的证明中,点 $\boldsymbol{x}$ 自始至终是同一个点——它是在反证假设中找到的那个"属于补集但不是内点"的点。序列 $\{\boldsymbol{x}_k\}$ 是为了利用"对极限封闭"条件而专门构造的"桥"——它们全在 $A$ 中,却收敛向补集中的 $\boldsymbol{x}$。极限封闭条件把 $\boldsymbol{x}$ 从补集"拉回"到 $A$,从而与 $\boldsymbol{x}$ 最初属于补集这一事实产生矛盾。
在这两个方向的证明中,我们看到了两种不同的矛盾模式:
- ($\Rightarrow$)方向:收敛性迫使 $A$ 中的点列最终进入补集,产生矛盾。
- ($\Leftarrow$)方向:极限封闭性迫使补集中的点回到 $A$,产生矛盾。
两者都依赖于同一个核心事实:一个点不能同时属于一个集合和它的补集。
这种"用序列将补集中的点拉回原集合以产生矛盾"的技巧,是点集拓扑中最基本的论证方法之一。读者在第 2 章(反函数定理的证明)和第 5 章(流形上单位分解的论证)中还会遇到类似的构造。
这个定理非常实用:要证明一个集合是闭的,往往只需证明它对取极限封闭,而不必直接处理其补集的开性。
细心的读者可能已经注意到:命题 1.3.8 用到了开球(由距离定义),定理 1.3.9 的证明中构造了半径 $1/k$ 的开球序列——这本质上还是用到了距离。这似乎与 1.3.0 节中"拓扑论证不需要距离"的说法矛盾。
事实上,1.3.0 节说的是连续性可以用纯开集的语言等价地刻画(定理 1.3.10),而这个等价刻画本身的证明当然需要用距离来建立两种语言之间的联系——因为我们目前只有距离这一种定义开集的方式。一旦建立了等价性,后续关于连续性的论证就可以选择只用开集语言,而不再调用距离。
至于紧集和闭集的序列刻画,它们在 $\mathbb{R}^n$ 中确实仍然依赖距离(因为在 $\mathbb{R}^n$ 中,开集本身就是由距离定义的)。在更一般的拓扑空间中,这些概念会有完全不依赖距离的定义(例如,紧集可以用"任何开覆盖都有有限子覆盖"来定义,序列的收敛可以用"最终进入任何包含极限点的开集"来定义),但在 $\mathbb{R}^n$ 中,我们选择最直接的方式——用距离来定义,然后用这些定义来证明需要的定理。
重要的是方向:我们正在从依赖距离的具体论证,走向只依赖开集结构的抽象论证。第 5 章的流形将使我们无法使用全局距离,那时我们将完全转向开集语言。本节是这条道路的起点。
1.3.3 连续性的两种等价刻画
在 §1.1 中,我们用 $\varepsilon$-$\delta$ 语言定义了函数的连续性。这是初等微积分的自然推广。现在,我们要建立另一种等价描述——用开集的语言。这种新的表述方式不仅简洁,而且揭示了连续性最本质的拓扑特征。
设 $f: \mathbb{R}^n \to \mathbb{R}^m$。则下列两个条件等价:
- $f$ 在 $\mathbb{R}^n$ 的每一点处 $\varepsilon$-$\delta$ 连续;
- 对 $\mathbb{R}^m$ 中的任意开集 $V \subset \mathbb{R}^m$,其原像
$$f^{-1}(V) = \{\boldsymbol{x} \in \mathbb{R}^n \mid f(\boldsymbol{x}) \in V\}$$是 $\mathbb{R}^n$ 中的开集。
$f^{-1}(V)$ 是原像,不是反函数。即使 $f$ 没有反函数,这个符号依然有意义——它表示定义域中所有被映射到 $V$ 中的那些点的集合。
(1) $\Rightarrow$ (2):$\varepsilon$-$\delta$ 连续 ⇒ 开集原像是开集
设 $f$ 在每点 $\varepsilon$-$\delta$ 连续。任取 $\mathbb{R}^m$ 的开集 $V$,要证 $f^{-1}(V)$ 是 $\mathbb{R}^n$ 中的开集。
任取原像中的一点 $\boldsymbol{a}$,即 $f(\boldsymbol{a}) \in V$。因为 $V$ 是开集,$f(\boldsymbol{a})$ 周边有一个包含于 $V$ 的开球。由 $\boldsymbol{a}$ 处的 $\varepsilon$-$\delta$ 连续性,存在 $\boldsymbol{a}$ 周边的一个开球被映射到那个开球里面,从而是 $V$ 的子集。这表明这个开球包含于原像 $f^{-1}(V)$,所以 $\boldsymbol{a}$ 是原像的内点。
任取 $\boldsymbol{a} \in f^{-1}(V)$,即 $f(\boldsymbol{a}) \in V$。因 $V$ 是开集,存在 $\varepsilon > 0$ 使 $B(f(\boldsymbol{a}), \varepsilon) \subset V$。
这是开集定义在值域中的应用:$f(\boldsymbol{a})$ 在 $V$ 中,且 $V$ 是开集,所以存在一个以 $f(\boldsymbol{a})$ 为中心的小开球完全包含在 $V$ 中。
由 $f$ 在 $\boldsymbol{a}$ 处的 $\varepsilon$-$\delta$ 连续性,对上述 $\varepsilon$,存在 $\delta > 0$,使当 $\|\boldsymbol{x} - \boldsymbol{a}\| < \delta$ 时,$\|f(\boldsymbol{x}) - f(\boldsymbol{a})\| < \varepsilon$。这意味着
连续性的定义保证了:存在定义域中以 $\boldsymbol{a}$ 为中心的一个小开球 $B(\boldsymbol{a}, \delta)$,它的像完全落在 $B(f(\boldsymbol{a}), \varepsilon)$ 内。而 $B(f(\boldsymbol{a}), \varepsilon)$ 又完全落在 $V$ 内。因此,$B(\boldsymbol{a}, \delta)$ 中每个点的像都在 $V$ 中。
从而 $B(\boldsymbol{a}, \delta) \subset f^{-1}(V)$。
这就验证了:对于原像 $f^{-1}(V)$ 中的任意一点 $\boldsymbol{a}$,我们都能找到以 $\boldsymbol{a}$ 为中心的一个小开球,它整个包含在原像中。因此 $\boldsymbol{a}$ 是原像的内点。
因此 $\boldsymbol{a}$ 是 $f^{-1}(V)$ 的内点。这证明了 $f^{-1}(V)$ 是开集。
核心链条是:$\boldsymbol{a} \in f^{-1}(V) \;\Rightarrow\; f(\boldsymbol{a}) \in V \;\Rightarrow\; \exists \varepsilon: B(f(\boldsymbol{a}),\varepsilon) \subset V \;\Rightarrow\; \exists \delta: f(B(\boldsymbol{a},\delta)) \subset B(f(\boldsymbol{a}),\varepsilon) \subset V \;\Rightarrow\; B(\boldsymbol{a},\delta) \subset f^{-1}(V)$。
每一步都直接来自定义:原像、开集、连续性。
(2) $\Rightarrow$ (1):开集原像是开集 ⇒ $\varepsilon$-$\delta$ 连续
设每个开集的原像都是开集。任取 $\boldsymbol{a} \in \mathbb{R}^n$ 和 $\varepsilon > 0$。
开球 $B(f(\boldsymbol{a}), \varepsilon)$ 是 $\mathbb{R}^m$ 中的开集。由假设,它的原像是 $\mathbb{R}^n$ 中的开集,且显然包含 $\boldsymbol{a}$。因此存在以 $\boldsymbol{a}$ 为中心的一个小开球包含在这个原像中。这个小开球的半径就是所需的 $\delta$。
开球 $V = B(f(\boldsymbol{a}), \varepsilon)$ 是开集,由假设,$f^{-1}(V)$ 是开集。
我们取一个特定的开集——以 $f(\boldsymbol{a})$ 为中心的开球。由假设(每个开集的原像都是开集),这个开球的原像是开集。
显然 $\boldsymbol{a} \in f^{-1}(V)$(因为 $f(\boldsymbol{a}) \in V$)。由开集定义,存在 $\delta > 0$ 使 $B(\boldsymbol{a}, \delta) \subset f^{-1}(V)$。
$\boldsymbol{a}$ 属于这个原像开集,所以它是该原像的内点。因此存在 $\delta > 0$ 使得以 $\boldsymbol{a}$ 为中心、$\delta$ 为半径的开球整个包含在原像中。
这意味着当 $\|\boldsymbol{x} - \boldsymbol{a}\| < \delta$ 时,$\boldsymbol{x} \in f^{-1}(V)$,即 $f(\boldsymbol{x}) \in V = B(f(\boldsymbol{a}), \varepsilon)$。因此 $\|f(\boldsymbol{x}) - f(\boldsymbol{a})\| < \varepsilon$。
整个开球 $B(\boldsymbol{a}, \delta)$ 都在原像中,所以其中每点的像都在 $V$ 中。而 $V$ 就是 $B(f(\boldsymbol{a}), \varepsilon)$,所以当 $\|\boldsymbol{x} - \boldsymbol{a}\| < \delta$ 时,$\|f(\boldsymbol{x}) - f(\boldsymbol{a})\| < \varepsilon$。这正是 $\varepsilon$-$\delta$ 连续性的定义。
因此 $f$ 在 $\boldsymbol{a}$ 处 $\varepsilon$-$\delta$ 连续。 ∎
$\varepsilon$-$\delta$ 定义依赖具体的距离数值,需要为每个 $\varepsilon$ 找一个 $\delta$。开集刻画完全不需要:它只检查"任意开集的原像是否为开集"。这让很多证明变得极其简洁。例如,两个连续函数的复合仍连续——请读者尝试分别用 $\varepsilon$-$\delta$ 和开集刻画来证明这一点,体会两者的差异。
在定理 1.3.10 中,我们假设 $f$ 定义在全空间 $\mathbb{R}^n$ 上。如果 $f$ 仅定义在子集 $A \subset \mathbb{R}^n$ 上,连续性的对应刻画是:对 $\mathbb{R}^m$ 的任意开集 $V$,存在 $\mathbb{R}^n$ 的开集 $U$ 使 $f^{-1}(V) = U \cap A$。当 $A$ 自身是开集时,$f$ 连续等价于每个开集的原像是开集。本书在大多数情况下仅处理定义在开集上的函数,此时这两种表述一致。
1.3.4 连续映射的基本性质
- 常数映射和投影映射 $\pi^i: \mathbb{R}^n \to \mathbb{R}$(取第 $i$ 个分量)是连续的。
- 若 $f, g: \mathbb{R}^n \to \mathbb{R}^m$ 连续,则 $f + g$ 连续。
- 若 $f: \mathbb{R}^n \to \mathbb{R}^m$ 和 $g: \mathbb{R}^m \to \mathbb{R}^p$ 都连续,则复合 $g \circ f$ 连续。
性质 3 用开集刻画最为简洁。任取开集 $W \subset \mathbb{R}^p$,
因 $g$ 连续,$g^{-1}(W)$ 是开集;又因 $f$ 连续,$f^{-1}(g^{-1}(W))$ 是开集。因此 $g \circ f$ 连续。
这个证明几乎只有一行:复合函数的原像就是"先取 $g$ 的原像,再取 $f$ 的原像"。两次连续性各保证一次原像是开集,因此复合函数的任意开原像也是开集。用开集语言,复合的连续性几乎是符号的自动推演。对比 $\varepsilon$-$\delta$ 证明:需要为最终的 $\varepsilon$ 先找到 $g$ 的 $\delta'$,再为这个 $\delta'$ 找到 $f$ 的 $\delta$——步骤一致,但符号多了一倍。
两个映射的"乘积"在值域为 $\mathbb{R}^1$ 时有定义,写为 $f \cdot g$。用 $\varepsilon$-$\delta$ 语言可以证明乘积的连续性。用开集刻画的话,乘积不是直接对开集取原像的操作,需要额外的步骤。这揭示了两种语言的互补性:开集语言在处理复合和加法的连续性时特别方便;具体的代数运算(乘积、除法)往往仍需要回到 $\varepsilon$-$\delta$ 或利用 $\varepsilon$-$\delta$ 语言得到的性质。
由定理 1.3.11,任何多项式函数 $P: \mathbb{R}^n \to \mathbb{R}$,如 $P(x, y) = x^2 + 3xy + y^3$,是连续的。更一般地,由连续函数经过有限次加法、乘法、除法(分母不为零)和复合得到的函数,在其定义域内处处连续。
1.3.5 紧集
在初等微积分中,闭区间 $[a, b]$ 有两条极其重要的性质:连续函数在其上能取到最大值和最小值;在其上一致连续。这两种论证都依赖于区间的两个特性:它包含端点(闭性),并且不会延伸到无穷远(有界性)。在高维中,扮演类似角色的是紧集——它是兼具有界性和闭性的集合。
$K \subset \mathbb{R}^n$ 称为紧集,如果它是有界的且是闭的。
$K$ 有界:存在 $M > 0$ 使得对任意 $\boldsymbol{x} \in K$,有 $\|\boldsymbol{x}\| \le M$。
$K$ 是闭的:其补集是开集。
- 闭球 $\overline{B}(\boldsymbol{a}, r)$ 是紧集。
- 标准 $n$ 维方块 $[0,1]^n$ 是紧集。
- $\mathbb{R}^n$ 本身不是紧集(无界)。
- 开球 $B(\boldsymbol{0}, 1)$ 不是紧集(虽然有界,但不是闭的——边界上的点可以被内部的点列逼近,但不属于集合本身)。
设 $K \subset \mathbb{R}^n$。则 $K$ 是紧集当且仅当 $K$ 中的任何点列 $\{\boldsymbol{x}_k\}$ 必有一个子列收敛于 $K$ 中的某点。
($\Rightarrow$)设 $K$ 紧。$\{\boldsymbol{x}_k\} \subset K$ 有界,由命题 1.1.14 和一维的 Bolzano–Weierstrass 定理,每个分量有收敛子列。依次取各分量的子列,得到 $\{\boldsymbol{x}_k\}$ 的一个收敛于某 $\boldsymbol{x} \in \mathbb{R}^n$ 的子列。因 $K$ 闭,由定理 1.3.9,$\boldsymbol{x} \in K$。
这个方向证明有界闭 ⇒ 序列有收敛子列。有界性保证序列有收敛子列;闭性保证该子列的极限点仍在 $K$ 中。两者缺一不可。
($\Leftarrow$)若 $K$ 不有界,则对每个 $k$ 可取 $\boldsymbol{x}_k \in K$ 使 $\|\boldsymbol{x}_k\| \ge k$,此序列无收敛子列。若 $K$ 不闭,由定理 1.3.9,存在 $\{\boldsymbol{x}_k\} \subset K$ 收敛于 $\boldsymbol{x} \notin K$,从而其任何子列也收敛于 $\boldsymbol{x} \notin K$,没有收敛到 $K$ 内点的子列。
这个方向证明如果序列总有收敛子列,则集合必须有界且闭。反证法:如果无界,可以构造一个"跑到无穷远"的序列,它不可能有收敛子列;如果不闭,可以构造一个收敛到集合外一点的序列,它的所有子列也都收敛到该点(不在集合内),因此没有收敛到集合内点的子列。两种情形都与假设(每个序列都有收敛到集合内的子列)矛盾。
在 $\mathbb{R}^n$ 中,"有界闭"与"任何点列都有收敛到自身的子列"这两种刻画紧集的方式等价。本书以"有界闭"作为定义,因为它最容易判断。序列刻画在证明定理时很实用。
1.3.6 紧集上连续函数的性质
设 $K \subset \mathbb{R}^n$ 是紧集,$f: K \to \mathbb{R}^m$ 是连续映射。则:
- 像的紧性:$f(K)$ 是 $\mathbb{R}^m$ 中的紧集。
- 极值定理(当 $m = 1$,即 $f: K \to \mathbb{R}$ 时):$f$ 在 $K$ 上能够取到最大值和最小值,即存在 $\boldsymbol{p}, \boldsymbol{q} \in K$,使得对所有 $\boldsymbol{x} \in K$,有 $f(\boldsymbol{p}) \le f(\boldsymbol{x}) \le f(\boldsymbol{q})$。
第 1 部分:$f(K)$ 有界。 反证。若不然,存在 $\{\boldsymbol{x}_k\} \subset K$ 使得 $\|f(\boldsymbol{x}_k)\| \to \infty$。
"$f(K)$ 无界"意味着存在一个序列,其范数越来越大,趋于无穷。我们通过紧性来导出矛盾。
由紧集的序列刻画,$\{\boldsymbol{x}_k\}$ 有收敛子列 $\{\boldsymbol{x}_{k_l}\}$,$\boldsymbol{x}_{k_l} \to \boldsymbol{x} \in K$。由 $f$ 在 $\boldsymbol{x}$ 处的连续性,$f(\boldsymbol{x}_{k_l}) \to f(\boldsymbol{x})$。
紧性保证了序列有收敛子列(极限点仍在 $K$ 中);连续性保证了函数值收敛到 $f(\boldsymbol{x})$。这两步的衔接是整本书中最基本的论证模式。
但收敛序列必有界,与 $\|f(\boldsymbol{x}_{k_l})\| \to \infty$ 矛盾。因此 $f(K)$ 有界。
矛盾:同一个序列,它的范数既趋于无穷大(构造方式),又收敛到一个有限值 $f(\boldsymbol{x})$(连续性和紧性推出)。一个实数序列不可能同时满足这两条。
$f(K)$ 是闭集。 任取 $\{\boldsymbol{y}_k\} \subset f(K)$ 且 $\boldsymbol{y}_k \to \boldsymbol{y}$。要证 $\boldsymbol{y} \in f(K)$。
我们要证明 $f(K)$ 对极限封闭(定理 1.3.9)。任取像集中的收敛序列,其极限必定仍在像集中。
对每个 $k$,有 $\boldsymbol{x}_k \in K$ 使 $f(\boldsymbol{x}_k) = \boldsymbol{y}_k$。由紧集的序列刻画,$\{\boldsymbol{x}_k\}$ 有子列 $\{\boldsymbol{x}_{k_l}\}$ 收敛于某 $\boldsymbol{x} \in K$。由 $f$ 在 $\boldsymbol{x}$ 处的连续性,
但 $f(\boldsymbol{x}_{k_l}) = \boldsymbol{y}_{k_l}$ 是 $\{\boldsymbol{y}_k\}$ 的子列,$\boldsymbol{y}_k \to \boldsymbol{y}$,所以 $\boldsymbol{y}_{k_l} \to \boldsymbol{y}$。极限唯一,故 $\boldsymbol{y} = f(\boldsymbol{x}) \in f(K)$。这证明了 $f(K)$ 是闭集。
综上,$f(K)$ 有界且闭,从而是紧集。
第 2 部分:设 $M = \sup\{f(\boldsymbol{x}) \mid \boldsymbol{x} \in K\}$。由第 1 部分,$f(K)$ 有界,故 $M$ 是有限实数。由上确界的定义,存在 $\{\boldsymbol{x}_k\} \subset K$ 使得 $f(\boldsymbol{x}_k) \to M$。由紧集的序列刻画,$\{\boldsymbol{x}_k\}$ 有子列 $\{\boldsymbol{x}_{k_l}\}$ 收敛于某 $\boldsymbol{q} \in K$。由 $f$ 在 $\boldsymbol{q}$ 处的连续性,
因此 $\boldsymbol{q}$ 处取到最大值。最小值同理。 ∎
核心原因是紧集"不漏"任何极限点。当用优化算法或取上确界的序列逼近最大值时,极限点必定属于定义域。这是闭性在发挥作用。而有界性则保证上确界非无穷——即这种逼近是有效的,而不是无限增大。两者缺一就会使定理失效:考虑 $f(x) = e^x$ 在 $\mathbb{R}$(闭但无界)上无最大值;$f(x) = 1/x$ 在 $(0,1]$(有界但不闭)上无最大值。
极值定理是多元微分学中寻找函数最大值和最小值的理论基础。连同反函数定理和隐函数定理(第 2 章),它们构成了多元微积分中最强大的工具。
1.3.7 本节的结束语——拓扑视角
本节建立了 $\mathbb{R}^n$ 的基本拓扑概念:开集、闭集、紧集,以及连续函数的两种等价刻画。这些概念构成了一个统一的语言体系:
- 开集编码了"附近"和"局部"的含义。它是一个拓扑空间最基本的结构。开球是开集的"基本砖块"——任何开集都可以写成开球的并集。但开集本身不必是球形的,它可以是任何形状,只要满足"每个点都有一个安全半径"的条件。
- 闭集是开集的补集,刻画了"包含所有极限点"的性质。
- 紧集是有界闭集,保留了闭区间上连续函数最重要的性质(极值定理、一致连续性等)。
- 连续性的核心特征是它将开集拉回为开集。这一事实在本质上不依赖距离的具体数值。$\varepsilon$-$\delta$ 定义和开集刻画是等价的:前者便于数值估计和误差分析,后者揭示了连续性的拓扑本质。
读者在初等微积分中已经熟悉了这些概念的 $\mathbb{R}^1$ 版本。本节的要点是:它们在 $\mathbb{R}^n$ 中依然成立,并且可以用两套等价的语言来描述。在后续章节中,我们根据论证的需要灵活选择更便捷的语言。开集刻画还为流形上的微积分(第 5 章)埋下伏笔——那里的空间不再有全局坐标,无法写出 $\varepsilon$-$\delta$ 不等式,但开集结构依然存在。
练习 1.3
- 证明开球 $B(\boldsymbol{a}, r)$ 是开集。提示:取 $\boldsymbol{x} \in B(\boldsymbol{a}, r)$,设 $s = r - \|\boldsymbol{x} - \boldsymbol{a}\|$,证明 $B(\boldsymbol{x}, s) \subset B(\boldsymbol{a}, r)$。
- 证明闭球 $\overline{B}(\boldsymbol{a}, r)$ 是闭集。提示:证明其补集是开集。
- 在 $\mathbb{R}^2$ 中,画出下列集合,并判断它们是开集、闭集、紧集、还是都不是:
- (a) $\{(x,y) \mid x > 0, y > 0\}$
- (b) $\{(x,y) \mid x \ge 0, y \ge 0\}$
- (c) $\{(x,y) \mid 1 < x^2 + y^2 \le 4\}$
- (d) $\{(x,y) \mid x^2 + y^2 = 1\}$
- (e) $\{(x,y) \mid x \in [0,1], y \in [0,1]\}$
- 用开集的语言直接证明:若 $f, g: \mathbb{R}^n \to \mathbb{R}^m$ 连续,则 $f + g$ 连续。
- 证明:定义在紧集上的连续函数是一致连续的。即:设 $K \subset \mathbb{R}^n$ 是紧集,$f: K \to \mathbb{R}^m$ 连续,证明对任意 $\varepsilon > 0$,存在 $\delta > 0$,使得对任意 $\boldsymbol{x}, \boldsymbol{y} \in K$ 且 $\|\boldsymbol{x} - \boldsymbol{y}\| < \delta$,有 $\|f(\boldsymbol{x}) - f(\boldsymbol{y})\| < \varepsilon$。
- 判断下列命题的真伪,并给出理由或反例:
- (a) 任何开集的并集是开集。
- (b) 任何开集的交集是开集。
- (c) 在 $\mathbb{R}^n$ 中,如果一个集合既开又闭,则它只能是 $\varnothing$ 或 $\mathbb{R}^n$。
- (d) 紧集的任何子集是紧集。
- (e) 如果 $f: \mathbb{R}^n \to \mathbb{R}$ 连续且 $A \subset \mathbb{R}^n$ 是开集,则 $f(A)$ 是开集。
- (f) 如果 $f: \mathbb{R}^n \to \mathbb{R}^m$ 连续且 $K \subset \mathbb{R}^n$ 是紧集,则 $f(K)$ 是紧集。
- 设 $A \subset \mathbb{R}^n$,定义 $A$ 的闭包 $\overline{A}$ 为包含 $A$ 的所有闭集的交集。证明:$\overline{A}$ 是闭集,且 $\boldsymbol{x} \in \overline{A}$ 当且仅当存在 $A$ 中的点列收敛于 $\boldsymbol{x}$。
- 本题比较 $\varepsilon$-$\delta$ 定义与开集刻画在具体论证中的方便程度。
- (a) 用 $\varepsilon$-$\delta$ 定义证明:若 $f, g: \mathbb{R}^n \to \mathbb{R}$ 在 $\boldsymbol{a}$ 处连续,则 $f \cdot g$ 在 $\boldsymbol{a}$ 处连续。
- (b) 解释为什么 $f \cdot g$ 的连续性不能像复合那样,只用"开集的原像是开集"一个步骤就完成证明。
- 在 1.3.1 中我们提到:"开球是构成所有开集的'基本砖块'。"请给出并证明这个陈述的精确形式:$\mathbb{R}^n$ 中的任意开集都可以写成(可能为无穷多个)开球的并集。
- 按以下步骤证明"$\mathbb{R}^n$ 中既开又闭的集合只能是 $\varnothing$ 和 $\mathbb{R}^n$":设 $A \subset \mathbb{R}^n$ 既开又闭,且 $A \neq \varnothing$,$A \neq \mathbb{R}^n$。取 $\boldsymbol{a} \in A$,$\boldsymbol{b} \notin A$。考虑连续映射 $\gamma: [0,1] \to \mathbb{R}^n$(连接 $\boldsymbol{a}$ 和 $\boldsymbol{b}$ 的直线段)。设 $t_0$ 为 $\{\,t \mid \gamma(t) \in A\,\}$ 的上确界。利用 $A$ 既开又闭推导矛盾。