《什么是数学》读书笔记(二·上):从自然数到实数

    今天,我们将从一系列公理开始,从自然数的产生一直说到实数理论的完善。你或许会对数学的“科学性”有一个新的认识。注意,本文的很大一部分内容并非直接来源《什么是数学》,这篇文章可以看作是《什么是数学》中有关章节的一个扩展。

    自然数是数学界中最自然的数,它用来描述物体的个数,再抽象一些就是集合的元素个数。在人类文明的最早期,人们就已经很自然地用到了自然数。可以说,自然数是天然产生的,其余的一切都是从自然数出发慢慢扩展演变出来的。数学家Kronecker曾说过,上帝创造了自然数,其余的一切皆是人的劳作。 (God made the natural numbers; all else is the work of man.)
    随着一些数学理论的发展,我们迫切地希望对自然数本身有一个数学描述。从逻辑上看,到底什么是自然数呢?历史上对自然数的数学描述有过很多的尝试。数学家Giuseppe Peano提出了一系列用于构造自然数算术体系的公理,称为Peano公理。Peano公理认为,自然数是一堆满足以下五个条件的符号:
   1. 0是一个自然数;
   2. 每个自然数a都有一个后继自然数,记作S(a);
   3. 不存在后继为0的自然数;
   4. 不同的自然数有不同的后继。即若a≠b,则S(a)≠S(b);
   5. 如果一个自然数集合S包含0,并且集合中每一个数的后继仍在集合S中,则所有自然数都在集合S中。(这保证了数学归纳法的正确性)

    形象地说,这五条公理规定了自然数是一个以0开头的单向有序链表。
    自然数的加法和乘法可以简单地使用递归的方法来定义,即对任意一个自然数a,有:
a + 0 = a
a + S(b) = S(a+b)
a · 0 = 0
a · S(b) = a + (a·b)

    其它运算可以借助加法和乘法来定义。例如,减法就是加法的逆运算,除法就是乘法的逆运算,“a≤b”的意思就是存在一个自然数c使得a+c=b。交换律、结合率和分配率这几个基本性质也可以从上面的定义出发推导出来。
    Peano公理提出后,多数人认为这足以定义出自然数的运算,但Poincaré等人却开始质疑Peano算术体系的相容性:是否有可能从这些定义出发,经过一系列严格的数学推导,最后得出0=1之类的荒谬结论?如果一系列公理可以推导出两个互相矛盾的命题,我们就说这个公理体系是不相容的。Hilbert的23个问题中的第二个问题就是问,能否证明Peano算术体系是相容的。这个问题至今仍有争议。

————————–^_^ 我是可爱的分割线 ^_^————————–

    在数学发展史上,引进负数的概念是一个重大的突破。我们希望当a<b时a-b能够继续成立,并让此时的a-b参与运算。现在我们还不知道当a<b时a-b应该如何参与运算,但请注意到(a-b)与(c-d)总是满足下面两个看上去很符合常理的式子:
(a-b) + (c-d) = (a+c) – (b+d)
(a-b) · (c-d) = (ac + bd) – (ad + bc)
    我们可以非常自然地把上面的规则扩展到a<b或c<d时的情况。现在,我们可以把自然数扩展到全体整数:把符号(a-b)直接当作一个数来处理。如果a>=b,符号(a-b)描述的是一个自然数;如果a<b,符号(a-b)描述的就是一个“负数”。当a+d=b+c时,(a-b)(c-d)属于同一个等价类(可以证明它们同时加上或乘上一个(e-f)的结果相同),我们认为它们是同一个数(正如1/2和2/4是同一个数一样)。注意到(a-b)(b-a) = (a+b)-(b+a) = 0,也就是说(a-b) = 0-(b-a)。而(a-b)(b-a)两个数中,至少有一个在原来我们的自然数范围内。受这个的启发,我们想到了用这两个数中的其中一个去描述另一个:当a<b时,我们把(a-b)记作0-(b-a);或者干脆不写那个0了,直接简记作-(b-a)。例如,我们可以把(3-5)直接写成-2。另外,注意到(a-b)+(c-d) = (a+c)-(b+d) = (c+a)-(d+b) = (c-d)+(a-b),于是我们可以立即看出,引进负数后原有的加法交换律仍然成立。类似地,可以证明在上面的定义下,其它几个算术运算基本性质依然保持不变,因此从逻辑上看负数运算是合理的。

————————–^_^ 我是可爱的分割线 ^_^————————–

    生活中遇到的另一个问题就是“不够分”、“不够除”一类的情况。三个人分六个饼,一个人两个饼;但要是三个人分五个饼咋办?此时,一种存在于两个相邻整数之间的数不可避免的产生了。为了更好地表述这种问题,我们用一个符号a/b来表示b个单位的消费者均分a个单位的物资。真正对数学发展起到决定性作用的一个步骤是把由两个数构成的符号a/b当成一个数来看待,并且定义一套它所服从的运算规则。借助“分饼”这类生活经验,我们可以看出,对于整数a, b, c,有(ac)/(bc)=a/b,并且(a/b)+(c/d) = (ad+bc)/(bd), (a/b)·(c/d)=(ac)/(bd)。为了让新的数能够用于度量长度、体积、质量,这种定义是必要的。但在数学历史上,数学家们经过了很长的时间才意识到:从逻辑上看,新的符号的运算规则只是我们的定义,它是不能被“证明”的,没有任何理由要求我们必须这么做。正如我们定义0的阶乘是1一样,这么做仅仅是为了让排列数A(n,n)仍然有意义并且符合原有的运算法则,但我们绝对不能“证明”出0!=1来。事实上,我们完全可以定义(a/b) + (c/d) = (a+c)/(b+d),它仍然满足基本的算术规律;虽然在我们看来,这种定义所导出的结果非常之荒谬,但没有任何规定强制我们不能这么定义。只要与原来的公理和定义没有冲突,这种定义也是允许的,它不过是一个不适用于度量这个世界的绝大多数物理量的、不被我们熟知和使用的、另一种新的算术体系罢了。
    我们称所有形如a/b的数叫做有理数。有理数的出现让整个数系变得更加完整,四则运算在有理数的范围内是“封闭”的了,也就是说有理数与有理数之间加、减、乘、除的结果还是有理数,可以没有限制地进行下去。从这一角度来看,我们似乎不大可能再得到一个“在有理数之外”的数了。
    当我们的数系扩展到有理数时,整个数系还出现了一个本质上的变化,这使我们更加相信数系的扩展已经到头了。我们说,有理数在数轴上是“稠密”的,任何两个有理数之间都有其它的有理数(比如它们俩的算术平均值)。事实上,在数轴上不管多么小的一段区间内,我们总能找到一个有理数(分母m足够大时,总有一个时刻1/m要比区间长度小,此时该区间内至少会出现一个分母为m的有理数)。这就使得人们会理所当然地认为,有理数已经完整地覆盖了整个数轴,所有的数都可以表示成a/b的形式。

————————-^_^ 我是可爱的分割线 ^_^————————–

    难以置信的是,这样的数竟然不能覆盖整个数轴;除了形如a/b的数以外,数轴上竟然还有其它的数!这是早期希腊数学最重要的发现之一。那时,古希腊人证明了,不存在一个数a/b,使得其平方恰好等于2。平方之后等于2的数不是没有(可以用二分法找出这个数),只是它不能表示成两个整数之比罢了。用现在的话说就是,根号2不是有理数。你可以在这里看到至少5种证明根号2不能表示成整数与整数之比的方法。根号2这种数并不是凭空想象出来的没有实际意义的数,从几何上看它等于单位正方形的对角线长。我们现有的数竟然无法表达出单位正方形的对角线长这样一个简单的物理量!因此,我们有必要把我们的数系再次进行扩展,使其能够包含所有可能出现的量。我们把所有能写成整数或整数之比的数叫做“有理数”,而数轴上其它的数就叫做“无理数”。它们合在一起就是“实数”,代表了数轴上的每一个点。

    其实,构造一个无理数远没有那么复杂。我们可以非常轻易地构造出一个无理数,从而说明无理数的存在性。把所有自然数串起来写在一起所得到的Champernowne常数0.12345678910111213141516…显然是个无理数。考虑用试除法把有理数展开成小数形式的过程,由于余数的值只有有限多种情况,某个时刻除出来的余数必然会与前面重复,因此其结果必然是一个循环小数;而Champernowne常数显然不是一个循环小数(不管你宣称它的循环节是什么,我都可以构造一个充分长的数字串,使得你的循环节中的某个数字根本没在串中出现,并且显然这个串将在Champernowne常数中出现无穷多次)。这个例子说明,数轴上还存在有大量的无理数,带根号的数只占无理数中微不足道的一部分。这个例子还告诉我们,不是所有的无理数都像pi一样可以用来测试人的记忆力和Geek程度。

    在定义无理数的运算法则中,我们再次遇到了本文开头介绍自然数时所面临的问题:究竟什么是无理数?无理数的运算该如何定义?长期以来,数学家们一直受到这个问题的困惑。19世纪中期,德国数学家Richard Dedekind提出了Dedekind分割,巧妙地定义了无理数的运算,使实数理论得到了进一步的完善。
    在此之前,我们一直是用有序数对来定义一种新的数,并定义出有序数对之间的等价关系和运算法则。但Champernowne常数这种让人无语的无理数的存在使得这种方法能继续用于无理数的定义的希望变得相当渺茫。Dedekind不是用两个或多个有理数的数组来定义无理数,而是用全体有理数的一个分割来定义无理数。我们把全体有理数分成两个集合A和B,使得A中的每一个元素都比B中的所有元素小。显然,满足这个条件的有理数分割有且仅有以下三种情况:

   1. A中有一个最大的元素a*。例如,定义A是所有小于等于1的有理数,B是所有大于1的有理数。
   2. B中有一个最小的元素b*。例如,定义A是所有小于1的有理数,B是所有大于等于1的有理数。
   3. A中没有最大的元素,且B中没有最小的元素。例如,A由0、所有负有理数和所有平方后小于2的正有理数组成,B由所有平方后大于2的正有理数组成。每一次出现这种情况,我们就说这个分割描述了一个无理数。

    注意,“A中有最大元素a*且B中有最小元素b*”这一情况是不可能出现的,这将违背有理数的稠密性。a*和b*都是有理数,它们之间一定存在其它的有理数,而这些有理数既不属于集合A,也不属于集合B,因此不是一个分割。
    为什么每一种情况3都描述了一个确定的无理数呢?其实这非常的形象。由于A里面没有最大的元素,因此我们可以永不停息地从A里面取出越来越大的数;同样地,我们也可以不断从B里面取出越来越小的数。这两边的数将越来越靠近,它们中间夹着的那段区间将越来越小,其极限就是数轴上的一个确定的点,这个点大于所有A里的数且小于所有B里的数。但集合A和B已经包含了所有的有理数,因此这个极限一定是一个无理数。因此从本质上看,Dedekind分割的实质就是用一系列的有理数来逼近某个无理数。
    你也许想到了,现在我们可以很自然地定义出无理数的运算。我们把一个无理数所对应的Dedekind分割记作(A,B),则两个无理数(A,B)和(C,D)相加的结果就是(P,Q),其中集合P中的元素是由A中的每个元素与C中的每个元素相加而得到,余下的有理数则都属于集合Q。我们也可以用类似的办法定义出无理数的乘法。另外,我们能够很快地验证,引入无理数后我们的运算仍然满足交换律、结合率等基本规律,这里就不再多讲了。

哦对了,差点忘了:
Matrix67原创,转贴请注明出处

13 条评论

发表评论