数值计算先驱 - James Hardy Wilkinson
admin 13年前
<p> 在《<a href="/misc/goto?guid=4958198961677834846">EDSAC 计算机之父——Maurice Wilkes</a>》,介绍了 Wilkes 和他的 EDSAC 计算机。其中说到,EDSAC 项目是英国第三个电子计算机项目,与此同时还有图灵领导的 ACE 项目。</p> <p> 1945年,图灵刚刚放下“二战”的情报破译工作,就立即设计了这种全新的电子计算机,并向政府申请资助。图灵提交了一份非常详细的设计报告,然后一直在国家物理实验室埋头编写指令表(相当于我们现在编写函数库),并改进机器的设计。</p> <p> 经过很长时间的讨论, 政府批准了这个项目,由达尔文爵士领导,图灵担任总设计师。达尔文为这个项目另外调派了两位科学家, 其中之一,就是本文的主角,James Hardy Wilkinson。</p> <p> 1919年9月27日,Wilkinson 在英国肯特郡的斯特洛特出生,16岁时被剑桥大学破格录取,19岁毕业获得最高荣誉奖章。刚毕业, 二战就爆发了,于是 Wilkinson 进入军备研究所, 研究与弹道有关的问题, 在这里, 他对数值计算产生了浓厚的兴趣。</p> <p style="text-align:center;"><a><img title="数值计算先驱 - James Hardy Wilkinson" border="0" alt="数值计算先驱 - James Hardy Wilkinson" src="https://simg.open-open.com/show/3e97eef9df4866fec2a21ab8493e54c7.jpg" width="265" height="323" /></a></p> <p> 战后,Wilkinson 来到国家物理实验室协助进行一项数值计算工作,他看到图灵的 ACE 项目,立刻被吸引住了,并且留在这里工作。后来这个项目发生了一些人事上的矛盾,把图灵给气跑了( 这事儿我们上期也提过),于是 Wilkinson 就接管了整个 ACE 原型机的建造工作。</p> <p> Wilkinson 接手之后,总结了前一阶段的教训,果断采取了两项措施,一是与工程实践团队加强联系,改变过去的僵局;二是把 ACE 的设计方案回档到第五版(图灵走的时候,已经做完了第八版设计),把延迟线的数量减少到32根。</p> <p> 1950年5月10日,ACE 原型机第一次正式试运行成功。1950年11月,NPL 举行了隆重的发布仪式, 随后由 EEC 公司量产了大约30台,其商业名称为 DEUCE。DEUCE 和 Wilkes 的 EDSAC 计算机一起,使英国的计算机技术跃居世界领先水平,与美国不相上下。第一台 ACE 原型机至今仍在伦敦的肯辛顿科学博物馆里展出,有机会的读者可以前去参观。</p> <p> 除了 ACE 项目之外,Wilkinson 在数值计算方面也做出了先驱性的贡献。1960年,Wilkinson 提出了“向后误差分析法”,这是误差理论中最基本的方法之一。向后误差分析是一种先验估计,假设一个计算结果x,是由已知量 a1,a2,a3,…,an 通过基本运算确定的,也就是:x=f(a1,a2,a3,…an)。由于数字计算机会产生舍入误差,实际表示出的值x’与准确值x会有不同。向后误差分析法把舍入误差与已知量 a1,a2,a3,…an 的某种扰动联系起来,引入扰动量εi,得到x’的表达式:x ‘ = f ( a 1 + ε 1 , a 2 + ε 2 , a 3 + ε 3…,an+εn)然后再推出这些εi的界,并以此推算最后的舍入误差x’-x的界。最常见的例子,就是浮点数的计算。我们大家都知道,浮点数的机器表示为f=p*m^e(其中p是尾数,m是基值,e是阶码)。</p> <p> 这就是典型的由多个已知量共同确定的数值,而且它是有误差的(在固定的位数和基底下,总是有一部分浮点数无法表示)。在这种情况下,如果需要分析其误差,那么向后误差分析法就是最常用的方法。</p> <p> 在那个年代,数值计算是计算机的主要用途,所以这一类算法具有非常重要的意义。</p> <p> 1 9 7 0 年,ACM 将图灵奖授予 Wilkinson,以表彰其在 ACE 计算机项目、数值计算,尤其是向后误差分析法方面的贡献( 笔者个人认为,如果图灵此时还活着, 考虑到他当初的 ACE 设计方案,他绝不会允许 Wi l k i n s o n 获得图灵奖) 。</p> <p> 同年,Wilkinson 还获得了冯·诺伊曼奖。Wilkinson 一直为国家物理实验室工作了34年,并在1980年退休后,担任斯坦福大学客座教授。1986年10月5日,Wilkinson 在英国特丁顿的家中因病去世,享年67岁。<br /> <br /> 来自: <a id="link_source2" href="/misc/goto?guid=4958198962422160969" target="_blank">http://www.programmer.com.cn/8834/</a></p>