《数值分析与科学计算概述》研究第一章对象描述一、数值分析与科学计算的概念科学计算即数值计算,科学计算是指应用计算机处理科学研究和工程技术中所遇到的数学计算。在现代科学和工程技术中,经常会遇到大量复杂的数学计算问题,这些问题用一般的计算工具来解决非常困难,而用计算机来处理却非常容易。科学计算是一门工具性、方法性、边缘性的学科,发展迅速,它与理论研究和科学实验成为现代科学发展的三种主要手段,它们相辅相成又互相独立,在实际应用中导出的数学模型其完备形式往往不能方便地求出精确解,于是只能转化为简化模型求其数值解,如将复杂的非线性模型忽略一些因素而简化为可以求出精确解的线性模型,但这样做往往不能满足近似程度的要求,因此使用数值方法直接求解做较少简化的模型,可以得到满足近似程度要求的结果,使科学计算发挥更大的作用。自然科学规律通常用各种类型的数学方程式表达,科学计算的目的就是寻找这些方程式的数值解。这种计算涉及庞大的运算量,简单的计算工具难以胜任。在计算机出现之前,科学研究和工程设计主要依靠实验或试验提供数据,计算仅处于辅助地位。计算机的迅速发展,使越来越多的复杂计算成为可能。利用计算机进行科学计算带来了巨大的经济效益,同时也使科学技术本身发生了根本变化:传统的科学技术只包括理论和试验两个组成部分,使用计算机后,计算已成为同等重要的第三个组成部分。数值分析也称计算方法,它与计算工具发展密切相关。是研究分析用计算机求解数学计算问题的数值计算方法及其理论的学科,是数学的一个分支,它以数字计算机求解数学问题的理论和方法为研究对象。为计算数学的主体部分。在电子计算机出现以前,计算工具只有算盘,算图,算表和手摇及电动计算机。计算方法只能计算规模较小的问题。数值分析的任务是研究求解各类数学问题的数值方法和有关理论的学科。数值分析的过程为构造算法、使用算法、分析算法。数值分析是研究数值问题的算法,概括起来有四点:第一,面向计算机,要根据计算机的特点提供切实可行的计算方法。即算法只能包括加、减、乘、除运算和逻辑运算,这些计算是计算机直接能处理的运算。第二,有可靠的理论分析,能任意逼近并达到精度要求,对近似算法要保证收敛性和数值稳定性,还要对误差进行分析,这些都建立在相应数学理论的基础上。第三,要有好的计算复杂性,时间复杂性好是指节省计算时间,空间复杂性好是指节省存储空间,这也是建立算法要研究的问题,它关系到算法能否在计算机上实现。第四,要有数值实验,即任何一个算法除了从理论上要满足上述三点外,还要通过数值试验证明是行之有效的。二、数值计算的相关概念与理论1误差来源与分类所谓误差就是测得值与被测量的真值之间的差,可以表示为:误差=测得值-真值误差来源:(一)测量装置误差(二)环境误差(三)方法误差(四)人员误差误差分类:将无限位字长的精确数处理成有限位字长近似数的处理方法称为摄入方法,称为舍入误差。用计算机解决科学计算问题首先要建立数学模型,它是对被描述的实际问题进行描述、简化而得到的,因而是近似的。我们把数学模型与实际问题之间出现的这种误差称为模型误差。在数学模型中往往还有一些根据观测得到的物理量,如温度、长度、电压等,这些参量显然包含误差,这种由观测产生的误差称为观测误差,在数值分析中不讨论这种误差,数值分析只研究用数值方法求解数学模型产生的误差。当数学模型不能得到精确解时,通常要用数值方法求它的近似解,其近似解与精确解之间的误差称为截断误差或方法误差。2绝对误差与相对误差某量值的测得值和真值之差为绝对误差。通常简称为误差,即:绝对误差=测得值-真值设*x为准确值x的一个近似值,称*xxe为近似值*x的绝对误差(AbsoluteError),简称误差。当e时,则称为*x的一个绝对误差限。设*x为准确值x的近似值,称绝对误差与准确值之比为近似值*x的相对误差(RelativeError),记为re,即xxxxeer*若rre,则称r为*x的一个相对误差限。由于绝对误差可能为正值或负值,因此相对误差也可能为正值或负值。对于相同的被测量,绝对误差可以评定其测量精度的高低,但对于不同的被测量以及不同的物理量,绝对误差就难以评定其测量精度的高低,而采用相对误差来评定较为确切。例1已知近似数*x有两位有效数字,试求其相对误差限。解利用有效数字与相对误差的关系。可知2n且这里1a是1到9之间的数字。%51012110211211***nraxxxx3有效数字含有误差的任何近似数,如果其绝对误差界是最末位的半个单位,那么从这个近似数左方起第一个非零的数字,称为第一位有效数字。如果近似值*x的误差限是n105.0,则称*x准确到小数点后第n位,并从第一个非零数字到这一位的所有数字均称为有效数字。例2问3.142,3.141,722分别作为的近似值各具有几位有效数字?解因为=3.14159265…记1x=3.142,2x=3.141,3x=722。由00040.0142.314159.31x知31410211021x因而1x具有4位有效数字。由00059.0141.314159.32x知22310211021x因而2x具有3位有效数字。由00126.014285.314159.3722知2310217221021因而3x具有3位有效数字。4有效位数与误差的关系从第一位有效数字起到最末一位数字止的所有数字,不论是零或者非零的数字,都叫有效数字。设近似数*x具有n位有效数字,则有nrae111021即有效数字位数越多,则*x的绝对误差与相对误差越小。例3已知近似数的相对误差限为0.3%,问*x至少有几位有效数字?解设1a是1到9之间的数字,则有1112*10121101921102110003%3.0axr设*x具有n位有效数字,令11n,则2n,从而*x至少具有2位有效数字。5误差定性分析与避免误差危害数值运算中的误差分析是个很重要而复杂的问题。一个工程或科学计算问题往往要运算千万次,由于每步运算都有误差,如果每步都做误差分析是不可能的,也不科学,因为误差积累有正有负,绝对值有大有小,按照最坏情况估计误差限得到的结果比实际误差大很多,这种保守的误差估计不反映实际误差积累。考虑到误差分布的随机性,有人用概率统计方法,将数据和运算中的舍入误差视为适合某种分布的随机变量,然后确定计算结果的误差分布,这样得到的误差估计更接近实际,这种方法称为概率分析法。20世纪60年代以后对舍入误差估计提出了一些新方法,较重要的是威尔金森的向后误差分析法和穆尔的区间分析法。但都不是十分有效,到目前为止舍入误差的定量估计尚无有效的分析方法,为确保数值计算的正确性通常只进行定性分析。一个算法如果输入数据有误差,而在计算过程中舍入误差不增长,则称此算法是数值稳定的;否则称此算法是不稳定的。6为了避免误差危害,在数值计算中应注意的一些问题:(1)要使用数值稳定的计算公式;(2)要避免两个相近的数相减;(3)要避免除数的绝对值远小于被除数的绝对值;(4)要防止大数“吃掉”小数的现象;(5)要尽量简化计算步骤,减小运算次数。三、数值计算中算法的设计在数值计算中算法设计好坏不但影响计算结果的精度,还可大量节省计算时间。下面介绍几个具有代表性的算法,其基本原则都是数值分析中常用的。(1)多项式求值的秦九韶算法:这是计算多项式值最好的算法,他是我国南宋数学家秦九韶于1247年提出的,国外称此算法为Hernor算法,是1819年给出的,比秦九韶算法晚500多年。(2)迭代法与开放求值:迭代法是一种按同一公式重复计算逐次逼近真值的算法。无论在应用上或理论上,求解线性或非线性方程而言,迭代法都是重要的方法。(3)以直代曲与化整为零:在数值计算中不取极限,知识采用以直代曲与化整为零求和的思想,通常可以将非线性问题线性化。在局部范围内用直线近似曲线是常用的方法。(4)加权平均的松弛技术:松弛技术是计算方法中一种提高收敛速度的有效方法。四、数值分析与科学计算概述的国内外研究进展重理论轻实践是传统数值分析教学存在的问题之一,从20世纪90年代以来,数值分析教学内容的创新实践成为数值分析教学的主要研究方向。数值计算方法除了具有建立在相应数学理论基础上的可靠的理论分析,还要有数值实验,即任何一个数值算法除了满足理论上的要求,还要通过数值试验证明是行之有效的。数值分析教学第一线的研究者对国内外数值分析的研究前沿及改革动向应时关注,推动了数值分析课程建设的实质性改革。运用一些数学软件进行数值图形图像处理,可以应用于汽车、飞机等的外形设计,计算机的图形、图像模式识别与处理,样条技术的引入使得外形设计、图像处理越来越光滑、美观。数值分析可以作为数学建模与数学试验之间的桥梁与媒介,为学生使用计算机解决科学与工程中的实际问题打下良好的理论基础与应用基础,国外数值分析教材都选取了大量来自实际的问题,如人口增长模型、传染病模型、虫口模型、经济增长模型等,让学生感觉数值分析内容的新鲜有趣。事实上,诸如金属合金配方、化学反应速度、污染物扩散等都可以作为数值分析的模型实例。通过选取一些贴近事实的问题,使得数值分析与工程实际有机结合,实现数值分析与科学研究零距离对接。五、数学软件在众多的数学软件中,就软件的内核而言,可分为两大类。一类是数值计算型软件,如Matlab、Xmath、Gauss等,这类软件有较强的计算能力和可视化功能,运行效率较高。另外一类是数学分析型软件,如Mathematica、Maple等,它们处理符号运算的功能特别强,可得到解析符号解和任意精度解。MATLAB是MATrixLABoratory的缩写,即矩阵实验室,它整合了非线性方程组、数值积分、三次样条函数、曲线拟合、最优化、常微分方程和绘图工具等功能,但它主要是以EISPACK和LINPACK子程序为基础。MATLAB目前是由C和汇编语言编写的,它的基本结构是执行矩阵运算,是一个对求解线性方程特别有用的功能强大的自包容系统。Mathematica的原始系统是由美国物理学家StephenWolfram领导的一个小组开发来进行量子力学研究的,软件开发的成功促使StephenWolfram推出系统的不同版本。目前国内最常见的是3.0版本和4.0版本。迄今为止,Mathematica已经广泛的应用到工程、应用数学、计算机科学、财经、生物、药学、生命科学以及太空科学等领域。数以万计的论文、科学报告、期刊杂志、图书资料、计算机绘图等都是Mathematica的杰作。Mathematica是一个交互式、集成化的计算机软件系统。它的主要功能包括三个方面:符号演算、数值计算、图形功能。4.0版本对Mathematica系统做出了重大的改进,尤其是在处理大容量数据方面,比以前版本增强了许多。另外,在代数、语言和用户界面等方面,也做出了很大的改进,使其运行效率更好,执行速度更快。第二章算法研究一、插值法的定义目前,主要的插值法有Lagrange插值、Newton插值、Hermite插值、三次样条插值。设函数)(xfy在区间],[ba上有定义,且已知在点bxxan0上的值iiyxf)(),,1,0(ni,若存在一简单函数)(x,使iiyx)(),,1,0(ni成立,就称)(x为)(xf的插值函数(InterpolatingFunction),点ix),,1,0(ni为插值节点(InterpolationKnot),包括插值节点的区间],[ba称为插值区间(InterpolationInterval),求插值函数)(x的方法称为插值法(InterpolationMethod)。若)(xn为次数不超过n的代数多项式nnnxaxaax10)(其中的ia),,1,0(ni为实数,就称)(xn为插值多项式(Interpolation