牛津通识读本:数学(中文版) [8]
这个错误给我们造成了一点麻烦,不过只要我们保持勇气继续下去倒也没什么大不了的。接下来要相加的两个数字是8和4,我们可以在这第三位上记下一个2,然后将上一位的4改为5加以修正。这个过程还会出现,在第四位我们会先写下一个5,然后修正为6。
注意,这样的修正有可能会在写下该位结果的很久之后才出现。例如,我们要计算1.355 555 555 555 555 557 3加2.544 444 444 444 444 445 2,会首先写下3.899 999 999 999 999 99,但再往下算一位,即7加5时这一连串的9就不得不修正。就像一连串多米诺骨牌一样,这些9一位接一位地变为0。不过这样的计算方法仍然是行得通的,最后得到计算结果3.900 000 000 000 000 002 5,它让我们能够对如何将无穷小数相加赋予意义。不难看出,没有哪一位数需要修正一次以上,所以如果我们有两个无穷小数,那么两数之和的第53位(打个比方),要么是我们在上述过程的第53步写下的那个数,要么是之后修正的那个数——如果有必要修正的话。
我们想要对这一论断赋予意义:存在一个无穷小数,其平方为2。要做到这一点,我们必须首先看一看这个无穷小数是怎样产生的,然后再去理解让它和自己相乘意味着什么。可以预料到,无穷小数的乘法会比加法更为复杂。
首先,有一个产生这个小数的很自然的办法。这个数肯定在1和2之间,因为12=1,小于2,而22=4,大于2。如果你一一计算1.12,1.22,1.32,一直到1.92,你会发现1.42=1.96小于2,而1.52=2.25大于2。所以必然在1.4和1.5之间,因此它的小数展开一定是以1.4开头。现在假设你已经以此办法算出的前八位数字是1.414 213 5。你可以继续如下的计算,得到下一位数字是6。
1.414213502=1.9999998236822500
1.414213512=1.9999998519665201
1.414213522=1.9999998802507904
1.414213532=1.9999999085350609
1.414213542=1.9999999368193316
1.414213552=1.9999999651036025
1.414213562=1.9999999933878736
1.414213572=2.0000000216721449
重复这一过程,你想算出多少位都可以。虽然这样的计算永远无法结束,但是你至少有了一种清晰明了的方法,能给定小数点后第n位的数字,无论n取何值:小数点后有n位数,平方不大于2的最大小数,的小数点后第n位数字就与它的最后一位相同。例如,在所有小数点后有两位的小数中,1.41是平方不大于2的最大的一个,所以展开到小数点后两位是1.41。
让我们记最终得出的无穷小数为x。是什么让我们能够坚信x2=2呢?我们可能会给出如下的理由。
12=1
1.42=1.96
1.412=1.9881
1.4142=1.999396
1.41422=1.99996164
1.414212=1.9999899241
1.4142132=1.999998409469
1.41421352=1.99999982368225
1.414213562=1.9999999933878736
上述算式列表显示了的小数展开位数越多,自身相乘得到的小数点后的数字9就越多。因此,如果把完整地展开到无穷多位,我们应该得到无穷多个9,而1.99999999…(9无限循环)等于2。
这样的论述会导致两个困难。其一,为什么1.999999…等于2?其二,也是更严重的一个问题,“完整地展开到无穷多位”是什么意思?这是我们首先想努力搞懂的问题。
为了解决第一个困难,我们必须再次搁置一切直觉。在数学中,人们的确普遍认为1.999999…等于2,但这个事实并不是经由某种形而上学的推理过程发现的。相反,它只是种传统习惯。但这也绝不是毫无理由的传统,因为如果不采纳它,我们就必须发明怪异的新对象,或者抛弃一些熟悉的算术规则。比如,如果你坚持1.999999…不等于2,那么2-1.999999…是什么呢?如果这是0,那么你也就抛弃了一条有用的规则:若x-y=0 ,则x必定与y相等。如果这不是0,那这个数就没有通常的小数展开(否则,你从2中减掉这个数,得到的就不是1.999999…,而是较小的别的数),所以你必须创造一个新的对象,诸如“0加小数点后无穷多个0,之后是个1”。如果做这样的事,那你的麻烦才刚刚开始。这个神秘的数自乘是什么东西呢?小数点后无穷多个0,之后再来无穷多个0,之后是个1?如果你用它乘以10呢?你得到的是不是“无穷多减1”个0,之后是个1?1/3的小数展开是什么呢?用它乘以3,答案是1还是0.999999…?如果你遵循了惯用的传统,这一类难以对付的问题就不会产生了。(虽难以对付,但也并非全然不可能:在1960年代,亚伯拉罕·罗宾逊发现了对“无穷小”数的一个条理清晰的定义,但正如其名“非标准分析”所暗指的,这套理论还没有成为数学界的主流部分。)
第二个困难是更实实在在的困难,但它也是可以绕过去的。我们不去试图想象对无穷小数进行长乘计算,而仅仅将陈述x2=2解释为,x展开位数越多,平方的结果就越接近2,一如我们已经观察到的。为了更确切地说明这一点,假设你仍然坚持想要一个数,它的平方以1.9999…开始。我会向你建议1.414 21这个数,它是由x的前几位给出的。因为1.414 21很接近1.414 22,我预期它们的平方也会很接近(这很容易证明)。但根据我们选择x的办法,必然有1.414 212小于2而1.414 222大于2。因而这两个数都很接近于2。只要检查一下:1.414 212=1.999 989 924 1,于是我们就找到了满足条件的一个数。如果你想要一个新的数,其平方开始几位是
1.999999999999999999999999999999999999999999999999999…
那我可以用同样的办法,只不过多取x几位而已。(事实上,如果你想要n个9,那取到小数点后n+1位就足够了。)无论你想要多少个9,我都可以办到,这一事实正是无穷小数x自乘等于2的含义。
请注意,我所做的是“驯服”无穷,只是将涉及无穷的陈述单纯解读为一种生动的简化,其所指的乃是一条不涉及无穷的累赘得多的陈述。关于无穷的简洁陈述是“x是平方等于2的无穷小数”。可以大致翻译成:“有这样一种规则,对任意n,它能够切实地给出x的前n位数字。这使我们能够算出任意长的有限小数,它们的平方接近于2,只要算得足够长,想要有多接近就能有多接近。”
我是不是在说,x2=2这个外表简单的陈述的真正意思其实非常复杂呢?某种意义上我的确是这个意思——这条陈述确实隐含了复杂性;但从更重要的意义上讲,我并非是指这个意思。固然,在不提及无穷的情况下,要定义无穷小数的加法和乘法是很难的,而且我们还必须检查这个复杂的定义遵从第二章中列出的那些规则,诸如交换律和结合律。但是,一旦给出了这个定义,我们就可以再次无拘无束地进行抽象思考。关于x,重要的是它的平方等于2。关于“平方”一词,重要的是它的含义以某种乘法定义为基础,这种定义遵循着恰当的规则。x的第一万亿位是什么并不是真正紧要的,乘法的定义有多复杂也不真正紧要。
2. 我们经过那个路灯柱时时速为40英里
假设你坐在一辆正在加速的小轿车里,看着速度表的指针稳定地从时速30英里移动到时速50英里。我们很容易说,在某个时刻——恰在指针扫过40的那一瞬间——汽车以时速40英里的速度行驶。在那个时刻以前,车速小于它,在之后车速大于它。但是,说仅在某个瞬间车速为每小时40英里,这是指什么意思呢?如果汽车没有加速,那我们可以测量它一小时走过多少英里,从而得到它的速度。(更具操作性的是,观察它在30秒内走过多远,再乘以120。)但是,这种办法对加速的汽车显然无效:测量它在一段时间内走过多远,只能算出这段时间内的平均速度,并不能得到特定瞬时的速度。
如果我们能够测量在无穷小的一段时间内汽车走了多远,那问题就不存在了,因为这样速度就没有时间发生变化。如果这段时间是t小时,t是个无穷小的数,那么我们可以测量汽车在t小时走过多少英里,记测量结果为s,它当然也是一个无穷小的数,用它除以t就得到了汽车的瞬间速度。
这种荒唐的幻想引起的问题相当类似于前面遇到的情况,当时我们简要地考察了1.999999…可能不等于2的思想。t是0吗?如果是,那很明显,s必然也是0(没有时间流逝,汽车不能走过任何路程)。但是,无法通过0除以0来得到清楚明白的答案。如果t不是0,那在这t小时之内汽车就会加速,从而导致测量无效。
要想理解瞬时速度,我们就要利用这样的事实:如果t非常小——比如百分之一秒,则汽车没有时间去加速太多。设想对于某个时刻,我们不去试图计算确切的速度,改而用一个较准的估计来代替。这样,如果我们的测量装置是精确的,我们就能知道汽车在百分之一秒内走了多远,然后把这段距离乘上一小时内百分之一秒的数量,即乘以360 000。这个答案并不会特别准确,但既然汽车在百分之一秒内加速不多,这个答案就给了我们一个相当接近的近似值。
这个情况让我们回想起1.414 213 52相当近似于2这一事实,于是类似地,我们可以不用再操心无穷,或者说是本例中的无穷小。假设我们不是在百分之一秒内测量,而改为在百万分之一秒内测量,那汽车的加速就更少了,因而得到的答案会更加精确。这种观察让我们有了一种办法