巴比奇差分机2号【计算模型】
1849年
英国
清华大学科学博物馆研制
Babbage Difference Engine 2【Calculation Model】
1849
UK
Tsinghua University Science Museum
本展品是巴比奇差分机2号计算模型,由清华大学科学博物馆研究制造。查尔斯·巴比奇(Charles Babbage 1792-1871),英国数学家、哲学家、发明家、机械工程师。精确的三角函数表、对数表等数学用表在19世纪的导航、工程与天文计算领域有着非常重要的意义。但只要是人工制作的数表,就无法达到绝对的正确,因此巴比奇计划制造出一台可以实现从计算至印刷全部自动化的计算机器。这就是差分机(Difference Engine)的构想。
差分机的理论基础是差分规律,即N次多项式的N次差分数值为一常数。数表常用的三角函数、对数函数可以通过多项式展开进行逼近,这样就将乘法转换为重复加法。以F(x) = x2+x+28这个二次函数为例,其一次差分ΔF1(x) = F(x+1)-F(x) = 2x+2,二次差分为常数,ΔF2(x)=ΔF1(x+1)-ΔF1(x)=2。通过差分思想,如果提供前面若干初始值,之后的F(x)值则可通过重复加法得出:F(x+1)=F(x)+ΔF1(x),ΔF1(x+1)=ΔF1(x)+ΔF2(x)[此例中为常数2]。
1823年,巴比奇得到英国政府的资助,开始建造差分机1号,但最终只完成整个计算机构七分之一的工作模型。期间巴比奇的兴趣转向了另外一个伟大构想——分析机(Analytical Engine),这被看作现代计算机的先驱。巴比奇设计的分析机,可以通过最原始的编程思想计算任意函数。分析机的设计包括输入、输出、存储、运算、以及操作程序的控制装置。这与现代计算机的主要原理和逻辑细节一一对应。而在数据输入、运算类型与运算顺序控制的环节中,巴比奇将原本提花织机用于存储花本的打孔卡片设计引入其中,承担了微程序的功能。巴比奇的分析机同样没有制造出来,只有一台模型机与大量图纸存世,因图纸并不完整,分析机的制造研究仍在进行之中(Plan 28)。
1847年,巴比奇完成了分析机的设计工作,并利用分析机的经验改进并简化了差分机的运算机制,从而设计出差分机2号。1849年完成差分机2号全套图纸。20世纪90年代,伦敦科学博物馆研究团队根据图纸先后制造出两台巴比奇差分机,分别收藏于伦敦科学博物馆与美国硅谷计算机历史博物馆。这台被称为差分机2号的计算机,可以支持最高31位十进制数的7次多项式计算,并带有印刷装置。这台机器通过相邻两列数值的并行相加,将运算的七个步骤简化为两个。差分机2号使用梯形结构的传动轮实现相邻两个计数轮间的相加,除最低数位之外的计数轮都带有进位机构。每一次计算,计数轮都要顺序进行相加与“进位判断”。
巴比奇的思想远远超前于他的时代,除了他自己,同时代还有另外一个具有超前思想的人真正地理解了分析机。这就是著名诗人拜伦的女儿埃达·洛芙莱斯(Augusta Ada King, Countess of Lovelace 1815-1852)。由埃达翻译并作注解的关于巴比奇分析机的内容,被视为有关程序设计的第一份文本,埃达本人也经常被称为世界上第一位程序员。
此次展出的计算原理模型,可以模拟差分机最基本的数值累加与储存功能。两个计数齿轮间的数值传递,由一个阶梯型齿轮完成。第一步,计数齿轮与阶梯齿轮的上层全齿轮啮合,输入的初始数值由右侧传递至左侧计数齿轮。第二步,右侧计数齿轮与阶梯齿轮下层半齿轮啮合,完成初始数值的复位,左侧计数齿轮保持不动,完成数值结果的存储。反复进行这两个步骤,初始差分数值可以一直累加,并在左侧计数齿轮中显示结果。