第1章  数值计算与计算机
现代科学计算离不开计算机,计算机科学技术的发展为数值计算技术的发展提供了基础。计算机的计算是通过计算机软件或程序来实现的,其硬件和软件的工作状况影响计算精度和速度。在计算机硬件、操作系统和计算方法一定的情况下,合理地设计计算程序是提高计算精度和速度的主要途径。
要编写出一种高效率的计算程序,需要具备很多知识,既需要掌握一定的编程技术,也需要对计算机的特点有所认识。同时,还需要了解计算机操作系统以及编程语言的发展史。只有这样,才能知道如何设计最先进的计算程序。
1.1  计算机发展史与数值模式
计算工具是在人类生活的实际需要中发展起来的,现代计算机的诞生是人类文明的必然产物,它的诞生使数值模式的发展和数值天气预报成为可能。
1.计算工具发展史
计算工具简称算具,是帮助人们计算的工具,它的发展是与计算技术发展相联系的。随着生产的发展和社会的进步,算具经历了从简单到复杂、从低级到高级的发展过程,其历史可追溯至远古时期。
人的手指是一种天然的计算工具,也是最古老的计算工具之一。远古时期,人们借助手指计数。可是,人类手指只有10个,不能进行更复杂的计算,于是人们使用小石头、贝壳、木棍、草绳等作为运算工具。
算筹、算盘是人类最早的手动计算工具。我国春秋时期出现的算筹,是世界上最古老的算具,例如,春秋战国时期的《老子》中记述了“善数者不用筹策”。根据史书的记载和考古材料,我国古代的算筹实际上是一根根同样长短和粗细的小棍子,多用竹子制成,也有用木头、象牙、金属等材料制成的,因此,在英语中,“算筹”被翻译成“Counting rod”(计数棒)。古代算筹不仅是正、负整数与分数的四则运算和开方的运算工具,而且还包含着各种特定的演算。算筹促进了中国古代数学的早期发达与持续发展。
在算筹之后,随着社会的进步,我国劳动人民又发明了算盘作为运算工具。早在公元15世纪,算盘已经在我国广泛使用,后来流传到日本、朝鲜等国。算盘已经基本具备了现代计
算器的主要结构特征。
在此之后,1642年法国人帕斯卡设计出了机械式加法机,这是世界上第一台机械式数字计算机。为了制作这台机器,帕斯卡花了3年时间。这台加法机是利用齿轮传动原理,通过手工操作来实现加、减运算的。帕斯卡的加法机当时在法国引起了轰动。
世界上第一台能够自动运算的计算器,是1822年由英国数学家巴贝其发明的,是以蒸汽为动力代替人类进行具体运算。1946年发生了人类历史上一件划时代的大事——世界上第一台电子数字计算机ENIAC在美国诞生。
2.计算机发展历程
电子计算机在短短的几十年里经过了电子管、晶体管、集成电路(IC)和超大规模集成电路(VLSI)等阶段的发展,使计算机的体积越来越小、功能越来越强、价格越来越低、应用越来越广泛,目前正朝着智能化计算机方向发展。
第一代计算机(约从1946年到1958年),体积较大,运算速度较低,存储容量不大,而且价格昂贵,使用也不方便。为了解决一个问题,所编制的程序的复杂程度难以表述。这一
代计算机主要用于科学计算,只在重要部门或科学研究部门使用。
第二代计算机(约从1958年到1965年),全部采用晶体管作为电子器件,与第一代计算机相比,其运算速度提高了近百倍,而体积只有原来的几十分之一。在软件方面,开始使用计算机算法语言。这一代计算机不仅用于科学计算,还用于数据和事务处理以及进行工业控制。
第三代计算机(约从1965年到1970年),主要特征是以中、小规模集成电路为电子器件,并且出现操作系统,使计算机的功能越来越强,应用范围越来越广。它们不仅用于科学计算,还用于文字处理、企业管理、自动控制等领域,出现了计算机技术与通信技术相结合的信息管理系统,可用于生产管理、交通管理、情报检索等领域。
第四代计算机(约从1970年到1981年)采用大规模集成电路(LSI)和超大规模集成电路(VLSI)为主要电子器件制成的计算机。例如,80386微处理器,在面积约为10mm ×l0mm的单个芯片上,可以集成大约32万个晶体管。
第五代计算机(约从1981年到现在)把信息采集、存储、处理、通信和人工智能结合一起
具有形式推理、联想、学习和解释能力。它的系统结构将突破传统的冯·诺依曼机器的概念,能够实现高度的并行处理。
有趣的是,算盘和计算机的发明都与中国古代的《易经》相关。有人研究发现,算盘的结构与中国《易经》中的河图相似。计算机的二进制也是与中国《易经》八卦结构排列相对应的,八卦图其实是一种八进制图形。
3.数值模式与计算机
数值模式是数值求解基于有限认识的基础上建立的描述某种物理、化学等变化规律的近似理论模型,它是一种离散化的数值模型,是数值模拟和预报的一种工具。可以说,没有电子计算机,也就不会有数值模式的发展。
数值模式有不同的种类,如大气模式、海洋模式、生物模式等。按尺度划分,有小尺度、中尺度和大尺度预报模式等;按时间划分,有短期、中期和长期预报模式等;按其离散化和求解方法,有网格点模式、谱模式等。
数值模拟大气运动可以帮助进行天气预报,这种思想可追溯到20世纪20年代英国数学家Ric
hardson的工作。Richardson(1922)论述了数值预报的原理和可能性,并且应用完全的原始方程组,并对欧洲地区的地面气压场进行了6个小时的预报,但结果很不理想。这次失败曾使人们一度对数值天气预报的可能性产生怀疑。直到第二次世界大战结束之后,由于电子计算机的出现,加上气象观测网以及高空观测的发展,数值模式和天气预报又引起了人们的注意。
1950年,Charney等人用准地转正压模式,在电子计算机上首次成功地对北美地区500百帕高度的气压场,做了24小时的预报。这一结果的公布被认为是数值模式和数值预报发展的重要里程碑。而当时所用的计算工具是一台可编程式的电子数字积分计算机。
借助计算机,从Charney等的成功工作开始,数值模式和数值预报步入了繁荣发展的时期。数值模式的发展与计算机的发展紧密相联,计算机由传统的单核CPU的处理器发展为多核CPU的处理器,而数值模式也由单CPU的串行计算,发展到多CPU的并行计算,这大大提高了模式的计算速度。随着计算机发展,数值模式的计算方式、程序结构也将不断得到改进,这将使数值模式的模拟能力和预报能力不断得到提高。
1.2  计算机软件与数值模式比较
数值模式是一种特殊的计算机软件,它与一般的计算机软件有很多共同之处,但它们之间又存在一定的差别。
1.2.1  计算机软件和数值模式的特点
计算机软件是指计算机系统中的程序及其文档。计算机程序简称为程序,是指一组指示计算机每一步动作的指令,通常用某种程序设计语言编写,运行于某种目标体系结构上。文档是为了便于了解程序所需的阐明性的技术资料。程序必须装入机器内部才能工作,文档不一定保存在计算机里。
在一定意义上,数值模式可以称为一种计算机软件,它与一般软件程序一样,具有以下特性。
1.程序的静态与动态属性
(1)静态:程序就是用计算机语言描述某一问题的解决步骤,其表示是静态的。
(2)动态:程序代码通过编译或解释成计算机指令代码,称为可执行程序。它的动态执行就是人们常说的“进程”。
2.程序是由程序语言抽象的符号表达
计算机的指令代码是以二进制表示的机器码。在高级设计语言以八进制、十进制、十六进制表示。因为语言越高级,越好使用,翻译程序的任务越重,所以程序设计语言对软件开发起很大作用。
3.程序是对数据施行算法的过程
程序中包括一定的算法和数据。程序执行后,对数据进行了加工或提供了一组动作的计算办法,即算法。它使数据由初始态变为终止态,并且,同样的数据改变可使用不同的算法实现。
程序的数据一般用于刻画事物的属性和状态。合理设计数据结构是提高程序质量的先决条件。
4.程序具有分层嵌套的结构
程序的结构是分层嵌套的,例如,主程序P调用子程序A,而A又调用子程序B,环环相扣,
而子程序都具有一定的通用性。若不采用此种结构,虽然可以实现同样的程序功能,但将增加计算程序代码长度。
数值模式与一般的商业软件有一定的不同。一般商业软件具有很强的人机对话界面操作,适合于广大的人使用,趋向于简单化操作发展;而数值模式的重点在于计算,其模式本身不仅具有一般软件的设计结构,而且具有物理、化学等规律的描述以及一定的计算方法,只适合专业技术人员来操作。
60进制计算器数值模式与一般的商业软件最大的不同在于,数值模式运行结果的正确性有一定的不可知性,而一般的商业软件运行结果的正确性可以立即得到证实。数值模式计算结果的正确与否只有在事件发生后才能确定,有时实测资料也无法获得,正因为如此,有些数值模式的计算结果虽然看上去似乎“合理”,但实际上可能存在一些代码描述错误。因此说,数值模式的发展比一般商业软件的开发难度更大,要求更高。
然而,在编写数值模式时,也需要像编写计算机软件一样,只有掌握一定的规则、技巧,才能提高程序的性能和便于以后的维护。
1.2.2  计算机软件与数值模式的发展
计算机软件的发展可以看作数值模式发展的晴雨表。了解了软件的发展,在一定的程度上有助于发展数值模式。数值模式与商业软件的发展具有一定的相似性。
1.计算机软件发展
计算机软件可以分为系统软件(操作系统、数据库等)、支撑软件(高级语言编译器、程序库、CASE工具等)和应用软件。计算机软件随着计算机硬件的发展而发展。
计算机软件发展的历史不长,世界上第一台电子数字式计算机ENIAC于1946年2月在美国宾夕法尼亚大学正式投入运行,自那时起,计算机软件业才开始萌芽。计算机软件的发展具体表现在计算机系统、编程语言、程序结构和计算方式等方面的发展,它们之间又是相互联系的。
(1)计算机操作系统的发展
首先,所谓的操作系统是指计算机系统中的一个系统软件,它是管理和控制计算机系统中的硬件和软件资源、合理地组织计算机工作流程以及方便用户使用的程序集合。
操作系统是随着计算机硬件的发展和人们对于计算机技术要求的提高而逐步发展形成的。早期的计算机没有操作系统,人们是通过各种操作按钮来控制计算机的。后来出现了汇编语言,操作人员通过有孔的纸带将程序输入电脑进行编译和运行。由于程序难免有误,机器通常会中途崩溃。这给用户带来极大的不便,并且不利于设备和程序的共用。为了解决这些问题,于是出现了操作系统。

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。