分享

计算数学与计算机科学

 文殊院士 2023-04-13 发布于河北

电子计算机的出现是20世纪最重大的发明,它是数学与电子技术结合的产物。它一出世就对社会各个领域带来无可估量的影响,它的飞速发展反过来也给数学提出新的问题并推动数学的发展。

自从有了数学以来,就有计算和计算方法的研究。由于人力的限制,用手算一般只能坚持几百次几千次运算,对于更繁复的运算,则需借助计算工具——算盘、电动计算机等等。随着实践中数值计算量的迅猛增大,旧的计算工具根本无法完成,以致阻碍了科学的发展。比如由今天的天气推断明天的天气需要成年累月的计算使得气象预报成为纸上谈兵。数字电子计算机出现以后,近代科学技术中一些数学问题,如核反应堆设计、原子弹、导弹、人造卫星设计、天气预报等等要求亿万次的大量计算,这使得人们对于研究数值计算方法更加重视。因此,第二次世界大战之后,伴随着计算机一代一代的成长,计算方法也有了极大进步。

冯·诺伊曼很早就意识到计算机的潜力。1946年他同其他人一起为美国海军部起草一个报告《高阶线性方程组的解》,这标志着数值分析作为一门学科正式诞生。尽管这个报告没有发表,数值分析这个词已不迳而走,1947年美国国家标准局建立了几个国家应用数学实验室,每个实验室都有数值分析研究组。1947年11月,冯·诺伊曼等人正式发表《高阶矩阵数值求逆》,这为数值分析奠定了基础。数值分析的目的是:

(1) 建立算法。主要是优秀的近似算法。

(2) 误差分析。在计算过程中,我们总是要问,算出来的结果同真正的(未知)结果有多少差距?这些差距往往来自两方面:一种是错误,包括机器的故障,程序的错误,人的粗心大意等等;一种是误差,是由于算法本身是近似的,或者无法算得精确。在整个计算过程中,误差还要传递下去,有时造成很大的结果误差。误差分为传播误差、截断误差及生成误差。第一种误差由于√2,π之类数目与所用的小数之差传播造成。截断误差由于计算无穷级数中取有限项造成。生成误差由于个别的四舍五入结合在一起产生的。误差分析就是要给出误差的界。这个界由与问题有关的参数来表示,例如解一次联立方程,参数是变元的数目,系数的最大值等等。

(3) 收敛速度。误差分析的目的是希望误差较小,算得准,但是光准也不行,还得快,比如莱布尼兹求圆周率π的公式:

π/4=1-1/3+1/5-1/7+……

可以把π算得很准,但是它收敛速度太慢,算准几位,也得要几十万项,这在实用上就不行了。

(4) 算法比较。比较不同算法在不同情况下能否应用,是否有效等等。

由于数学物理最终要求得到数值解,从牛顿的时代起,已经建立各种逼近及求方程数值解的算法,并得到不断的改进。其中包括解一元代数方程的牛顿方法,数值求积的辛普森方法,解线性方程组的高斯消去法等。在求常微分方程数值解方面,有欧拉的折线法,后来由柯西在1840年加以改进。亚当斯在1855年发明用多项式置换函数导数的方法,其后为许多人改进,特别是巴什福斯和亚当斯在1883年发表的方法,以及莫尔顿改进的亚当斯方法。到20世纪,高斯以后最伟大的计算数学家荣格系统地研究各种方法并进行数值分析。他在1894年首先发现解常微分方程初值问题的新数值方法,1902年又推广到偏微分方程的初值问题上。荣格的方法相继为荷恩(1900)、库塔(1901)以及柯尼(1904)发现及改进,成为著名的荣格—库塔方法。1923年维勒斯又加以改进,并推广其应用范围。

解偏微分方程初值问题除了荣格的差分方法之外,还设计出许多其他有效的差分格式。其过程都是把连续问题离散化,先把区域网络化,再把微商化为差商,这样微分方程就变成差分方程,即所谓差分格式,然后求差分格式的数值解。差分格式应该收敛及稳定,即初值的误差不致影响最后解的真确性,否则差分格式是没用的。1928年德国数学家库朗、弗里德里希斯、卢伊提出解双曲型方程的差分格式收敛的必要条件。冯·诺伊曼提出差分格式的稳定条件。1956年美籍匈牙利数学家拉克斯指出,对于相容的差分格式和适定的初值问题,收敛性及稳定性是等价的。拉克斯还引进稳定的拉克斯格式及拉克斯—温德洛夫格式,以及粘性差分格式。

对于偏微分方程边值问题,最常用的有两类方法,一类是差分方法,另一类是变分方法。最早的变分方法可追溯到1877年英国物理学家瑞利的《声的理论》一书。1908年德国数学家里茨正式提出把问题化为等价的变分问题,然后解该变分问题,后来称为里茨方法。苏联数学家加辽金对该方法加以推广,但其有效运用有赖于试验函数的选取,只有当边界区域很特殊时才适用。这剌激有限元法的产生。其基本思想已在1928年库朗等三人的论文中提到,后来在1943年库朗的论文中已具体论述该方法,但未受到重视。电子计算机出现后,欧美工程界从飞机设计实际背景出发,在结构分析和矩阵分析的基础上提出结构有限元的雏形,并在20世纪60年代初引进连续体的单元剖分技术,1968年对有限元法进行数学分析。在中国,20世纪60年代初,冯康等结合变分方法与差分方法,独立得出有限元法,1964年冯康独立建立有限元法的数学理论基础。其后有限元法在国内外得到蓬勃发展,成为有效的常用数值方法。

微分方程数值解大地测量、网络分析以及各种最优化问题,最后都导致求解线性方程组的问题。随着计算机的出现以及精度的提高,未知元的数目可达几百几千个甚至更多,因此要求更新、更好的算法。算法大体上可分为直接法及迭代法。直接法如各种形式的消元法,迭代法如高斯—塞德尔迭代法及松弛法。松弛法是一种加速收敛的技术,1935年由萨思维尔首先提出,战后发展的一项重要技术是稀疏矩阵技术,对于相当多的矩阵元为0的矩阵,形成一套极为简便的计算方法。计算的最后一步总是数值计算。当数字很大时,即使两个数字的乘法在计算机上也颇费时间,改进已有算法的速度极为重要,用傅立叶方法可使1000位数的乘法快50倍。数学物理中的许多问题最后归于傅立叶变换,计算离散傅立叶变换及其逆变换,现在已有快速傅立叶变换的方法。在历史上,1805年高斯已有这种思想,在荣格及柯尼希的《数值计算》中也有类似思想,只有大型计算机出现后,这种方法才得到重视。1965库利及塔基的论文正式发表这种方法,从此得到迅速传播及应用。其后加尔文、维诺格拉德等人又进行各种各样改进,它在光谱分析、晶体结构分析、图像信息处理等方面已得到广泛的应用。

一个很有效的算法是“蒙特卡罗方法”,是通过随机抽样法来进行计算的。这种方法在历史上也有,如利用投针计算圆周率π。第二次世界大战中,冯·诺伊曼和波兰裔美国数学家乌拉姆参加原子弹的研制,提出许多计算问题,如中子通过各种介质的行为,一方面难以从理论上进行计算,另一方面也难以从实验上测定,由此需要进行估计。他们系统提出蒙特卡罗法来解决这类问题。1949年乌拉姆正式发表,其后在各种理论及实际研究中得到广泛应用,其最大优点是维数的影响不大,程序比较简单实用,因此对于各种数值计算特别是多重积分计算,积分方程的计算等非常有效,在核物理、中子迁移、反应堆工程方面特别有用。

随着计算机的改进以及算法有效性的提高,科学计算已经和理论与实验鼎足而三成为科学技术进步的最重要手段之一。许多过去实验和理论无法有效解决的问题,现在已经通过数值计算成为可能,在某些类域中,计算甚至成为日常工作例行工具。最典型的成就是天气数值预报。挪威学派的开创者皮叶克尼斯在19世纪末首先把流体力学引入气象学,并于1904年预言通过解方程可以实现天气预报。1922年英国气象学家理查森出版《天气预报数值方法》,详尽叙述实现数值天气预报所需的物理模型,偏微分方程以及数值解法,而且进行6小时预报试验,但是他的计算需要几天,并且指出要跟上天气形势变化需要64000台机动计算机。尽管他的计算过程达不到,但他的差分格式仍然是可靠的。其后瑞典气象学家罗斯比简化理查森的模型,而只有在电子计算机出现之后,才真正实现了天气预报,这是在冯·诺伊曼领导下在1952年首次实现的。其后不断改进计算格式,短期预报可达3~4天,且在200~300公里范围内较为准确。1975年以后也开始进行中期预报。由于浑沌的出现,十分精确的预报是不可能的。

基于类似的情况,许多理论上复杂、实验又无能为力的问题,乃至一些有方程而数学上还不能解决的问题,现在都要靠计算得到结果了。20世纪50年代以来,陆续形成计算力学、计算流体力学、计算物理学、计算化学、计算生物学、计算地质学、计算经济学诸学科以各种大规模工程的计算科学分支,它们依据具体问题背景不同,得出许多重要方法及结果,这在以前是根本无法想象的。

长期以来,化学是一门实验科学。量子力学建立以后,狄拉克曾认为,化学上的结果可以通过薛丁谔方程得出。实际上由于当时数学和计算的落后,这根本是不现实的。20世纪20年代末只能解最简单的二体问题。20世纪50年代提出分子轨道理论,多原子分子可以通过解“自洽场”方程得到。为此需要计算大量的“多中心积分”(积分的数目与电子数目的四次方成正比)。当然这是大型计算机完全能够胜任的,由此,化学正在成为一门定量的科学。

在数理经济学的理论基础上,大规模经济系统的计算也产生许多有效的新方法,其中包括1970年斯梅尔对代数方程求根方法的有效改进以及1967年斯卡夫关于不动点的计算。大规模经济动态模型常常包含成千上万个变元及方程,解这种方程当然非计算机莫属。

正像通常数学中算术向代数发展一样,除了要求计算机进行数值计算之外,人们逐渐要求计算机也能进行代数演算乃至符号演算。因此比起数值计算来,算式经过代数可以得到简化,而且代数答案是精确的,不像许多数值计算都是近似的。这样在应用问题上可以得出许多完整的规律,而从一大堆数字里则什么也看不出来。这样在20世纪60年代后期出现了计算机代数这门学科。从那时起已产生出一系列软件,在各个领域产生一系列应用。天体力学有着冗长代数计算的传统,许多数学家曾为此付出巨大劳动。例如法国数学家德隆耐化了20年的时间计算月球在某时间的位置的函数表示,他从1847年起化了10年计算,又化了10年校对,于1867年发表。这被认为是精确代数运算的典型。1970年用计算机验算,只发现同一来源的三个小错误,因此它仍然继续享有过去那种极高的威信。每当新的计算机代数系统在使用前,还是用德隆耐的运算来检验该系统是否可靠。所谓计算机代数,实际上还包括积分法以及解微分方程等运算,这些程序已代替大部头的参考书,在实际工作中发挥重大作用。计算机代数从20世纪70年代已有一系列软件,如MACYMA等。

一系列计算机计算法程序使计算机的应用大大超过数论、代数之外。1975年,沙莫斯在以前丰富的计算几何的结果基础上,正式宣告计算几何学的诞生。这个领域是对于许许多多涉及应用的问题,建立有效的算法,其中最突出的是美国离散数学大师、贝尔实验室数学研究中心负责人格瑞姆在1972年建立的决定平面点集凸包的有效算法,一下子把计算时间从点数n的四次方降到一次方,而且后来证明这是最佳有效算法。这为其后的研究树立一个典范。理论上及实用上这种问题很多,例如,求与给定n点距离之和最近的点,以及钢琴搬运工问题(如何选取最佳路线,通过多边形障碍物)等等都刺激科学家寻求新的有效算法。在这个过程中也提出一系列理论问题——特别是复杂性理论。由于计算机在时间上及空间上都不是无限的,我们当然希望算法尽量简化。20世纪60年代末发现连两个数的乘法、矩阵乘法的步数都可大为降低,这刺激库克在1971年正式建立复杂性理论,它是一个极为活跃的领域,短短20年间已发表成千上万篇论文。

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多