前一章把数列收敛写成了 epsilon-N 语言。本章换一个角度看同一件事:有时我们不直接证明整个数列收敛,而是先看它的某些“尾部形状”。子列告诉我们如何从原数列中抽出一条仍保留顺序的轨迹;limsup 和 liminf 记录尾部反复能达到的上边界和下边界;Bolzano-Weierstrass 定理说明有界数列一定藏着收敛子列;Cauchy 准则则把“是否收敛”改写成“尾部项彼此是否足够接近”。
这一章的目标不是背几条定理,而是学会三种判断动作:从数列中构造收敛子列,用尾部上界和下界读出振荡范围,用 Cauchy 条件证明收敛或发散。
给定数列 。如果选出一列严格递增的正整数
那么
称为 的一个子列,常写作 。
子列不是随便重排,也不是任意挑一堆项。它必须保留原数列中的先后顺序。可以跳过项,可以跳过很多项,但不能回头。

子列的核心条件在下标上: 必须严格递增。项值本身不需要单调,也不需要互不相同。例如常数列的任何子列仍是常数列。
如果某个子列 收敛到 ,我们说 是原数列的一个子列极限,也常称为聚点或极限点。这里的“极限点”只要求有一条子列靠近它,不要求整个数列都靠近它。
例如
有两个自然子列。偶数项为
奇数项为
所以这个数列不收敛,但它有两个收敛子列。

如果整个数列 收敛到 ,那么它的每一个子列都收敛到同一个 。反过来,如果你找到两个子列分别收敛到不同的极限,就已经证明原数列不收敛。
构造子列时,常见任务是让项值落进越来越小的目标区间。做法通常是:先选 ,再要求 ,再要求 ,如此递推。每一步都不能只说“存在一个下标”,还要说这个下标可以选得比前一个更大。
先明确目标。例如要构造趋向 的子列,可以设第 步的目标为 。
下面的交互可以用来练习“下标严格递增”这个条件。它看起来小,但很多子列证明的错误正是从这里开始的。
有界数列未必收敛,但它的尾部经常有稳定的上边缘和下边缘。limsup 与 liminf 就是用来记录这两个边缘的。
对有界数列 ,定义尾部上确界和尾部下确界:
随着 增大,尾部集合变小,所以 单调不增, 单调不减。由于原数列有界,两个辅助数列都收敛。于是定义

直观地说, 是“从足够靠后的位置开始,数列还会反复逼近的最高高度”; 是对应的最低高度。它们不是前若干项的最大值或最小值,而是尾部长期行为的边界。
limsup 和 liminf 最常用的判断是:
如果两者相等,并且共同值为 ,则原数列收敛到 。反过来,如果原数列收敛到 ,那么
对有界数列来说,证明收敛可以转化为压住尾部上下边界:只要尾部上确界和尾部下确界最终挤到同一个数,原数列就没有空间继续振荡。
令 。偶数项趋向 ,奇数项趋向 。尾部上确界会贴近 ,尾部下确界会贴近 ,所以
上下极限不同,说明振荡没有消失,原数列不收敛。
Bolzano-Weierstrass 定理是本章的第一个存在性定理。
每个有界实数数列都有一个收敛子列。
这句话很短,但它把“有界”变成了“至少能抽出某种收敛结构”。以后学习紧集时,会反复看到同一种思想:整体不一定收敛,任意序列却能抽出收敛子列。

设 有界,所以所有项都落在某个闭区间 中。把 二分,至少有一个半区间包含无限多项;保留那个半区间。再把保留下来的半区间二分,仍然至少有一个半区间包含无限多项;继续保留。
这样得到一列闭区间
并且每个 都包含原数列的无限多项,长度趋向 。由区间套定理,这些闭区间交于唯一一点 。
接着在第 个区间中选一个下标 ,要求
因为 中有无限多项,这个选择总能做到。区间长度趋向 ,且 ,于是
所以 收敛到 。
证明中“每个保留区间含有无限多项”不是装饰语。它保证下一步还能选到更大的下标。如果只知道区间里有一个项,递推抽取可能会卡住。
Bolzano-Weierstrass 定理常用于从“有界但不清楚是否收敛”的数列中先抽取一个收敛子列,再研究这个子列的极限。它不能直接证明原数列收敛;它只保证至少有一条收敛子列。
例如若 有界,并且所有收敛子列的极限都等于同一个数 ,那么原数列必须收敛到 。证明方法是反证:若原数列不趋向 ,则存在 ,有无限多项满足 。这些项形成一个有界子列,再由 Bolzano-Weierstrass 定理抽出收敛子列,其极限不可能是 ,矛盾。
收敛定义要求先知道候选极限 。Cauchy 条件不提极限,而是只比较数列项之间的距离。
数列 称为 Cauchy 数列,如果对任意 ,存在正整数 ,使得当 时,
这句话的意思是:足够靠后的任意两项都彼此接近。它比“相邻两项接近”强得多。

只证明 不足以证明 Cauchy。调和部分和 的相邻差趋向 ,但这个数列发散,也不是 Cauchy 数列。
假设 。给定 ,取 使得当 时
若 ,则
所以 是 Cauchy 数列。
Cauchy 数列一定有界。取 ,存在 ,使得 时 。固定 ,可得所有 的项都落在区间
中。前面有限多个项也有最大绝对值,所以整个数列有界。
在实数中,Cauchy 条件不仅是必要条件,也是充分条件。
实数数列收敛,当且仅当它是 Cauchy 数列。
证明“Cauchy 推出收敛”的常用路线是:先由 Cauchy 得到有界,再由 Bolzano-Weierstrass 定理抽出收敛子列,最后用 Cauchy 条件把整个数列拉到这个子列极限附近。
设 是 Cauchy 数列。先证明它有界,因此可以使用 Bolzano-Weierstrass 定理。
由 Bolzano-Weierstrass 定理,存在子列 收敛到某个实数 。
下面的交互工具用于观察 Cauchy 尾部条件。它只能检查有限窗口,不替代证明;但它能帮助你看清“任意两项”比“相邻两项”强在哪里。
Cauchy 准则之所以在实数中成立,本质原因是实数完备。完备性的意思可以用一句话概括:数列内部已经表现出“应该收敛”的尾部聚拢时,实数轴上确实有那个极限点。

在有理数 中,Cauchy 条件就不够。例如用有理小数逐步逼近 :
把它看作有理数列,它是 Cauchy 的;任意两项在足够靠后时小数前很多位都相同,所以彼此接近。但它在 中没有极限,因为极限应当是 ,而 。
这说明 Cauchy 条件本身描述的是“内部靠拢”。是否真的收敛,还取决于所在空间是否把缺口补齐。实数正是把这些缺口补齐后的数系。
在本课程中,Cauchy 准则、Bolzano-Weierstrass 定理、区间套定理、单调收敛定理都可以看成实数完备性的不同表现。它们长得不一样,但都在处理同一件事:无限逼近过程是否有落点。
证明 不收敛。
取偶数子列,得到 ,所以 。
给定 ,取 使得
当 时,
所以 是 Cauchy 数列。由 Cauchy 准则,它收敛;事实上它收敛到 。
取 。对任意 ,都可以取一个偶数 和一个奇数 。于是
因此不存在一个尾部能让任意两项距离都小于 ,所以 不是 Cauchy 数列。
设 有界,且
证明 。
记 ,。对所有 ,都有 。
给定 ,由 ,存在 ,使得 时 。因为 严格递增,所以存在 使得 对所有 成立。于是 时 ,即子列收敛到 。
这个数列按 循环。取 得子列恒为 ,取 得子列恒为 ,取 得子列恒为 。所以至少有子列极限 。由于存在不同子列极限,原数列不收敛。
给定 。由 Cauchy 条件,存在 ,使得 时 。由子列 ,存在 ,使得 时 。选 且 。当 时,,所以 。
它不是 Cauchy 数列。取 。对任意 ,令 ,,则
Bolzano-Weierstrass 定理只保证存在一个收敛子列,不保证所有子列有同一极限,更不保证原数列整体靠近某个数。例如 有界,并且偶数子列收敛到 、奇数子列收敛到 ,但原数列不收敛。
本章把数列极限从“直接找极限”扩展为“观察尾部结构”。子列让我们抽取局部稳定行为;limsup 和 liminf 描述尾部振荡的上下边界;Bolzano-Weierstrass 定理保证有界实数数列一定有收敛子列;Cauchy 准则把收敛改写成尾部项之间的互相接近。
后面学习实直线拓扑和紧性时,本章的语言会继续出现。闭有界区间的紧性,在序列层面上正是“每个序列都有收敛子列并且极限还留在集合里”。
再证明每个目标区间中有足够靠后的项。也就是说,对任意已经选好的 ,仍能找到 使项值落入目标区间。
最后用 epsilon-N 定义检查。给定 ,取 使 ,当 时就有 。
给定 。由 Cauchy 条件,存在 ,使得 时 。
由子列收敛,存在 ,使得 时 。再选一个 且 。
当 时,
因此 。
取奇数子列,得到 ,所以 。
如果原数列收敛,则每个子列都必须收敛到同一个极限。但这里两个子列极限不同,所以原数列不收敛。
由于 且 ,给定 ,存在 ,使 时 , 时 。
取 。当 时,
所以 。
尾部中总能找到两项距离至少为 ,所以不满足 Cauchy 条件。