危机:分析学的严谨化
众所周知,整个分析学的大厦,建立在一个重要的东西之上————极限.在极限被严格定义之前,Newton和Leibniz就创立了微积分.他们的微积分建立在“无穷小量”之上.
他们把“无穷小量”当作一个“要多小有多小”但不等于$0$的数字.
以求$x^2$的导数为例子:
我们令无穷小量为$o$,且令其作为函数增量.于是函数的导数可以定义为函数因变量的增量与自变量的增量在取无穷小量时的比值.
以求$x^2$的导数为例子:
$$\frac{(x+o)^2-x^2}{o} = \frac{2xo+o^2}{o} = 2x+o$$
由于$o$“非常小”,所以可以看作$0$.于是$x^2$的导函数为:
$$2x$$
英国哲学家Berkeley激烈抨击:这简直是“已死量的幽灵”.————先假设$o$非零(否则分母为$0$不能作分母),又在最后把它当成$0$扔掉,这是违反逻辑的.
为了解决这个问题,Weierstrass定义了极限.
- 数列极限: 设数列 $\{x_n\}$,常数 $A$.若对任意 $\varepsilon > 0$,存在正整数 $N$,使得当 $n > N$ 时,有 $$|x_n – A| < \varepsilon$$ 则称数列 $\{x_n\}$ 收敛于 $A$,记为 $\lim_{n \to \infty} x_n = A$ .
- 函数极限(序列定义): 设函数 $f(x)$ 在 $x_0$ 的某去心邻域内有定义,常数 $A$.若对任意数列 $\{x_n\}$,只要 $x_n \to x_0$ 且 $x_n \neq x_0$,就有 $f(x_n) \to A$,则称当 $x \to x_0$ 时 $f(x)$ 的极限为 $A$,记为 $\lim_{x \to x_0} f(x) = A$. 为什么先用序列来定义函数极限?因为数列极限是我们已经掌握的判定工具,序列定义把函数极限”降维”成一列离散路径上的考察.这暗示了分析学的底层语言是序列——后文完备性的讨论将以序列为主角.
- 函数极限(传统 $\varepsilon-\delta$ 定义): 设函数 $f(x)$ 在 $x_0$ 的某去心邻域内有定义,常数 $A$.若对任意 $\varepsilon > 0$,存在 $\delta > 0$,使得当 $0 < |x – x_0| < \delta$ 时,有 $$|f(x) – A| < \varepsilon$$ 则称当 $x \to x_0$ 时 $f(x)$ 的极限为 $A$,记为 $\lim_{x \to x_0} f(x) = A$.
Heine 归结定理
上述序列定义与传统 $\varepsilon-\delta$ 定义等价.这里给出完整的双向证明.
证明.
- 先证充分性. $\varepsilon-\delta$ 定义 ⟹ 序列定义: 设 $\varepsilon-\delta$ 定义成立.任取数列 $\{x_n\}$,满足 $x_n \to x_0$、$x_n \neq x_0$,要证 $f(x_n) \to A$. 对任意 $\varepsilon > 0$,由 $\varepsilon-\delta$ 定义,存在 $\delta > 0$,使得当 $0 < |x – x_0| < \delta$ 时,有 $|f(x) – A| < \varepsilon$.又因为 $x_n \to x_0$,存在正整数 $N$,当 $n > N$ 时 $|x_n – x_0| < \delta$.结合 $x_n \neq x_0$,有 $0 < |x_n – x_0| < \delta$,于是 $|f(x_n) – A| < \varepsilon$.故 $f(x_n) \to A$.
- 下证必要性. 序列定义 ⟹ $\varepsilon-\delta$ 定义: 反证.假设序列定义成立,但 $\varepsilon-\delta$ 定义不成立.则存在 $\varepsilon_0 > 0$,对任意 $\delta > 0$,都存在 $x$ 满足 $0 < |x – x_0| < \delta$ 且 $|f(x) – A| \geq \varepsilon_0$. 取 $\delta = 1/n$($n = 1, 2, \ldots$),逐次得到一列 $x_n$,满足 $$0 < |x_n – x_0| < \frac{1}{n},\quad |f(x_n) – A| \geq \varepsilon_0$$ 于是根据夹逼定理 $|x_n – x_0| \to 0$,即 $x_n \to x_0$ 且 $x_n \neq x_0$,但 $f(x_n)$ 不收敛到 $A$——这与序列定义矛盾.故 $\varepsilon-\delta$ 定义成立.
因此两种定义完全等价,可以互换使用.
有了极限的概念(以下采用传统定义),我们就能严谨地定义导数,而不需要依赖那个神秘的”无穷小量”.
- 定义导数: 设函数 $f(x)$ 在 $x_0$ 的某邻域内有定义.若极限 $$\lim_{x \to x_0} \frac{f(x) – f(x_0)}{x – x_0}$$ 存在,则称 $f$ 在 $x_0$ 处可导,该极限值称为 $f$ 在 $x_0$ 处的导数,记为 $f'(x_0)$. 注意这里 $\frac{f(x) – f(x_0)}{x – x_0}$ 中的分母 $x – x_0$,在取极限的过程中始终不为 $0$(极限只关心去心邻域内的值),而极限值却可以”恰好”定义为某种极限逼近的过程——准确地说,是差值比这个整体当 $x \to x_0$ 时的极限.这正是 Berkeley 所质疑的”先非零、后为零”问题的严谨化:我们不再先设 $o$ 非零再把它扔掉,而是把整个差商过程交给极限来处理. 以 $f(x) = x^2$ 为例: $$f'(x_0) = \lim_{x \to x_0} \frac{x^2 – x_0^2}{x – x_0} = \lim_{x \to x_0} \frac{(x – x_0)(x + x_0)}{x – x_0} = \lim_{x \to x_0} (x + x_0) = 2x_0$$ 这里的关键一步是约分 $\frac{(x-x_0)(x+x_0)}{x-x_0} = x + x_0$,它要求 $x \neq x_0$——而这恰好是极限定义所保证的:差商只在去心邻域中考察,约分永远合法.最终由函数极限的连续性(或直接代入)得 $2x_0$,导函数为 $f'(x) = 2x$.
完备性
在上文的讨论中,我们基于一个前提,即数列极限存在.但是,在$\mathbb{Q}$中,某些数列的极限不存在.
那么,求导到底在什么意义上要求完备性?单点的差商极限本身并不要求完备——$x^2$ 在任意有理点的导数 $2x_0$ 仍是有理数.但极限值未必留在有理数中.考虑函数
$$f(x) = \sqrt{x+1}$$
在有理点 $x_0 = 1$ 处,分子有理化:
$$\lim_{x \to 1} \frac{f(x) – f(1)}{x – 1} = \lim_{x \to 1} \frac{\sqrt{x+1} – \sqrt{2}}{x – 1} = \lim_{x \to 1} \frac{x+1-2}{(x-1)(\sqrt{x+1}+\sqrt{2})} = \lim_{x \to 1} \frac{1}{\sqrt{x+1}+\sqrt{2}}$$
令 $x \to 1$,得
$$f'(1) = \frac{1}{2\sqrt{2}}$$
这是一个无理数.导数由极限过程定义,而极限值必须存在于数系中:若把数系限制在 $\mathbb{Q}$,这个导数就不存在.极限的产物——导数、积分、级数之和——会不断逃出 $\mathbb{Q}$,微积分无法在 $\mathbb{Q}$ 上自洽.
再看下例:
设数列
$$x_1 = 1,\quad x_2 = 1.4,\quad x_3 = 1.41,\quad x_4 = 1.414,\quad x_5 = 1.4142,\ \ldots$$
为 $\sqrt{2}$ 的十进制逐位逼近.每一项都是有理数,相邻两项之差 $|x_{n+1} – x_n|$ 越来越小,序列”内部行为”看起来完全正常,似乎在收敛.
但若要用 $\varepsilon-N$ 定义验证它收敛,你必须预先指认一个常数 $A$——而这个数列的极限应该是 $\sqrt{2}$,它不是有理数.于是在 $\mathbb{Q}$ 中,找不到任何一个数可以担任 $A$,这个数列在 $\mathbb{Q}$ 中极限不存在.
问题不在数列本身——数列的行为毫无异常,而在于数系 $\mathbb{Q}$ 有”洞”:极限 $\sqrt{2}$ 所在的位置,$\mathbb{Q}$ 中的点可以无限逼近,但那个位置本身是空的.
所以,这个数列的极限在$\mathbb{Q}$中是不存在的.刚才导数的例子实际上也依赖于数列极限(虽然其导数诱导数列每项均为无理数,下面将会给出一个每项都为有理数但导数依旧收敛到无理数的例子).问题的根源出在 $\varepsilon-N$ 定义要求预先指认极限值 $A$——但很多时候我们只有数列本身,并不知道它收敛到哪里.于是自然要问:能否只凭数列自身的内部行为判定收敛,而不需要外部参照 $A$?
把 $A$ 从 $\varepsilon-N$ 定义中驱逐出去.若 $x_n \to A$,则对任意 $\varepsilon > 0$,存在 $N$,当 $n > N$ 时 $|x_n – A| < \varepsilon/2$.于是当 $n, m > N$ 时,由三角不等式
$$|x_n – x_m| \leq |x_n – A| + |A – x_m| < \frac{\varepsilon}{2} + \frac{\varepsilon}{2} = \varepsilon$$
左边的式子不含 $A$:收敛的序列,其各项必然彼此接近.这个”内部性质”就是
- Cauchy 列: 设数列 $\{x_n\}$.若对任意 $\varepsilon > 0$,存在正整数 $N$,使得当 $n, m > N$ 时,有 $$|x_n – x_m| < \varepsilon$$ 则称 $\{x_n\}$ 为 Cauchy 列(基本列).
刚才的推导正是:收敛的数列必是 Cauchy 列.
那么反过来,Cauchy 列一定收敛吗?回到 $\sqrt{2}$ 逼近序列:它不仅相邻两项之差趋于 $0$,事实上对任意充分大的 $n, m$,$|x_n – x_m|$ 都小于任意给定的 $\varepsilon$——它是 Cauchy 列.但在 $\mathbb{Q}$ 中它没有极限.
刚才的导数例子,实际上已经给出了另一个不收敛的 Cauchy 列.更严格地,我们可以构造一个定义在 $\mathbb{Q}$ 上、取值也在 $\mathbb{Q}$ 中的函数,使它的差商序列是一个完全生活在 $\mathbb{Q}$ 中的不收敛 Cauchy 列.
对每个有理数 $q \neq 0$,令 $N(q)$ 为使 $10^{-N(q)} < |q|$ 成立的最小正整数.将 $\sqrt{2}$ 的十进制展开截断到 $N(q)$ 位小数,记为 $a(q)$:
$$a(q) = \frac{\lfloor \sqrt{2} \cdot 10^{N(q)} \rfloor}{10^{N(q)}}$$
($\lfloor \cdot \rfloor$ 为向下取整,$a(q)$ 是有理数,且 $|a(q) – \sqrt{2}| < 10^{-N(q)} < |q|$,因为截断后舍去的部分至多贡献 $10^{-N(q)}$ 的量级.)截断位数的规则 $N(q)$ 对每个 $q$ 唯一确定,于是 $a(q)$ 唯一,定义
$$f(q) = q \cdot a(q), \quad f(0) = 0$$
这是一个良定义的 $\mathbb{Q} \to \mathbb{Q}$ 函数:$q$ 与 $a(q)$ 都是有理数,乘积仍是有理数.考察它在 $0$ 处的差商:
$$\frac{f(q) – f(0)}{q} = a(q) \in \mathbb{Q}$$
每一项都是有理数.取有理数列 $q_n \to 0$,则差商序列 $\{a(q_n)\}$ 各项有理、彼此任意接近——它是 Cauchy 列.但
$$\lim_{n \to \infty} a(q_n) = \sqrt{2} \notin \mathbb{Q}$$
这个 Cauchy 列完全生活在 $\mathbb{Q}$ 中,却不在 $\mathbb{Q}$ 中收敛.于是 $f$ 在 $0$ 处的导数 $\sqrt{2}$ 是无理数:在 $\mathbb{Q}$ 中做微积分,这个导数不存在.
注意这个函数必须人工构造:$\mathbb{Q}$ 系数多项式、有理函数在有理点的导数仍是有理数($\mathbb{Q}$ 对四则运算封闭),”自然”的函数不会逃逸——逃逸只能来自极限过程本身.
不妨看一看这个函数长什么样.由于 $N(q)$ 只依赖 $|q|$ 的大小层级,$a(q)$ 是一个分片常数函数:
$$q \in (0.1, \infty) \Rightarrow a(q) = 1.4; \quad q \in (0.01, 0.1] \Rightarrow a(q) = 1.41; \quad q \in (0.001, 0.01] \Rightarrow a(q) = 1.414; \ldots$$
越靠近 $0$,$a(q)$ 越接近 $\sqrt{2}$.(例如 $a(1) = a(1.5) = a(2) = 1.4$:只要 $|q| > 10^{-1}$,$N(q)$ 就停在 $1$,截断到 $1$ 位小数.)
于是 $f(q) = q \cdot a(q)$ 在正半轴的每个区段上都是一条过原点的直线,斜率恰为该段的 $a(q)$ 值——靠近原点时,斜率从 $1.4$ 一步步变为 $1.41$、$1.414$、$1.4142$…,层层逼近 $\sqrt{2}$.负半轴由奇对称 $f(-q) = -f(q)$ 给出.
这个函数有三层行为:
- 区间内部(不含分界点):$f$ 是直线段,导数 $= a(q)$,是有理数——局部的”微分”完全正常.
- 分界点 $q = 10^{-m}$ 处:两侧直线斜率不同,$f$ 在此跳跃(不连续),自然不可导.
- 原点 $0$ 处:各条直线段的斜率沿逼近方向收敛到 $\sqrt{2}$——$f$ 在此可导,且导数是无理数.
也就是说:这个函数处处局部的导数都是有理数,唯独原点这一个点的导数是无理数.而原点恰恰是极限过程”汇聚”的地方——切线斜率的极限 $1.4 \to 1.41 \to 1.414 \to \cdots$ 逃出了 $\mathbb{Q}$.这精确地演示了本文的论点:不是局部的运算出问题,而是极限过程的产物(导数、级数和、积分)必然逃出 $\mathbb{Q}$.这种”病态”不是构造的缺陷,而是论证的必需品:若 $f$ 光滑,$\mathbb{Q}$ 系数的导数就有理,逃逸就无从演示.
所以 Cauchy ⟹ 收敛 并不自动成立,它取决于数系.如果一个数系中每个 Cauchy 列都收敛,就称这个数系是完备的.$\mathbb{R}$ 是完备的,$\mathbb{Q}$ 不是——这正是微积分必须建立在 $\mathbb{R}$ 上的根本原因.
那么,如何构造一个完备的数系?注意到 $\mathbb{Q}$ 中”逃逸”的 Cauchy 列并不只有 $\sqrt{2}$ 逼近序列这一个——比如牛顿法迭代、连分数逼近,也会得到不同的有理数 Cauchy 列,它们都”逃向同一个洞”.于是想法自然出现:
把逃向同一个洞的 Cauchy 列归为一类,把每一类当作一个新数.
- 等价关系: 设 $\{x_n\}$、$\{y_n\}$ 是 $\mathbb{Q}$ 中的 Cauchy 列.若 $x_n – y_n \to 0$,则称它们等价,记为 $\{x_n\} \sim \{y_n\}$. 可以验证这是等价关系:自反、对称显然;传递性用三角不等式: $$|x_n – z_n| \leq |x_n – y_n| + |y_n – z_n| \to 0$$
- 实数的定义: $\mathbb{R}$ := $\mathbb{Q}$ 中所有 Cauchy 列的等价类全体. 每个等价类是一个新对象,称为一个实数.有理数 $q$ 嵌入其中:常数列 $\{q, q, q, \ldots\}$ 所在的等价类就是 $q$ 本身. 于是 $\sqrt{2}$ 不再是一个”缺失的数”,而是逼近序列 $\{1, 1.4, 1.41, \ldots\}$ 所在的那个等价类——它作为一列有理数的集合,是确实存在的对象.洞被填上了:洞 = 逃逸 Cauchy 列的共同归宿.回想前文的困境:$\varepsilon-N$ 定义需要预先指认极限值 $A$,而现在 $A$ 本身被构造出来了——它就是这个等价类.
- 运算: 逐项进行.若 $x = [\{x_n\}]$,$y = [\{y_n\}]$,定义 $$x + y = [\{x_n + y_n\}], \quad x \cdot y = [\{x_n y_n\}]$$ 需要验证两件事:Cauchy 列逐项相加(乘)后仍是 Cauchy 列,且结果不依赖代表元的选取——若 $\{x_n\} \sim \{x’_n\}$,则 $\{x_n + y_n\} \sim \{x’_n + y_n\}$.这些验证是机械的但必不可少:构造的意义就在于,一切性质都必须从有理数一步步推出来.
- 完备性: 构造的目的就是完备性.可以证明:$\mathbb{R}$ 中每个 Cauchy 列都收敛.思路是:实数序列的每一项本身是一个”Cauchy 列等价类”,从每类中取出代表元,利用有理数稠密性把”实数 Cauchy 列”翻译回有理数层次,最终证明它收敛到某个等价类. 至此我们得到了一个完备的数系.微积分可以安心地建立在其上:任何”内部正常”的序列,极限值都必然存在——不会再有 $\sqrt{2}$ 那样的逃逸发生.
(co-work with deepseek-v4-flash-0731)