瞎讲实数理论 - 几个实数基本定理
无关紧要的事
喜报:周末本来打算写一写 OI Memory 的,写完第一节兴致就没了,所以 OI Memory 暂时无限期搁置,哪天有心情了再写。(大家要知道我是已经新建了文章的!相信大家有朝一日可以看到!)
来写一篇 OI 无关的博客。
前言
春季学期才来上预科,空闲时间还是多了些,想要花点时间补一补大家上学期学的微积分课,结果看了看那本黄色的教材第一章,就被习题给俘虏了 QwQ!习题里面有什么闭区间套啊有限覆盖啊互相证来证去看得人头大,遂投降。
投降之后网上查了查资料,发现这些定理其实都是实数系基本定理,习题里疯狂的循环论证实际上是为了体现它们作为实数系的基本性质互相印证的逻辑关系。(那为什么不直接在教材部分里直接讲清:它们都被称作实数系的基本性质呢?害得我晕头转向。)
死去的回忆突然开始攻击我。记得在我初中还没有大面积停课学成 OI 傻子之前,曾经对一些数学科普读物极其感兴趣,其中有一本张景中院士写的《数学与哲学》,里面似乎就以初中生都能看懂的语言介绍了戴德金分割。经过一些上网搜索我发现这部分内容果然跟戴德金分割有着许多联系!让我们来开始瞎讲!
(以下的证明部分有些是教科书上有的,有些是口胡的,还有些是查的。笔者还没学微积分写着玩的,一些东西错了求会数分的选手不要拷打!!!)
很久很久以前,人们理所当然地认为,在一条数轴上的所有点,其位置都可以用整数之比来表示。这样定义的数被称为有理数。
有一天,人们惊奇的发现,面积为 2 的正方形,其边长可以比到数轴上,但是它的长度不能用有理数来表示!这引发了第一次数学危机,人们开始发现,我们对于数轴上的数的定义似乎是“不完备的”。
如何好好地用言语表达这种数集“完备”与“不完备的”区别呢?比较感性的想法是,一个数集如果是完备的,数轴上的每一个地方,都应该挤满了数。我们随便将数轴裂成两半,断开的地方总不应该是“空空如也”的。
(本来想先用语言描述一下感觉的,但是这个东西太抽象了,我水平不够大家还是去看看张景中的科普书吧,我们还是直接来到形式化语言。)
戴德金分割
对于一个定义了大小关系的数集 ,我们给出两个非空集合 ,满足 ,并且 。称这样的两个集合为集合 的“分割”。我们容易发现 。
对于有理数集 ,如果将其分割,考虑两边是否存在最大值/最小值,会出现以下几种情况。
-
有最大值, 有最小值。
-
有最大值, 没有最小值。
-
没有最大值, 有最小值。
-
没有最大值, 没有最小值。
第一种情况不存在。因为 是介于这两集合之间的有理数,与分割定义矛盾。
中间两种情况的分割可以直接用一个有理数 描述:比该 小的有理数放 ,大的放 , 选一边放。
第四种情况真的存在吗?事实上,把有理数按照平方是否小于等于 分组,就构造出了这样子的一个分割。
既然我们不知道什么样的事数成功分割开了 与 ,那么我们反过来,定义这样的一个分割就是一个数!这类数被称为无理数,无理数与有理数一起被称为实数集 。
强制性要求分割的 集合没有最小值(即二三两种情况强制选第二种情况),我们称有理数的这样一个分割为一个实数。
戴德金定理
有了实数的定义,我们将一些有理数的运算推广到实数上。比如说最重要的序关系,实际上就是分割的 集合之间的包含关系。
现在我们考虑,实数相比有理数,具有了哪些独特的优美性质呢?
由于实数现在是有理数的分割,对于两个实数 满足 ,那么 对应分割的 集合是 对应分割的 集合的真子集。将两个集合作差,这就说明了,任意两个实数之间必定存在一个有理数!
再从我们可爱的戴德金分割出发,考虑对于实数来说的一个分割,与有理数又有什么不一样。
与有理数相同的是,两边同时存在最值的情况不存在。而且两边同时不存在最值的情况也不存在了!因为考虑实数集的一个分割 ,提取出 中的所有的有理数组成的集合 。我们同样可以验证这是一个两边都不存在最值的有理数分割。那么这就定义出了一个实数 ,这个实数应该已经被分到了 的其中一边。假设在 ,我们可以证明 就是 的一个最大值。否则的话,如果 集合中存在一个比这个 更大的实数,那么这两个实数之间存在一个有理数,与 的分割性质矛盾。
这给出了我们这篇文章中实数系的第一个基本性质:戴德金定理,即实数系的任意一种分割,恰好一边有最值,另一边没有!
确界原理
接下来就回到我们那本微积分教材上给出的第一个实数系基本性质:确界原理。
对于一个实数集合 ,如果 ,则称实数 为 的一个上界。如果一个集合上界组成的集合中有一个最小的数,那么我们称这个最小值为集合 的上确界 。同理定义下确界 。
确界原理指出了实数系中,有上界的非空集合必定有上确界。(以下的讨论对下确界同理)
让我们来用戴德金定理推出确界原理!
我们记 所有上界的组成的集合为 ,记其补集 。利用反证法容易证明,,即 是 的一个分割。
由戴德金分割的基本性质,我们知道 中恰好一个有最值。所以我们只需要论证 没有最大值就可以知道 有最小值了。
设 最大值为 ,由其不是 上界知道 ,那么考察 ,其不是 的上界,应该属于 ,与 是 最大值矛盾!
所以, 的所有上界组成的集合具有最小值,即上确界。
单调有界定理
单调且有界的数列必定收敛。
我们考虑用确界原理说明这个事实。
不妨假设数列单调递增且有上界,那么这个数列的数组成的集合就有上确界 ,而 不是上界,也就是说 ,由于数列单调递增,所以 ,即数列收敛于上确界 。
闭区间套定理
给定一个无限长的闭区间序列 ,满足 , 且 ,则存在唯一实数 使得 。
我们考虑使用单调有界定理证明这个事实。
首先闭区间的左端点、右端点序列 是单调递增/单调递减数列数列,且它们都是有界的, 具有上界 , 具有下界 ,由单调有界定理知,这两个数列均收敛。
再由极限的加减法运算(注意到极限的四则运算证明并没有用到实数基本定理)我们知道 必定收敛于同一个数(它们的差收敛于 ),记为 。由于单调递增/减的数列极限一定是其的一个上界/下界,我们有 。
关键是怎么验证唯一性。假设存在 也满足条件,然而 ,所以我们取 ,那么 ,在 之后的区间不可能同时包含 。
有限覆盖定理(Heine-Borel 定理)
对于一个由开区间构成的集合 ,我们定义其覆盖了闭区间 当且仅当 。当然这里 可能是无穷集合,定义其并可能有点奇怪,我们也可以这样描述:。
有限覆盖定理指出了,一定存在 的一个有限子集,使得其仍然能覆盖 。
考虑使用闭区间套定理说明这个有趣的事实。
反证法,假设 只能被 无限覆盖。令 ,我们将 对半分成两个区间,这两个区间显然不可能都被有限覆盖,否则它们的并显然也可以被有限覆盖。
取其中一个只能无限覆盖的半区间,将其记为 ,再对 做同样的操作得到 ,反复进行下去……
可以发现,这样形成的区间序列满足闭区间套的应用条件(每次长度减半,长度极限为 )。这样存在一个实数 使得其被区间序列中的所有区间包含。
注意这里我们并不能直接说,这个实数能被有限覆盖,所以出现矛盾。因为这个实数并不存在于区间序列中,而只是这个区间序列两个端点的极限,贸然对无限长的逻辑链进行讨论是错误的!(下面就说明了,闭区间集的情况同样可以说明到这一步,但闭区间集的情况并不成立!)
由覆盖的定义,,由开区间的性质,我们知道 。而由于闭区间套的左右端点收敛于 ,。所以闭区间套上存在某个区间是 的子区间,被有限覆盖,矛盾!
值得注意的是证明中使用了开区间集这个性质。换成闭区间能不能行呢?我们可以构造一个区间集 ,这里面少了任何一个区间都无法对 造成覆盖。
致密性定理(Bolzano-Weierstrass 定理)
BW 定理指的是有界数列必存在收敛子列。这其实还有个名字叫聚点定理,或者说是聚点定理在实数集上的特例。聚点定理说的是任何有界无穷点集至少有一个聚点,聚点指的是任意一个邻域都包含了无穷多个点集中的点。在实数轴上,有界数列组成了一个有界无穷点集,其存在聚点就说明了存在一个子列收敛到这个聚点。
让我们来使用有限覆盖定理证明 BW 定理。
设有界数列的界是 ,假设 不存在任何一个点是聚点,即存在一个开邻域使得其仅包含有限个数列中的点。这些邻域组成了一个无穷开区间集,覆盖了 。应用有限覆盖定理,其存在一个有限子集同样覆盖了 。这就说明 仅存在有限个数列中的点,与数列的无限性矛盾。
柯西审敛准则
与数列极限的 语言类似,一个数列 被称为柯西列当且仅当 。
一个数列收敛当且仅当其为柯西列。
利用 BW 定理说明柯西审敛准则。
由数列极限的 语言定义可以简单得到柯西列肯定是数列收敛的必要条件,考虑论证其充分性。
首先柯西列肯定有界,因为选取一个常数 从某项开始,两两只差不超过这个常数,也就是说前缀最大值+ 肯定是一个上界,下界同理。
那么由 BW 定理,其存在一个子列收敛。我们考虑证明柯西列与该子列收敛到同一个极限 。
任取一个 ,从某项开始,柯西列的两两之差 ,从某项开始,其子列与 之差也 。也就是说一定从某项开始,柯西列的任意一个元素到 距离也 (三角形不等式),即柯西列收敛于 。
反推
观察上面的粗体字部分,发现我们 7 个实数基本性质的逻辑链条正好是:
戴德金定理 确界原理 有界单调定理 闭区间套定理 有限覆盖定理 BW 定理 柯西审敛准则。
事实上,这些定理共同刻画了实数性质,它们两两之间可以互相推出。
然而写 个证明实在是太难受了。所以我们这里只推下柯西审敛 戴德金定理,连成一个环就可以体会到实数基本定理的关系了。
考虑使用柯西审敛准则推出戴德金定理。
首先实数的分割我们已经知道了两边都有最值的情况不存在,所以我们只需要否决掉两边都没有最值的情况就行了。
假设存在分割 使得 无最大值, 无最小值。任取 ,对于区间 我们考虑将其分半,一定存在一半既包含 中的数又包含 中的数,依然考虑选择那一半递归下去。
可以验证 都是柯西列,因为经过 次分半之后, 一次的增加/减少量不会超过 ,这样两项之间的差距不会超过 。
所以我们知道了 收敛,类似于我们证闭区间套的时候,我们也知道 收敛于同一个实数 。由 单调,我们知道 既是 数列的上界,也是 数列的下界。 无论放在 还是放在 都是最值,矛盾!于是戴德金定理成立。
总结
浪费了巨多时间在教材的第一章上,做了一些意义不大的事情……但是根据上面的八个证明,我们可以发现一些共性的比较有用思想。
比如有限覆盖定理证明所用的思想是构造了一个无限长的区间列。然后证明这个区间列的逻辑会在有限长的地方断开。这个无限区间套的想法也被反复的用在实数的其它一些证明上。
跟 zhouhuanyi 讨论了下,他曾经经常思考无限情况下的数学归纳法,然后发现一些逻辑链如果伸到了无穷将会出现许多奇怪的问题。
有限覆盖定理,我一开始的想法局限在这样一个考察上:每次站在一个点上,增广左端点在你左边的所有区间右端点最大的一个,不断增广下去可以增广到最右边,这样不就形成了一个覆盖了。
这是一个非常 OIer 的想法(比如说,有些区间 OI 题就是不断增广右端点),但是这样的一个考察链,它无限长,因而这一个想法就变得非常没有前途。这也体现了正常人在尝试用直觉理解“无限”时,可能遇到的困惑。
人类最终与实数系和无限这个几个反直觉的概念“和解”的方法,是用形式逻辑来声明它们的性质,而不是直接用现实中的直觉搬过来定义它们(我们小时候学习加法不会从皮亚诺开始学起,而学无限却得从 这一类的语言学起)。
本来这一个部分想写些有趣的思考的,但是读书少学得也少发现说不出来。
上面讲的戴德金分割一般来说其实是实数公理的一部分,你可以将实数公理替换成其它我们提到的实数基本定理。这些东西之所以“基础”放在了教材最前面,正是因为它们都是实数理论的地基。
写着写着去查了下资料,发现搜到了一堆数分笔记,才知道这些东西事数分的基础内容,难怪微积分教材上不展开讲。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 使用C#创建一个MCP客户端
· ollama系列1:轻松3步本地部署deepseek,普通电脑可用
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· 按钮权限的设计及实现