好,我们来好好聊聊这个话题。你想证明实数集合的不可数性,而我们选择的路径是通过有理数构成的柯西序列。这是一个非常经典且有洞察力的证明方法,它帮助我们理解了实数构造的精妙之处。
要证明一个集合不可数,最常用的方法就是康托尔对角线论证。这个方法的核心思想是假设它是可数的,然后通过构造一个与列表中的每一个元素都不同的新元素来导出矛盾。我们就用这个思路来对付我们用有理数柯西序列表示出来的实数集合。
第一步:回顾一下我们是怎么“认识”实数的?
在开始证明之前,我们得先明白我们正在讨论的“实数”是什么。在严格的数学体系中,实数不是凭空出现的,而是通过更基础的数学对象构建出来的。最常见的构造方法之一就是戴德金分割或者我们这里要用的柯西序列。
简单来说,实数可以看作是我们用有理数(可以表示成两个整数之比的数,比如 1/2, 3/4, 5 等等)可以“无限逼近”的值。而柯西序列就是描述这种“无限逼近”过程的一种方式。
什么是柯西序列?
一个有理数序列 ${a_n}$(也就是说,数列中的每一项 $a_n$ 都是一个有理数)被称为柯西序列,如果对于任意小的正数 $epsilon$,都存在一个正整数 $N$,使得当 $n$ 和 $m$ 都大于等于 $N$ 时, $|a_n a_m| < epsilon$。
用人话说就是:当序列的项往后走的时候,这些项之间的差距会越来越小,小到可以任意接近零。它们不会“乱跑”,而是趋向于一个“稳定”的状态。
同一个实数可以有多少种柯西序列代表?
这里有一个关键点:同一个实数,可以由许多个不同的柯西序列来表示。比如,我们都知道 $sqrt{2}$ 是一个无理数。我们可以构造很多个有理数序列来逼近它:
序列 1: 1, 1.4, 1.41, 1.414, 1.4142, ...
序列 2: 1.4, 1.41, 1.414, 1.4142, 1.41421, ...
序列 3: 1.5, 1.4, 1.41, 1.414, ...
这些序列中的每一项都是有理数,并且它们都满足柯西序列的性质(因为它们都越来越接近 $sqrt{2}$)。它们代表的是同一个实数 $sqrt{2}$。
我们的目标集合是什么?
我们想要证明的“实数的所有代表元”组成的集合,实际上就是所有不同的有理数柯西序列的集合。但这里有个小陷阱:我们不能直接说“所有有理数柯西序列”,因为上面说的,很多不同的柯西序列代表同一个实数。
所以,我们实际上要证明的是,我们选取一种方式来代表实数(例如,我们规定用某个特定的柯西序列来代表一个实数),那么这些代表元组成的集合是不可数的。
更精确地说,我们可以定义一个等价关系:如果两个有理数柯西序列 ${a_n}$ 和 ${b_n}$ 满足 $lim_{n o infty} (a_n b_n) = 0$(也就是它们之间的差的极限是零),我们就说它们是等价的。实数就是这些等价类的一个集合。我们证明不可数性,就是证明这些等价类的集合不可数。
第二步:假设它是可数的,然后开始“捣乱”。
现在,让我们采取反证法的思路。
假设,所有实数的代表元(我们可以理解为,我们已经找到了一种方法,给每个实数都指定了一个唯一的有理数柯西序列作为它的“官方代表”)组成的集合是可数的。
如果一个集合是可数的,那么我们就可以把它的所有元素一一列举出来,就像给它们编号一样。也就是说,我们可以写出这样一个列表:
$R_1, R_2, R_3, R_4, dots, R_k, dots$
其中,每一个 $R_k$ 都是一个有理数柯西序列,代表着一个唯一的实数,并且这个列表包含了所有的实数。
第三步:用康托尔的绝技——构造一个“不存在”的实数。
我们的目标是利用这个列表来构造一个新的实数,这个新实数不在我们的列表中。
我们怎么构造它呢?我们来定义一个新的有理数柯西序列 ${c_n}$。这个序列的每一项 $c_n$ 都将由列表中的序列 $R_n$ 来决定。
我们来看列表中的第一个序列 $R_1 = (a_{11}, a_{12}, a_{13}, dots)$。
列表中的第二个序列 $R_2 = (a_{21}, a_{22}, a_{23}, dots)$。
列表中的第三个序列 $R_3 = (a_{31}, a_{32}, a_{33}, dots)$。
以此类推,列表中的第 $n$ 个序列 $R_n = (a_{n1}, a_{n2}, a_{n3}, dots)$。
现在,我们来定义我们新序列 ${c_n}$ 的第 $n$ 项 $c_n$。我们这样定义:
$c_1$ 要和 $R_1$ 的第一项 $a_{11}$ 有点不一样。
$c_2$ 要和 $R_2$ 的第二项 $a_{22}$ 有点不一样。
$c_3$ 要和 $R_3$ 的第三项 $a_{33}$ 有点不一样。
$dots$
$c_n$ 要和 $R_n$ 的第 $n$ 项 $a_{nn}$ 有点不一样。
具体怎么“不一样”呢?我们需要保证 $c_n$ 是一个有理数,并且最终 ${c_n}$ 构成一个柯西序列。
我们可以这样构造 $c_n$:
选择一个足够小的正有理数 $delta_n$(比如 $delta_n = 1/2^n$,或者更巧妙地根据 $R_n$ 的性质来选择),使得 $c_n = a_{nn} + delta_n$。
但我们需要确保 ${c_n}$ 是一个柯西序列。我们知道柯西序列的定义是任意两项之差的绝对值可以任意小。我们构造 $c_n$ 时,需要保证它“稳定”。
一个更严谨的构造方法是:
我们来定义一个新的序列 ${c_n}$。
$c_1$:选择一个有理数,它与 $a_{11}$ 不同。
$c_2$:选择一个有理数,它与 $a_{22}$ 不同,并且与 $c_1$ 之间的差要小。
$c_3$:选择一个有理数,它与 $a_{33}$ 不同,并且与 $c_1, c_2$ 之间的差都要小。
这种直接修改的方式可能有点麻烦,因为我们要同时保证与列表中的元素不同,还要满足柯西序列的性质。
换个思路,我们可以更直接地利用对角线论证的精神来构造。我们关注的不是 $c_n$ 具体是什么值,而是它不同于某个值。
让我们直接用对角线来构造一个反例序列。
假设我们已经列出了所有的实数代表元(柯西序列):
$S_1 = (a_{11}, a_{12}, a_{13}, dots)$
$S_2 = (a_{21}, a_{22}, a_{23}, dots)$
$S_3 = (a_{31}, a_{32}, a_{33}, dots)$
$dots$
$S_n = (a_{n1}, a_{n2}, a_{n3}, dots)$
$dots$
我们现在构造一个新的序列 ${b_n}$,它的每一项 $b_n$ 都是一个有理数。我们这样定义 $b_n$:
$b_n$ 的定义:
对于每一个 $n geq 1$,我们定义 $b_n$ 如下:
如果 $a_{nn}$ (即第 $n$ 个序列的第 $n$ 个元素)的整数部分是偶数,那么我们取 $b_n = a_{nn} + 1$。
如果 $a_{nn}$ 的整数部分是奇数,那么我们取 $b_n = a_{nn} 1$。
这样做是为了确保 $b_n
eq a_{nn}$。
但是,这样构造的 ${b_n}$ 集合不一定是柯西序列。我们还需要确保它满足柯西序列的性质。
让我们使用一个更标准、更安全的方式来构造。
我们定义一个新的有理数序列 ${x_n}$。
对于每一个 $n geq 1$,我们来构造 $x_n$ 如下:
$x_1$: 选择一个有理数,使得 $|x_1 a_{11}| > 1/2$。 (我们总能找到这样的有理数,比如 $a_{11} + 1$)。
$x_2$: 选择一个有理数,使得 $|x_2 a_{22}| > 1/4$,并且 $|x_2 x_1| < 1/4$。
$x_3$: 选择一个有理数,使得 $|x_3 a_{33}| > 1/8$,并且 $|x_3 x_1| < 1/8$ 且 $|x_3 x_2| < 1/8$。
$dots$
$x_n$: 选择一个有理数,使得 $|x_n a_{nn}| > 1/2^n$,并且对于所有 $k < n$, $|x_n x_k| < 1/2^n$。
这种方法有点复杂,而且选择 $delta_n$ 的大小需要特别小心,以确保最终形成的序列是柯西序列。
更直观、更经典康托尔的对角线论证应用:
让我们回到对角线这个概念本身。我们假设我们已经列出了所有实数对应的有理数柯西序列(我们称之为“代表序列”):
列表:
序列 1: ($a_{11}, a_{12}, a_{13}, a_{14}, dots$)
序列 2: ($a_{21}, a_{22}, a_{23}, a_{24}, dots$)
序列 3: ($a_{31}, a_{32}, a_{33}, a_{34}, dots$)
序列 4: ($a_{41}, a_{42}, a_{43}, a_{44}, dots$)
$dots$
现在,我们来构造一个新的有理数序列 ${x_n}$,这个序列的每一项 $x_n$ 都是一个有理数。我们的目标是让这个序列 代表一个实数,但这个实数不在我们上面的列表中。
我们这样构造 ${x_n}$:
对于每一个 $n geq 1$,我们定义 $x_n$ 如下:
$x_1$ 要与 $a_{11}$ 不同。
$x_2$ 要与 $a_{22}$ 不同。
$x_3$ 要与 $a_{33}$ 不同。
$dots$
$x_n$ 要与 $a_{nn}$ 不同。
我们如何同时做到这一点,并保证 ${x_n}$ 是一个柯西序列呢?
关键在于对角线上的“差异”。
考虑对角线上的元素:$a_{11}, a_{22}, a_{33}, a_{44}, dots$
我们来构造一个序列 ${x_n}$ 使得:
1. ${x_n}$ 是一个有理数柯西序列。
2. 对于所有的 $n geq 1$, $x_n
eq a_{nn}$。
让我们这样来定义 $x_n$:
我们从列表的第一个序列 $S_1 = (a_{11}, a_{12}, dots)$ 开始。
我们知道 $a_{11}$ 是一个有理数。
我们来构造我们新序列的第一个元素 $x_1$。我们选择一个有理数,它不是 $a_{11}$。例如,我们可以选择 $x_1 = a_{11} + 1$。
现在考虑第二个序列 $S_2 = (a_{21}, a_{22}, dots)$。
我们来构造我们新序列的第二个元素 $x_2$。我们要求 $x_2
eq a_{22}$。同时,为了让 ${x_n}$ 成为一个柯西序列, $x_2$ 必须和 $x_1$ 足够接近。
我们来一个更巧妙、更可行的构造:
我们关注的是最终形成的实数,而不是每一个 $x_n$ 都和 $a_{nn}$ 严格对应。
设我们上面列出的列表代表了所有的实数,并且每个实数都有一个唯一的代表柯西序列。
$R_1, R_2, R_3, dots$
我们来构造一个新的有理数序列 ${x_n}$,它也将代表一个实数。
我们这样构造 ${x_n}$:
对于每一个 $n geq 1$,我们来确定 $x_n$ 的值。
对于 $x_1$: 我们选择一个有理数,使得 $x_1
eq a_{11}$ (第一个序列的第一项)。
对于 $x_2$: 我们选择一个有理数,使得 $x_2
eq a_{22}$ (第二个序列的第二项),并且要求 $|x_2 x_1|$ 要很小。
对于 $x_3$: 我们选择一个有理数,使得 $x_3
eq a_{33}$ (第三个序列的第三项),并且要求 $|x_3 x_1|$ 和 $|x_3 x_2|$ 都要很小。
更精确的构造方法(使用一个固定的有理数集合来选择):
我们知道有理数是可数的。我们可以找到一个有理数 $q_0$ 使得 $q_0
eq a_{11}$。
然后,我们再找一个有理数 $q_1$,使得 $q_1
eq a_{22}$ 且 $|q_1 q_0|$ 很小。
再找一个有理数 $q_2$,使得 $q_2
eq a_{33}$ 且 $|q_2 q_0|$ 和 $|q_2 q_1|$ 都很小。
这种逐项构造的方法,关键在于如何保证 ${x_n}$ 是一个柯西序列。
核心思路:构造一个与所有列表项都不同的新序列的“极限值”。
假设我们的列表包含了所有实数,并且每个实数由一个唯一的柯西序列表示。
列表:$S_1, S_2, S_3, dots$
我们来构造一个特殊的有理数序列 ${x_n}$。
对于每一个 $n ge 1$, 我们定义 $x_n$ 如下:
选取一个有理数 $x_n$,使得:
1. $x_n$ 是一个有理数。
2. $x_n$ 不等于 $a_{nn}$ (序列 $S_n$ 的第 $n$ 项)。
3. 对于所有的 $m < n$, $|x_n x_m|$ 小于某个非常小的数(例如 $1/2^n$)。
这里的关键是,我们每次在构造 $x_n$ 的时候,除了要避免与 $a_{nn}$ 重复之外,还要确保它与前面已经构造好的 $x_1, x_2, dots, x_{n1}$ 都“靠得很近”。
例如,我们可以这样构造:
令 $delta_n = 1/2^{n+1}$。
$x_1$:选择一个有理数,使得 $x_1
eq a_{11}$ 并且 $|x_1| < delta_1 = 1/4$。
$x_2$:选择一个有理数,使得 $x_2
eq a_{22}$ 并且 $|x_2 x_1| < delta_2 = 1/8$ 并且 $|x_2| < delta_2 = 1/8$。
$x_3$:选择一个有理数,使得 $x_3
eq a_{33}$ 并且 $|x_3 x_1| < delta_3 = 1/16$ 并且 $|x_3 x_2| < delta_3 = 1/16$ 并且 $|x_3| < delta_3 = 1/16$。
$dots$
$x_n$:选择一个有理数,使得 $x_n
eq a_{nn}$ 并且对于所有 $k < n$, $|x_n x_k| < delta_n = 1/2^{n+1}$。
这是否保证了 ${x_n}$ 是柯西序列?
让我们分析一下。如果对于所有 $m < n$, $|x_n x_m| < delta_n = 1/2^{n+1}$。
那么对于任意 $m, n$ 且设 $m < n$,我们有:
$|x_n x_m| < 1/2^{m+1}$。
所以,对于任意 $epsilon > 0$, 我们可以选取一个足够大的 $N$ 使得 $1/2^{N+1} < epsilon$。当 $n, m > N$ 时,我们就有 $|x_n x_m| < 1/2^{N+1} < epsilon$。
是的,这样的构造方式可以保证 ${x_n}$ 是一个柯西序列。
现在我们有了这个柯西序列 ${x_n}$。它代表了一个实数,我们称之为 $X$。
这个实数 $X$ 必须在我们的列表 $R_1, R_2, R_3, dots$ 中,因为我们假设这个列表包含了所有实数。
所以,一定存在一个 $k$ 使得 ${x_n}$ 就是列表中的第 $k$ 个序列 $R_k$。
也就是说,$x_n = a_{kn}$ 对于所有的 $n$ 都成立。
但是,我们是如何构造 $x_n$ 的?
我们构造 $x_n$ 的时候,明确要求了 $x_n
eq a_{nn}$。
如果我们假设 ${x_n}$ 是列表中的第 $k$ 个序列,那么就意味着 $x_n = a_{kn}$ 对于所有的 $n$ 都成立。
特别地,当 $n=k$ 时,我们应该有 $x_k = a_{kk}$。
然而,根据我们的构造方法,我们要求 $x_k
eq a_{kk}$。
这就产生了矛盾:$x_k$ 既等于 $a_{kk}$ (因为它是列表中的第 $k$ 个序列),又不等于 $a_{kk}$ (根据它的构造方法)。
第四步:得出结论。
这个矛盾源于我们最初的假设:即实数集合(由其有理数柯西序列代表元组成)是可数的,可以被一一列举出来。
由于我们构造了一个“不存在”于列表中的实数,这意味着我们的列表并不完整,也就说明了我们最初的假设是错误的。
因此,实数的所有代表元(有理数柯西序列所代表的集合)是不可数的。
为什么我们要关注柯西序列?
柯西序列提供了一种严谨的方式来描述“收敛到某个值”的概念,而这个值不一定是可以通过有限步有理数算术得到(例如 $sqrt{2}$)。通过柯西序列,我们可以把有理数集合“扩展”到实数集合,而这个扩展后的集合,其规模比我们想象的要大得多,大到无法用自然数去计数。
总结一下证明的逻辑:
1. 定义实数: 将实数看作是等价类集合,其中等价关系是两个有理数柯西序列的差的极限为零。我们证明的是这些等价类的集合不可数。
2. 假设可数性: 假设实数(及其代表元)是可以一一列举的,形成一个列表:$R_1, R_2, R_3, dots$。
3. 构造反例: 利用康托尔的对角线论证思想,构造一个新的有理数柯西序列 ${x_n}$。这个序列的每一项 $x_n$ 都与列表中第 $n$ 个序列的第 $n$ 项 $a_{nn}$ 不同。关键在于,构造时还要保证 ${x_n}$ 本身是一个柯西序列。
4. 导出矛盾: 根据假设,这个新构造的序列 ${x_n}$ 必定对应列表中的某个序列 $R_k$。这意味着 $x_n = a_{kn}$ 对所有 $n$ 都成立。特别地,对于 $n=k$,应该有 $x_k = a_{kk}$。但根据我们的构造,我们明确要求 $x_k
eq a_{kk}$。这是一个直接的矛盾。
5. 得出结论: 矛盾说明了最初的假设(实数集合可数)是错误的,因此实数集合是不可数的。
这个证明的力量在于它揭示了有理数和实数之间在“数量”上的巨大鸿沟,即便是通过无限逼近的方式,也无法穷尽所有的实数。