一步一个脚印(看似是最慢的,实际上是最快的)
芯片(图片来自网络)
计算机能够执行令人眼花缭乱的复杂任务,但其内部的微处理器芯片只能执行非常基本的数学运算,例如加法和比较二进制数。利用这个有限的工具集执行微积分和其他高级数学运算是电子计算早期的一个标志性成就。麻省理工学院研究所教授、前工程学院院长乔尔 · 摩西认为这是革命性的一步,从简单到复杂;他解释说,实现这一步骤的方法就是把“大而复杂的问题分解成更小、更简单的问题”。
复杂的数学需要处理两种类型的运算:
1、涉及特定数值的数值运算。
2、以及涉及“ x”和“ y”等符号的符号运算,如代数和微积分中的符号运算。
摩西教授指出,数字运算可以分为加法、减法、乘法和除法,这些都是微处理器的基本任务。为了在不占用大量内存和处理资源的情况下容纳更广泛的数值,计算机使用浮点系统,将公共数字(比如1,300,000)替换为浮点数值(比如1.3 x 106)。这种方法通常只产生结果的近似值,但是如果稍加改进,它会使值非常接近于“正确”答案。(一个值得注意的例外是: 20世纪90年代早期的一些英特尔奔腾芯片有一个浮点错误,在极少数情况下导致了计算错误。)
符号运算是一个更大的挑战。首要的问题是如何使用二进制计算机中的0和1来表示符号。这需要就通过编码完成,其中‘ x’由一个数字表示,‘ y’由另一个数字表示。”计算机硬件和软件把这些理解为代码,而不是数值。更复杂的表达式可以通过将表达式分解成更简单的部分来表示,这些部分由计算机内存中的指针连接。这样就可以进行符号运算了,比如“ x + 2y”。
例如,微分可以分解成多个不同的表达式,分别表示和、乘积、常数和变量。最终组成一个完整的程序,它包含了一个完整的微分算法,我们只需要输入基本的数字和函数就可以得出我们想要的计算结果。其他操作,比如符号积分,可能更复杂,但原理都是一样的:“ 将复杂问题简化为更简单的问题,然后进行计算。”
虽然这些过程看起来很笨,也很耗时,但今天的微处理器是如此强大,以至于它们通过每秒执行数十亿次操作来缩短工作时间。