差分机
此条目没有列出任何参考或来源。 (2015年5月25日) |
差分机(Difference engine),是英国科学家查尔斯·巴贝奇研发的自动化数学机器。
差分机一号
巴贝奇设计计算机器的基本想法是利用“机器”将计算到印刷的过程全部自动化,全面去除人为疏失(如:计算错误、抄写错误、校对错误、印制错误等)。而差分机一号(Difference Engine No.1)则是利用N次多项式求值会有共通的N次阶差的特性,以齿轮运转,带动十进制的数值相加减、进位。
差分机一号(Difference Engine No.1)由英国政府出资,工匠约瑟夫·克莱芒打造,预计完工需要25,000个零件(大致均分在计算和印刷两部分),重达4吨,可计算到第六阶差,最高可以存16位数(相当于千兆的数)。但因为大量精密零件制造困难,加上巴贝奇不停地边制造边修改设计,从1822到1832年的十年间,巴贝奇只能拿出完成品的1/7部分来展示,不过差分机运转的精密程度仍令当时的人们叹为观止,至今依然是人类踏进科技的一个重大起步。
巴贝奇不断延后完成期限的严重超支(英国政府在1842年的最后清算发现整个计划一共让国库支出了£17,500)、制作过程不断修改设计、时常与克里门发生冲突等诸多原因,让完整的差分机一号一直未能完成,一万两千多个还没用到的精密零件后来都被熔解报废。
运作原理
简单来说,差分机就是一台多项式求值机,只要将欲求多项式方程的前3个初始值输入到机器里,机器每运转一轮,就能产生出一个值来。假设以“F(x)= x²+4”为例,差分机得出来的结果,就会是F(1)=5、F(2)=8、F(3)=13、F(4)=20……等,直到系统停止为止。机器运作最重要的基础,在于求出多项方程式的结果完全只需要用到加法与减法。
在F(x)=x²+4这个例子中,第一步是先算出F(1)和F(2)之间的差(8-5=3),称为第一阶差(First Difference)。如果这个值和F(2)及F(3)之间的差(13-8=5)不同的话,就拿这两个第一阶差再算一次差(5-3=2),称为第二阶差(Second Difference)。在这个例子里,每一个第二阶差都是2,所以就不用再算下去了。所以可以推论出一次方程式最多只会有第一阶差、二次方程式会有第二阶差、N次方程则会到第N阶差。而有了这个固定不变的差数后,就可以开始往前推算回去,接下来的每一个值,就是将差数和前一阶的上一个值相加,即可获得。例如求F(4)时,先将第二阶差2加上第一阶差的值5得到7,再将7加上F(3)的值13,就会得到F(4)=20,以此类推。不断重复的特性却很适合机械运算。
具体来讲巴贝奇差分机是用蒸汽机为动力,驱动大量的齿轮机构运转。 巴贝奇的分析机大体上有三大部分:其一是齿轮式的“存贮库”,巴贝奇称它为“仓库”(Store),每个齿轮可贮存10个数,齿轮组成的阵列总共能够储存1000个50位数。分析机的第二个部件是所谓“运算室”,它被巴贝奇命名为“作坊”(Mill),其基本原理与帕斯卡的转轮相似,用齿轮间的啮合、旋转、平移等方式进行数字运算。为了加快运算速度,他改进了进位装置,使得50位数加50位数的运算可完成于一次转轮之中。第三部分巴贝奇没有为它具体命名,其功能是以杰卡德穿孔卡中的“0”和“1”来控制运算操作的顺序,类似于电脑里的控制器。他甚至还考虑到如何使这台机器处理依条件转移的动作,比如,第一步运算结果若是“1”,就接着做乘法,若是“0”就进行除法运算。此外,巴贝奇也构思了送入和取出数据的机构,以及在“仓库”和“作坊”之间不断往返运输数据的部件。
差分机二号
差分机二号(或称大型差分机)在1849年设计出来,却在有生之年只实作了很小一部分。这台机器可以进行相当复杂的数学计算,具有31位元精度。