误差的基本理论与预备知识_第1页
误差的基本理论与预备知识_第2页
误差的基本理论与预备知识_第3页
误差的基本理论与预备知识_第4页
误差的基本理论与预备知识_第5页
已阅读5页,还剩9页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、第一章 误差的基本理论与预备知识一、内容分析与教学建议本章内容包括三个部分:课程介绍、误差的基本概念、避免误差危害的若干原则。(一)课程介绍“数值分析”是信息与计算科学专业的专业基础课,是学习后续专业课的基础。因此在绪论的讲解过程中,注意阐明学习数值计算方法这门课程的目的、意义和重要性,本课程的主要内容以及它在计算数学和科研过程中的地位,激发学生学习“数值分析”的积极性和兴趣。(二)误差的基本概念1、首先阐明误差的来源和误差的分类。明确计算数学研究的误差主要是:截断误差和舍入误差。2、讲解绝对误差和绝对误差限,相对误差和相对误差限的定义,并通过具体的实例介绍为什么要引入相对误差的概念。3、可结

2、合中学介绍过的有效数字的概念,介绍有效数字的严格定义及有效数字的位数,有效数字与相对误差限的关系,并通过具体的例子介绍如何求有效数字的位数。(三)避免误差危害的若干原则按照教材中的例子可直观地阐明避免误差危害的主要原则: 避免两个相近的数相减; 防止重要的小数被大数“吃掉”; 在除法的运算中避免出现除数的绝对值远远小于被除数的绝对值的情形; 简化计算步骤; 注意算法的稳定性。当今科技领域中所提出的三大环节是:实验、科学计算和理论分析和研究。由于计算机的出现和发展,使科学计算在科研与工程实际中越来越显示出它的卓越作用。例如,在计算机上修改一个设计方案比在实地作修改要容易得多。为此,人们往往就用科

3、学计算来取代部分实验;更何况有些课题是无法进行实验的,而只能通过科学计算去解决;(例如,计算机模拟核爆炸)。这种由实验向计算的巨大转变,也促使一些边缘学科的相继出现,例如,计算物理、计算力学、计算化学、计算生物学以及计算经济学等等都应运而生。有些理论证明往往也是通过计算去解决,例如,四色问题,吴文俊院士开创的机器证明等。也就是说,科学计算可以全部或部分地代替理论证明。科学计算既然如此重要,那么数值分析在其中又处于一种什么地位呢?由下图可知:数值分析是处于一种承上启下的地位,它在科学计算中是重要的不可或缺的一环。程序设计建立数学模型实际问题数值分析提出算法分析结果并对实际问题进行解释说明编程上机

4、计算由实际问题建立数学模型一般要涉及多门学科的知识,本课程不做讨论。由数学模型提出数值计算方法,直到编程上机计算求出结果,这一过程是计算数学的任务,也是本课程研究的对象。计算数学是数学的一个重要分支,它主要研究用计算机求解各种数学问题的数值方法及其理论,以及软件实现。数值计算方法(也称数值分析或计算方法)是计算数学的一个主要部分,它不同于纯数学那样研究数学本身的理论,而是一门把数学理论与计算机紧密结合起来进行研究的实用性很强的基础学科,它主要研究用计算机解决数学模型的理论与方法。§1 计算方法的基本要求一个可行、有效的算法必须满足下列基本要求:(1) 符合计算机的要求我们知道计算机只

5、能对有限位数进行加、减、乘、除与逻辑运算,因此对给定的数学模型提出的数值计算方法也只能包含上述五种运算。对于具体算法还要考虑计算机的内存大小、数字字长、运算速度等。有的算法从纯数学的观点看不够严格和完善,但通过实际计算、对比分析等手段证明是行之有效的也常被采用。特别地,随着计算机的飞速发展,一些算法在老的计算机上无法实现,而在新型计算机上却可以实现。总之,对于给定的数学模型,在构造算法时要面向计算机,符合计算机的要求。(2) 在理论上收敛、稳定,在实际计算中精确度高由于计算机只能近似地表示实数,不论计算机中的数是定点表示,还是浮点表示,它所表示的数的位数都是有限的,且任一算法只能在有限的时间内

6、通过有限次运算来完成。这说明用计算机运算得到的结果都是近似的,因此需要考虑算法的精确度问题。在理论上我们还要研究用计算机运算得到的结果是否收敛到实际问题的解。此外,我们还要考虑算法的数值稳定性问题。(3) 计算复杂性尽可能小从实际需要出发,我们还需要考虑计算量的大小,即所谓计算复杂性问题。它是由以下两个因素决定的:使用中央处理器(CPU)的时间,这主要由四则运算的次数决定;占用内存储器的空间,这主要由使用的数据量来决定。有时也称之为时间与空间的复杂性,简称计算复杂性。例如,解线性方程组Ax = b,若detA0,则可用Cramer法则来解。设A为20阶矩阵,计算一个20阶行列式需要的乘法运算量

7、为19×20!,需计算21个20阶的行列式,总的乘法运算量为21×19×20! 9.71×1020.若用10亿次/ 秒的计算机来运算,则一年可完成的乘法运算量为109×365×24×3600 3.15×1016.解20阶的方程组所需乘法运算的时间为9.71×1020÷(3.15×1016) 3.08×104(年),即三万零八百年,显然这个运算时间在实际中是不可接受的。而在实际问题中,例如大型水利工程、天气预报等,需要解的大型方程组的阶数一般都远远大于20,若用上述方法显然无法

8、解决。这个例子说明解线性方程组的Cramer法则在理论上虽然可行,但在实际应用中却不可行。有人可能说,随着计算机的发展,运算速度提高、内存增大以及新结构计算机的涌现,以前认为过于复杂而不能求解的问题将会得到解决。但是,不论计算机如何发展,使用计算机的代价,即计算复杂性,都是要考虑的。对于给定的数学模型,可能有多种算法,应通过计算机进行数值试验,进行分析、比较来选定算法。对新提出的算法,有的在理论上虽然还未证明其收敛性,但可以从具体试验中发现其规律,为理论证明提供线索。总之,对于给定的数学模型所提出的可行、有效的算法应该是符合计算机的要求,在理论上收敛、稳定,在实际计算中精确度高,计算复杂性小,

9、能通过试验验证的数值方法。§2 误差及有效数字一、误差的来源1. 模型误差:数学模型与实际问题之间的误差称为模型误差。一般来说,生产和科研中遇到的实际问题是比较复杂的,要用数学模型来描述,需要进行必要的简化,忽略一些次要的因素,这样建立起来的数学模型与实际问题之间一定有误差。它们之间的误差就是模型误差。2. 观测误差:实验或观测得到的数据与实际数据之间的误差称为观测误差或数据误差。数学模型中通常包含一些由观测(实验)得到的数据,例如用来描述初始速度为0的自由落体下落时距离和时间的关系,其中重力加速度是由实验得到的,它和实际重力加速度之间是有出入的。其间的误差就是观测误差。3. 截断误

10、差:数学模型的精确解与数值方法得到的数值解之间的误差称为方法误差或截断误差。例如,由Taylor公式得用近似代替,这时的截断误差为介于0与之间。4. 舍入误差:对数据进行四舍五入后产生的误差成为舍入误差。在本课程中所涉及到的误差,一般是指截断误差和舍入误差。二、误差的基本概念 1. 绝对误差和绝对误差限、相对误差和相对误差限定义1 设为准确值,是的近似值,称 (2.1)为近似值的绝对误差,简称误差。显然误差既可为正,也可为负。一般来说,准确值是不知道的,因此误差的准确值无法求出。 不过在实际工作中,可根据相关领域的知识、经验及测量工具的精度,事先估计出误差绝对值不超过某个正数,即 (2.2)则

11、称为近似值的绝对误差限,简称误差限或精度。由(2.2)得.这表示准确值在区间内,有时将准确值写成.例如用卡尺测量一个圆杆的直径为毫米,它是圆杆直径的近似值,由卡尺的精度知道这个近似值的误差不会超过半个毫米,则有(毫米).于是该圆杆的直径为(毫米).用表示准确值可以反映它的准确程度,但不能说明近似值的好坏。例如,测量一根10厘米长的圆钢时发生了0.5厘米的误差,和测量一根10米长的圆钢时发生了0.5厘米的误差,其绝对误差都是0.5厘米,但是,后者的测量结果显然比前者要准确得多。这说明决定一个量的近似值的好坏,除了要考虑绝对误差的大小,还要考虑准确值本身的大小,这就需要引入相对误差的概念。定义2

12、设为准确值,是的近似值,称 (2.3)为近似值的相对误差。在实际计算中,由于准确值总是未知的,因此也把 (2.4)称为近似值的相对误差。在上面的例子中,前者的相对误差是,而后者的相对误差是. 一般来说,相对误差越小,表明近似程度越好。与绝对误差一样,近似值的相对误差的准确值也无法求出。仿绝对误差限,称相对误差绝对值的上界为近似值的相对误差限,即 (2.5)注 绝对误差和绝对误差限有量纲,而相对误差和相对误差限没有量纲,通常用百分数来表示。2. 有效数字、有效数字与相对误差限的联系用表示一个近似值,这在实际计算中很不方便。当在实际运算中遇到的数的位数很多时,如,等,常常采用四舍五入的原则得到近似

13、值,为此引进有效数字的概念。定义3 设是的近似值,如果的误差限是它的某一位的半个单位,那么称准确到这一位,并且从这一位起直到左边第一个非零数字为止的所有数字称为的有效数字。具体来说,就是先将写成规范化形式 , (2.6)其中是0到9之间的自然数,为整数。如果的误差限 , (2.7)那么称近似值具有位有效数字。例1 设,确定它的近似值,分别具有几位有效数字?解 因为,(即的误差限0.000069不超过的小数点后第3位的半个单位,即0.0005),所以,得. 故具有4位有效数字(即从的小数点后第3位数0起直到左边第一个非零数字3为止的4个数字都是有效数字),而最后一位数字1不是有效数字。因为,(即

14、的误差限0.000031不超过的小数点后第4位的半个单位,即0.00005),所以,得. 故具有5位有效数字(即从的小数点后第4位数2起直到左边第一个非零数字3为止的5个数字都是有效数字)。因为,(即的误差限0.000169不超过的小数点后第3位的半个单位,即0.0005),所以,得. 故具有4位有效数字(即从的小数点后第3位数0起直到左边第一个非零数字3为止的4个数字都是有效数字)。因为,(即的误差限0.000169不超过最后一位数字2的半个单位,即0.05),所以,得. 故具有2位有效数字(即的所有数字都是有效数字)。特别要指出的是,在例1中,有4位有效数字,而只有2位有效数字。从上面的讨

15、论可以看出,有效数字位数越多,绝对误差限就越小。同样的,有效数字位数越多,相对误差限也就越小。下面阐述有效数字与相对误差限的联系。定理 设是的近似值,且其中是0到9之间的自然数,为整数。(1) 如果具有()位有效数字,那么的相对误差限为.(2) 如果的相对误差限为,那么至少具有位有效数字。证明 (1) 因为具有位有效数字,所以由定义3知.又因为, 所以.(2) 因为,所以 .故由定义3知至少具有位有效数字。证毕! 例2 设的近似值的相对误差不超过0.1%,问至少具有几位有效数字?解 设至少具有位有效数字,因为的第一个非零数字是2,即的第一位有效数字,根据题意及定理知,得,故取,即至少具有4位有

16、效数字,即=2.236,其相对误差不超过0.1%.§3 避免误差危害的若干原则在用计算机实现算法时,我们输入计算机的数据一般是有误差的(如观测误差等),计算机运算过程的每一步又会产生舍入误差,由十进制转化为机器数也会产生舍入误差,这些误差在迭代过程中还会逐步传播和积累,因此我们必须研究这些误差对计算结果的影响。但一个实际问题往往需要亿万次以上的计算,且每一步都可能产生误差,因此我们不可能对每一步误差进行分析和研究,只能根据具体问题的特点进行研究,提出相应的误差估计。特别地,如果我们在构造算法的过程中注意了以下一些原则,那么将有效地减少和避免误差的危害、控制误差的传播和积累。 一、要避

17、免两个相近的数相减在数值计算中两个相近的数相减会造成有效数字的严重损失,从而导致误差增大,影响计算结果的精度。例1 当x10003时,计算的近似值。解 若使用6位十进制浮点运算,运算时取6位有效数字,结果只有一位有效数字,损失了5位有效数字,使得绝对误差和相对误差都变得很大,影响计算结果的精度。若改用.则其结果有6位有效数字,与精确值非常接近。 再如,求 .若使用6位十进制浮点运算,运算时取6位有效数字,则 只有一位有效数字,损失了5位有效数字。若改用 ,则其结果有6位有效数字,与精确值非常接近。二、要防止重要的小数被大数“吃掉”在数值计算中,参加运算的数的数量级有时相差很大,而计算机的字长又

18、是有限的,因此,如果不注意运算次序,那么就可能出现小数被大数“吃掉”的现象。这种现象在有些情况下是允许的,但在有些情况下,这些小数很重要,若它们被“吃掉”,就会造成计算结果的失真,影响计算结果的可靠性。例2 求二次方程的根。解 用因式分解易得方程的二个根为. 但用求根公式编制程序,如果在只能将数表示到小数后8位的计算机上运算,那么首先要对阶而计算机上只能达到8位,故计算机上不起作用,即视为0,于是类似地有,故所得两个根为. 严重失真的原因是大数吃掉小数的结果。如果把的计算公式写成,则.注 需要说明的是:大数吃小数在有些情况下是允许的,但在有些情况下却会造成失真。再如,已知,求.如果按的次序来编

19、程序,“吃掉”,而与互相抵消,其结果为零。若按的次序来编程序,其结果为7. 由此可见,如果事先大致估计一下计算方案中各数的数量级,编制程序时加以合理的安排,那么重要的小数就可以避免被“吃掉”。此例还说明,用计算机作加减运算时,交换律和结合律往往不成立,不同的运算次序会得到不同的运算结果。三、在要避免出现除数的绝对值远远小于被除数绝对值的情形在用计算机实现算法的过程中,如果用绝对值很小的数作除数,往往会使舍入误差增大。即在计算时,若,则可能产生较大的舍入误差,对计算结果带来严重影响,应尽量避免。例3 在4位浮点十进制数下,用消去法解线性方程组.解 仿计算机实际计算,将上述方程组写成(1)(注意:

20、在第一步运算中出现了用很小的数作除数的情形,相应地在第二步运算中出现了大数“吃掉”小数的情形),得解得,.而原方程组的准确解为,. 显然上述结果严重失真。如果反过来用第二个方程消去第一个方程中含的项,那么就可以避免很小的数作除数的情形。即(2),得解得,.这是一组相当好的近似解。四、简化计算步骤同样一个问题,如果能减少运算次数,那么不但可以节省计算机的计算复杂性,而且还能减少舍入误差。因此在构造算法时,合理地简化计算公式是一个非常重要的原则。例4 已知,计算多项式的值。解 若直接计算,即先计算,然后逐项相加,则一共需要做次乘法和次加法。若对采用秦九韶算法 (3.1)则只要次乘法和次加法,就可得到的值。而且秦九韶算法计算过程简单、规律性强、适于编程,所占内存也比前一种方法要小。此外,由于减少了计算步骤,相应地也减少了舍入误差及其积累传播。此例说明合理地简化计算公式在数值计算中是非常重要的。五、注意算法的数值稳定性为了避免误差在运算过程中的累积增大,我们在构造算法时,还要考虑算法的稳定性。首先介绍数值稳定性的概念。

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论