—小群计算机代数学家很快就会打消计算机只是捣弄数字的机器这个想法了。在过去二十年中,已成功地探讨了几类需要解析解而不是数值解的问题。例如,现在已有正像操作人员所说的一个比“摸索解题的低年级大学生”更可靠地做出不定积分的解析式的计算机程序。
这类工作的需要和可行性都不是不言自明的,而事实是从事计算机代数的人少而且分散。但是在某些领域,人们费时的代数运算用一个计算机程序来解决,目前已是很普通的了。用这种技术的领域如此广泛,看来这种计算机代数会推广。
说明计算机代数的可行性是方便的——最方便的是用a+bx+cx2多项式运算来说明。把二次多项式加在一起要求系数相加的算法,乘法和减法同样直截了当,除法(通常)较困难,但没有理由说初等代数的规则不好用了。
得出不定积分的解析式或微分方程的解析解必然较困难,不仅因为为此目的的计算机程序需要“知道”sinx或ex等函数的主要数学性质,而且因为模拟学生解这些问题的思路(按可解的标准形式分类)还不够通用。
但是满足这类应用的程序已在几个研究中心发明出来了,取标准教科书上的几组习题用程序算出的成功率通常是97%或98%,比大学生解题能力高,还不能使苛求者感到满意,而&些自然不是计算机代数擅长的地方。
在过去繁复的代数曾使许多有能力的学者为之奋斗终生或终于退缩的一些领域里,这技术会有许多有效的应用。
成果
最早和最出色的成果之一是天体力学方面的月球理论。这个问题是直截了当的而且是难度大的,从牛顿时代起,了解月球的地心经度和时间的关系是导航术的基本要素。这是经典牛顿力学问题,即使把木星和其它行星的引力影响忽略掉也是个三体问题得不到准确解。
既然如此,只有微扰解法有可能性,沿用的数值解具有一个严重的,某些方面难以克服的缺陷:随着时间的增加,误差会吓人地累积,以致不能确定上几次月蚀在什么时间和地方发生,因此,月球问题的解析解有大的重要性,主要是每项是解析的收敛级数形式的近似解。
唯一成功地“用手算”来攻这个问题的是迪劳莱的工作,法兰西科学院于1860年及1867年出版了他这方面的二卷巨著,第一卷开头近百页篇幅全用了刊载迪劳莱的“微扰函数”解析表示(实质上是由于月球引力势而与根据简单牛顿力学计算的地球势函数的偏离)。看来这确实是做了一辈子的代数工作——迪劳莱把计算做到七级微量修正。现在,同样的计算在计算机上只须经几十秒运转而得更高阶的近似。迪劳莱的后来人似乎不必为这种第一批的计算机程序指出迪劳莱的代数工作有错处而惭愧。
天体力学中更错综复杂(以前不敢碰的)问题作出类似的解析解目前是普通的了——例如,人造地球卫星在拉格朗日点(在该点地球、太阳和月球的引力相互抵消)的运动,只从解析近似式的误差比数值近似的误差更易确定来说,这些进展在实际上是相当重要的。
广义相对论
出乎意料,计算机代数的另一个经受过考验的而用得多的应用是广义相对论的问题。爱因斯坦的广义相对论之所以为广义,在于它可以从空间——时间度规的分析表示式推导出引力场方程。一个典型的例子是作用于质量近似为零的试验质点上的引力,最简单的度规是:
ds2=dx2+dy2+dz2-c2t2
式中c是光速,x、y、z是空间直角坐标,t是时间,把这种度规代入爱因斯坦的广义相对论,正好重新得到狭义相对论的动力学形式,这当然理应如此。
更普遍的空间一时间度规可写成:
ds2=Gμvdxμdxv
其中指标μ和v由1取到4,xμ是四个空间一时间坐标,量Gμv一般是Xμ的函数,下面采用相对论中的约定:指标出现二次表示求和。换句话说,一般度规有16项,第一项是:
G11dx1dx1=G11(dx1)2
作为一种普遍理论,广义相对论是难处理的。由于场方程(即预测质点今后运动规律的微分方程)是非线性的只有在特殊假定下才有解,所以广义相对论中处理问题基本方法是:猜测一种度规,说明引力世界的一些特殊性质,并由此算出场方程,或者找出一个适合于狭窄的时-空区域内场方程的近似解。在上述二种情况下,相对论学家求解起来要计算克里斯多夫记号,一般有64个,它们每个是三个由度规定的函数的一阶偏导数组合,但这仅是开始,下一步是算黎曼——克里斯多夫张量,一般有256个不同的分量,每个是克里斯多夫记号的偏导数的线性组合。
计算在代数上的繁复冗长表明为什么广义相对论中只用了少量较简单的度规。甚至,较一般度规中最简单的一种正交度规的情形:
ds2=D(dx4)2-A(dx1)2-B(dx2)2-c(dx3)2
这儿记号D,A,B和C是四个坐标X1等的函数。计算也是繁重得吓人的。赫伯脱· 廷格尔(Herbert Dingle)于1933年发表了克里斯多夫记号表(美国国家科学院院刊19卷550页,1933年),这是他数年工作的成果,至今仍是一种标准参考用表。目前准备用更加普遍的度规做那样的计算是很少可能了,这就是广泛使用计算机程序做这些计算的原因。
也许在理论物理的种种应用中,最广泛用的一组计算程序是SCHOONSCHIP,发明于六十年代后期,在日内瓦的欧洲原子核研究中心计算量子电动力学物理量。直言之,这类问题总是需要计算四维矩阵的迹(矩阵对角线元素之和)这矩阵是大量矩阵之和是由狄拉克矩阵乘在一起得来的,虽然狄拉克矩阵的元素是简单的(或者是0,或者是1),但如果手算譬如八个狄拉克矩阵的乘积,代数计算的工作还是庞大的并容易算错的。(实际上,狄拉克矩阵乘法和计算四维积分同时一起做,目前也能用计算机了)。在某些应用中,如类似的方法用在统一场论或量子引力论,许多极重要的计算工作没能做到底。就是因为工作量的浩瀚,随着时间的推移,无疑如SCHOONSCHIP之类的程序会被更广泛地使用。
多面性
计算机程序在理论物理方面上述三个应用是一个突破,甚有价值。但是,若计算机代数的目标是提供理论物理学家一个代数学助手(莫斯(Joel Moses)教授语),必然要求计算系统更有多方面的适用性。这一考虑基于六十年代后期发明的常用的代数计算程序做过的多次试验。最好的一种称为MACSYMA,放进马萨诸塞理工学院(MIT)的PDP-10型计算机中,同时,在犹他大学发明了一种叫REDUCE的类似的计算机系统。
原则上,这些程序设计得能够处理它们可能碰到的任一种代数问题,在其发展过程中,解决代数多项式和矩阵乘法较直截了当。积分问题需要定出最佳的解题方法必然是较难的,有无理函数时微分也成问题。而现在MACSYMA具有上千个使用者,其中很多人使用了远景研究规划局ARPA网络的国际通信系统,程序的形式很快就可做成计算机语言LISP的通用语,跟REDUCE相比,MACSYMA可能用起来方便些。
数据储存
无疑的,使用这种大胆的程序(ambitious programs)要求贮存容量极大。为了实际应用,对程序供给了很全面的数学知识。莫斯教授估算现在用的MACSYMA贮存容量有一百万个32—位字,但使用者能用较少容量得出某些结果,如果进行运算不包括更普遍的函数的话。
存储容量看来似乎是计算机代数中的一个再现的问题,不仅对于MACSYMA和REDUCE这种复杂的系统,而且对更直接的代数程序也是如此。其原因是容易了解的。如果对象是算多项式(a+bx)n,显然结果应是由n+1个系数不同的n次多项式。二个元素,每个包含n个因子时,乘在一起得到2n项。如果n是任意大的,比如是100,把这些项分别储存于计算机中实在是不可能的。当然这种特定的计算是直接做的,而存储问题便代数程序的设计者经常致力于找出做起来省力的算法。对上述简单的二项式展开,按序把因子乘起来才有意义。然而程序设计人员发现,某些问题的解决要有溢出存储器,常用磁带作缓冲存储。这种存储今后可按规律查找,并且程序确定后再放入计算机的存取存储器。
二类综合程序,如MACSYMA和未用的SCHOONCHIP系统,都用过的人会感受到这二种系统的互补性。综合系统比专用系统速度慢,用起来不便,另一方面,综合系统有修正接入的现有程序的重大价值。使用人员也报道过,当获得REDUCE程序磁带用在改装了的原来发明的计算机上,这种缺点能避免掉,这就是一部分麻省理工学院的人对于MACSYMA至今未能广泛用起来的理由。
虽然代数计算程序,一般需计算机存储,但对程序时间无甚要求。MACSYMA是1968年来在马萨诸塞理工学院工作的人们的巨大成果,经确定具有50至100人一年的程序能力。另外一些系统是为特别的用途而设计的,可较简单地设计和写入。用过的人报道:写一个简单多项式程序费时不超过一刻钟。无疑地,至今被使用过的计算机代数,他的一些程序要求反映出问题的特征这种相对说来多余的性质——它们内在的沉闷。因此,自然没人想要写出求积分,解微分方程或处理有限群枚举(enumeration)这一些可以直接解出的数学问题的程序。
计算机代数的应用的未来是什么?还要看下去。而一些实践过的人抱有这样的看法:这些方法的使用价值在于提供了一个存储数学教师的方法,甚至中学程度,也可以校正程序。事实上,夏威夷大学已发展了一种可以在家用计算机上做的计算机代数程序(实现商品化)。在大学生教育中,还有用MACSYMA的奢望呢!
教育家对这方面会说什么还不清楚。袖珍计算器一度被小学教师认为是一种威胁,现在已经看作是对于兴趣的激励。更有效的计算机程序怎样用于教代数?还难以看出。在研究中过分滥用计算机做代数运算问能堵塞了使用者理解他正在做的工作的物理意义却是普遍想过的。