【数学科普】数系为什么要一次又一次地扩充?
自然数、整数、有理数、代数数、实数、复数,数学家们为什么要一次又一次地扩充数系呢?
这里你将遇到一个关键词:『封闭』。我们说数系对某个运算是『封闭』的,意思是任何属于该数系的数经该运算后得到的结果仍属于该数系,例如实数系对于加减法运算都是封闭的。如果一个数系对某运算不封闭,那每当你使用该运算时,就要分条件讨论运算结果是否仍属于该数系。这对于单一的运算还不是特别严重的问题,但如果一个表达式包含了许多该运算的步骤,条件分支的组合数量就可能会指数爆炸。所以,如果我们能设法使数系对一个运算封闭,就可以放心大胆地在表达式中使用该运算而无需分条件讨论。
从最简单的例子开始,假设我们有一个有限的数系,只包含三个数{1,2,3},这个可怜的数系对『后继』这个简单运算都不封闭,3的后继显然不属于{1,2,3}这个数系。我们可以扩充这个有限的数系使之对后继运算封闭,这样我们就可以引入自然数(其实还有别的方案,例如把这些数字排列成一个圈,这种结构也是数学家和工程技术中常用的,但这种结构缺少自然数所具备的另一些有用性质,并不能取代自然数,本文对此也不再深入讨论,有兴趣的同学可以学习高等代数)。任何自然数的后继仍是个自然数,所以自然数对后继运算是封闭的。有了对后继运算封闭的自然数,我们还可以基于后继运算进一步定义加法和乘法。自然数不但对后继运算封闭,对加法和乘法也都封闭,任意两个自然数相加或相乘仍是自然数。但自然数对后继的逆运算(前驱)并不封闭,1没有前驱,这使自然数对加法的逆运算(减法)也不封闭,此外自然数对乘法的逆运算(除法)也不封闭。为了对前驱和减法封闭,就需要将自然数扩充为整数;为了对除法封闭,就需要将自然数扩充为·正·有理数。这两项扩充放在一起,我们就有了有理数这个数系。很不幸,我们无法无矛盾地将自然数扩充为对减法和除法两个运算同时封闭的数系,有理数(包括正有理数负有理数和0)对减法封闭,但必须去掉0才能对除法封闭,虽然有这个不便导致有时候我们不得不分条件讨论除以0的情况,但在许多情况下这并不困难,因此除了遇到可能除以0的情况,我们仍然可以放心大胆地在有理数中使用四则运算(加减乘除)表达式而无需太多讨论太多条件分支。
有了乘法运算就可以定义乘方运算,在我们解涉及未知数乘方的方程时就遇到了开方运算。古希腊毕达哥拉斯学派的数学家希帕索斯证明任何有理数的平方都不等于2(证明很简单有兴趣的同学可以搜搜看),虽然能找到平方任意靠近2的有理数。不但如此,也不存在平方等于-1的有理数。古代数学家曾经长期认为对负数开偶次方没有意义,因此最初并没有尝试建立一个对开方运算完全封闭的数系,只想建立一个除了对负数开偶次方之外的情况封闭的数系,例如由有理数通过有限次四则运算和乘方开方运算(负数开偶次方除外)任意复合运算得到的数,不妨称为根式数(无正式名称),以及所有整系数代数方程的实根构成的·实·代数数(比根式数的数系更大),但正由于这些数系都不能对开方运算完全封闭,以至于连三、四次方程求根公式都需分若干情况讨论,极为不便,以至于在数学中用得并不多。后来的突破是建立了对负数开方也保持封闭的数系,也就是(复)代数数,该数系对于开任意次方运算都完全封闭,任意整系数代数方程在该数系中都具有数量与方程次数相同的根,而且对四则运算的支持和有理数一样好,完全可以取代根式数和·实·代数数。
到了这里,我们首先提到了(复)代数数,却还没有提到实数,这跟中小学数学教育过程不同,中小学是先学了实数(但并未澄清实数是什么),然后才学复数。不过实数系的建立确实超出了小学初中的数学水平,是现代数学分析的基础。前面提到了乘方运算的逆运算,开方运算,也就是已知幂和指数求底数的运算,但乘方运算还有另一个逆运算,已知幂和底数求指数,我们前面谈到的任何一个数系对这个运算都不封闭,但数学家们没有专门为了封闭这个运算而扩充前面提到的数系,柯西和他同时代的数学家们走了另一条路,也能顺带解决对数运算和一大堆其他运算的封闭性。当时的数学家已经需要大量处理极限和微积分的问题了,他们需要数系在极限运算下仍然保持封闭。柯西定义了一种今天被称为柯西序列的东西,不太严格地说,只要在这个序列的前面去掉有限但足够多的元素之后,剩下的任意两个数的距离都不超过事先给定的任意小的正数。一个无限逼近根号2的有理数序列就是这样一个柯西序列,但这个序列最终逼近的根号2并不属于有理数,所以有理数对柯西序列求极限的运算并不封闭。事实上很容易证明代数数也不能对柯西序列求极限的运算收敛,虽然代数数包括根号2之类的数。而一个数系对柯西序列求极限的运算收敛是保证能够在这个数系上正确地做微积分的前提条件,『实数』就是满足这种要求的数系,但其严格基础直到19世纪末才由康托和戴德金建立。『实数』这个名字其实非常误导,最初这个名字仅仅是为了跟『虚数』加以区别,二者合称复数,那个时候实数和复数的真正含义特指前面提到的实代数数和(复)代数数,跟柯西序列求极限的运算没有直接关系。但由于很长一段时间微积分等数学分析工作没有涉及复数,所以『实数』这个名字后来就演变为由(实)有理数扩充而满足对柯西序列求极限的运算封闭的数系,也就是今天的实数。把这个扩充推广到复代数数中,就得到了今天意义上的复数。于是人们在复数上也建立了数学分析——复分析。许多实分析中不太优雅的定理和公式在复分析中都有简洁漂亮的推广。
再前面的每一次数系扩充过程中,扩充后的数系对原数系中本来就封闭的运算继续保持封闭,并且增加了新的封闭运算。因此无论是实数还是复数,对四则运算的支持都跟有理数一样好,我们可以轻松地在实数和复数中书写四则运算式,而除了“除以0”之外什么都不用担心。
至此,我们囫囵吞枣地介绍了数系扩充的过程,从有限数{1,2,3}一直扩充到实数和复数。这个扩充过程中,人们并不仅仅满足于使数系对某些运算封闭,还详细研究了数系扩充之后带来的新性质,其中许多性质都非常有用。比方说,复数可以表示为实部和虚部两部分,还可以表示为幅值和极角,而这种表示对指数和三角函数运算会带来许多意想不到的便利。另一方面,实部和虚部这种表示方式还可以对应到平面上的点,所以用复数来处理平面上的问题也往往会带来便利。但不要以为复数仅仅是平面上的矢量,虽然复数的加法对应矢量加法,但复数的乘积并不对应矢量的乘积运算。建立复数是为了处理代数方程求根的问题,而处理平面向量问题只是复数带来的意外收获。处理一般的向量问题更方便的工具是向量分析。
有人可能会问,复数是否还能进一步扩充,处理更高维的问题?这个问题无法简单地回答。事实上,已经有人把复数扩充为四元数八元数十六元数等,都是一种叫Clifford代数的子代数,但这些扩充跟我们之前提到的扩充很不相同。数系的每一次扩充都会破坏原有数系的部分性质,例如任何两个自然数之间的自然数是有限的,但有理数不具备这个性质,有理数是可数的,但实数不是……,但我们特别关心的四则运算的一些基本性质,乘法和加法的交换性和结合性,以及乘法和加法的分配律,在我们前面的扩充过程中从未受到破坏。但四元数乘法不满足交换性,八元数乘法不满足交换性和结合性(但满足一种叫“交错性”的比结合性更弱的性质),而十六元数的乘法连交错性都不满足。也就是说,确实可以进一步扩充复数,但四则运算的一些我们很关心的性质会受到破坏。已经有人证明,对复数的进一步扩充无法保证四则运算的所有这些性质。