计算方法课件(刘师少)第一章数值计算方法.ppt
Tel:86613747E-mail:授课授课:68学分:学分:4 在数学发展中,理论和计算是紧密联系的。现代计算机在数学发展中,理论和计算是紧密联系的。现代计算机的出现为大规模的数值计算创造了条件,集中而系统的研究的出现为大规模的数值计算创造了条件,集中而系统的研究适用于计算机的数值方法变得十分迫切和必要。数值计算方适用于计算机的数值方法变得十分迫切和必要。数值计算方法正是在大量的数值计算实践和理论分析工作的基础上发展法正是在大量的数值计算实践和理论分析工作的基础上发展起来的,它不仅仅是一些数值方法的简单积累,而且揭示了起来的,它不仅仅是一些数值方法的简单积累,而且揭示了包含在多种多样的数值方法之间的相同的结构和统一的原理。包含在多种多样的数值方法之间的相同的结构和统一的原理。数值算法是进行科学计算必不可缺少的起码常识;更为重要数值算法是进行科学计算必不可缺少的起码常识;更为重要的是通过对它们的讨论,能够使人们掌握设计数值算法的基的是通过对它们的讨论,能够使人们掌握设计数值算法的基本方法和一般原理,为在计算机上解决科学计算问题打下基本方法和一般原理,为在计算机上解决科学计算问题打下基础。因此,计算方法已经成为工科大学生必修课程础。因此,计算方法已经成为工科大学生必修课程。1.1.认识建立算法和对每个算法进行理论分析是基本认识建立算法和对每个算法进行理论分析是基本 任务,主动适应任务,主动适应“公式多公式多”的特点;的特点;2.2.注重各章建立算法的问题的提法,搞清问题的基注重各章建立算法的问题的提法,搞清问题的基 本提法,逐步深入;本提法,逐步深入;3.3.理解每个算法建立的数学背景,数学原理和基本理解每个算法建立的数学背景,数学原理和基本 线索,对最基本的算法要非常熟悉;线索,对最基本的算法要非常熟悉;4.4.认真进行数值计算的训练,学习各章算法完全是认真进行数值计算的训练,学习各章算法完全是 为用于实际计算,必须真会算。为用于实际计算,必须真会算。科学素质:拓宽对科学素质:拓宽对21世纪科学的了解;世纪科学的了解;加深对数学思想的理解;加深对数学思想的理解;培养用数学思考世界的习惯培养用数学思考世界的习惯数学能力:数学知识的运用能力;数学能力:数学知识的运用能力;对专业中问题建立数学求解方法与对专业中问题建立数学求解方法与 实际计算能力实际计算能力 应用问题中数学创造性能力应用问题中数学创造性能力计算知识:常用算法的数学理论;计算知识:常用算法的数学理论;在在“误差、存贮、速度误差、存贮、速度”之下的实之下的实 际计算方法;际计算方法;对结果的数值分析方法对结果的数值分析方法 记好课堂笔记记好课堂笔记 保证课堂纪律保证课堂纪律 按时完成作业按时完成作业 按时上课,不迟到早退按时上课,不迟到早退几点几点要求要求p数值分析讲述的基本内容数值分析讲述的基本内容n如何把数学模型归结为数值问题如何把数学模型归结为数值问题n如何制定快速的算法如何制定快速的算法n如何估计一个给定算法的精度如何估计一个给定算法的精度n分析误差在计算过程中的积累和传播分析误差在计算过程中的积累和传播n如何构造精度更高的算法如何构造精度更高的算法n如何使算法较少的占用存储量如何使算法较少的占用存储量n如何分析算法的优缺点如何分析算法的优缺点p本课程的基本要求本课程的基本要求n掌握数值方法的基本原理掌握数值方法的基本原理n掌握常用的科学与工程计算的基本方法掌握常用的科学与工程计算的基本方法n能用所学方法在计算机上算出正确结果能用所学方法在计算机上算出正确结果 本章内容本章内容1 引言引言2 误差的来源及分类误差的来源及分类 3 误差的度量误差的度量 4 误差的传播误差的传播 5 减少运算误差的原则减少运算误差的原则 第一章计算方法与误差第一章计算方法与误差小结小结 要求掌握的内容要求掌握的内容第一章计算方法与误差第一章计算方法与误差p概念概念 包括有效数字、绝对误差包括有效数字、绝对误差、绝对误差绝对误差限限、相对误差、相对误差相对误差、相对误差限等限等p误差误差截断误差、舍入误差的详细内容,误差种截断误差、舍入误差的详细内容,误差种类等类等p分析运算误差的方法和减少运算误差的若分析运算误差的方法和减少运算误差的若干原则干原则1.1 引言引言 数值分析又称计算方法数值分析又称计算方法,它是研究各种数它是研究各种数学问题的数值解法及其理论的一门学科。学问题的数值解法及其理论的一门学科。p数值分析的任务数值分析的任务实际问题数学模型数值计算方法程序设计上机计算数值结果 根据数学模型提出求解的数值计算方法根据数学模型提出求解的数值计算方法直到编出程序上机算出结果,这一过程边是直到编出程序上机算出结果,这一过程边是数值分析研究的对象数值分析研究的对象1.对于要解决的问题建立数学模型对于要解决的问题建立数学模型2.研究用于求解该数学问题近似解的算法研究用于求解该数学问题近似解的算法和过程和过程3.按照按照2进行计算,得到计算结果进行计算,得到计算结果建立数建立数学模型学模型转化为转化为数值公式数值公式进行计算进行计算数值方法解题的一般过程数值方法解题的一般过程 数值计算以及计算机模拟(包括当前流数值计算以及计算机模拟(包括当前流行的虚拟现实的方法),已经是在工程技术行的虚拟现实的方法),已经是在工程技术研究和经济、社会科学中广泛应用的方法,研究和经济、社会科学中广泛应用的方法,带来巨大的经济效益带来巨大的经济效益天气预报与亿次计算机天气预报与亿次计算机波音波音777的无纸设计与有限元的无纸设计与有限元CT、核磁共振核磁共振计算流体力学与爆炸工程计算流体力学与爆炸工程能源问题与大型计算能源问题与大型计算第一章计算方法与误差第一章计算方法与误差计算作为计算作为工程技术工程技术研究方法研究方法p计算方法课程主要讨论如何构造求数学模计算方法课程主要讨论如何构造求数学模型近似解的算法,讨论算法的数学原理、型近似解的算法,讨论算法的数学原理、误差和复杂性,配合程序设计进行计算试误差和复杂性,配合程序设计进行计算试验并分析试验结果。验并分析试验结果。p与纯数学的理论方法不同,用数值计算方与纯数学的理论方法不同,用数值计算方法所求出的结果一般不是解的精确值或者法所求出的结果一般不是解的精确值或者准确的解析表达式,而是所求真解的某些准确的解析表达式,而是所求真解的某些近似值或近似曲线。近似值或近似曲线。第一章计算方法与误差第一章计算方法与误差 例如方程例如方程 x2=2sinx,在区间在区间(1,2)内有唯一根内有唯一根,但找不出求根的解析式但找不出求根的解析式,只能用数值计算方法求其近只能用数值计算方法求其近似解。有些数学问题虽有理论上的准确的公式解似解。有些数学问题虽有理论上的准确的公式解,但但不一定实用不一定实用,例如例如行列式解法的行列式解法的Cramer法则原则上法则原则上可用来求解线性方程组可用来求解线性方程组,用这种方法解一个用这种方法解一个n元方程元方程组组,要算要算n+1+1个阶行列式的值个阶行列式的值,总共需要总共需要n!(n-1)(n+1)n!(n-1)(n+1)次乘法次乘法,当当n=20n=20时时,其乘除法运算次数约需其乘除法运算次数约需10102121次方次方,即使用每秒千亿次的计算机也得需要上百年即使用每秒千亿次的计算机也得需要上百年,而用高而用高斯(斯(Guass)消去法约需消去法约需26602660次乘除法运算次乘除法运算,并且愈并且愈大大,相差就愈大。可见研究和选择好的算法是非常重相差就愈大。可见研究和选择好的算法是非常重要的。要的。p算法算法(数值算法数值算法):是指有步骤地完成解数值是指有步骤地完成解数值问问 题的过程。题的过程。p数值算法的特点数值算法的特点 目的性,条件和结论、输入和输出数据均要有明目的性,条件和结论、输入和输出数据均要有明 确的规定与要求。确的规定与要求。确定性,精确地给出每一步的操作确定性,精确地给出每一步的操作(不一定都是不一定都是运运 算算)定义定义,不容许有歧义。不容许有歧义。可执行性,算法中的每个操作都是可执行的可执行性,算法中的每个操作都是可执行的 有穷性,在有限步内能够结束解题过程有穷性,在有限步内能够结束解题过程p计算机上的算法,按面向求解问题的不同,计算机上的算法,按面向求解问题的不同,分为数值算法和非数值算法。分为数值算法和非数值算法。第一章计算方法与误差第一章计算方法与误差1.2 误差的来源及分类误差的来源及分类 早在中学我们就接触过误差的早在中学我们就接触过误差的概念,如在做热力学实验中,从温概念,如在做热力学实验中,从温度计上读出的温度是度计上读出的温度是23.4度,就不度,就不是一个精确的值,而是含有误差的是一个精确的值,而是含有误差的近似值。事实上,误差在我们的日近似值。事实上,误差在我们的日常生活中无处不在,无处不有。如常生活中无处不在,无处不有。如量体裁衣,量与裁的结果都不是精量体裁衣,量与裁的结果都不是精确无误的,都含有误差。确无误的,都含有误差。p在用数值方法解题过程中可能产生的误差归在用数值方法解题过程中可能产生的误差归纳起来有如下几类:纳起来有如下几类:n1.模型误差模型误差n2.观测误差观测误差n3.截断误差截断误差n4.舍入误差舍入误差第一章计算方法与误差第一章计算方法与误差p用数学方法解决一个具体的实际问题,首先要建立用数学方法解决一个具体的实际问题,首先要建立数学模型,这就要对实际问题进行抽象、简化,数学模型,这就要对实际问题进行抽象、简化,因而数学模型本身总含有误差,这种误差叫做模因而数学模型本身总含有误差,这种误差叫做模型误差型误差p数学模型是指那些利用数学语言模拟现实而建立起数学模型是指那些利用数学语言模拟现实而建立起来的有关量的描述来的有关量的描述p数学模型的准确解与实际问题的真解不同数学模型的准确解与实际问题的真解不同实际问题的实际问题的真解真解数学模型的数学模型的真解真解为减化模型忽略次要为减化模型忽略次要因素因素定理在特定条件下建立与实定理在特定条件下建立与实际条件有别际条件有别1.模型误差模型误差p在数学模型中通常包含各种各样的参变量,如温度、在数学模型中通常包含各种各样的参变量,如温度、长度、电压等,这些参数往往是通过观测得到的,长度、电压等,这些参数往往是通过观测得到的,因此也带来了误差,这种误差叫观测误差因此也带来了误差,这种误差叫观测误差p数学模型中的参数和原始数据,是由观测和试验得数学模型中的参数和原始数据,是由观测和试验得到的到的p由于测量工具的精度、观测方法或客观条件的限制由于测量工具的精度、观测方法或客观条件的限制,使数据含有测量误差使数据含有测量误差,这类误差叫做这类误差叫做观测误差或数观测误差或数据误差据误差p根据实际情况可以得到误差上下界根据实际情况可以得到误差上下界p数值方法中需要了解观测误差数值方法中需要了解观测误差,以便选择合理的数以便选择合理的数值方法与之适应值方法与之适应2.观测误差观测误差p精确公式用近似公式代替时精确公式用近似公式代替时,所产生的误差叫所产生的误差叫截断截断误差误差 例如例如,函数函数f(x)用泰勒用泰勒(Taylor)多项式多项式 3.截断误差截断误差(介于0与x之间)近似代替,则数值方法的截断误差是近似代替,则数值方法的截断误差是p 截断误差的大小直接影响计算结果的精度和计算截断误差的大小直接影响计算结果的精度和计算 工作量,是数值计算中必须考虑的一类误差工作量,是数值计算中必须考虑的一类误差p在数值计算中只能对有限位字长的数值进在数值计算中只能对有限位字长的数值进行运算行运算p需要对参数、中间结果、最终结果作有限需要对参数、中间结果、最终结果作有限位字长的处理工作,这种处理工作称作舍位字长的处理工作,这种处理工作称作舍入处理入处理p用有限位数字代替精确数,这种误差叫做用有限位数字代替精确数,这种误差叫做舍入误差舍入误差,是数值计算中必须考虑的一类,是数值计算中必须考虑的一类误差误差4.舍入误差舍入误差第一章计算方法与误差第一章计算方法与误差 例例如在计算时用如在计算时用3.141593.14159近似代替近似代替,产生的误差产生的误差R=R=-3.14159=0.0000026-3.14159=0.0000026就是舍入误差。就是舍入误差。上述种种误差都会影响计算结果的准确上述种种误差都会影响计算结果的准确性,因此需要了解与研究误差,在数值计算性,因此需要了解与研究误差,在数值计算中将着重研究截断误差、舍入误差,并对它中将着重研究截断误差、舍入误差,并对它们的传播与积累作出分析们的传播与积累作出分析1.3 1.3 误差的度量误差的度量 1.3.1 绝对误差和绝对误差限绝对误差和绝对误差限 定义定义1.1 设精确值设精确值x x的近似值的近似值 x*x*,称差称差 e(xe(x*)=x-x=x-x*近似值近似值x x*的绝对误差,简称误差。的绝对误差,简称误差。e(xe(x*)又记为又记为e e*当当e e*00时时,x x*称称为为弱弱近近似似值值,当当e e*00时时,x x*称称为为强强近近似值似值|e e*|越小,越小,x*的精度越高的精度越高 由于精确值一般是未知的由于精确值一般是未知的,因而因而e e*不能求出来不能求出来,但可以根据测量误差或计算情况设法估计出它的但可以根据测量误差或计算情况设法估计出它的取值范围,即误差绝对值的一个上界或称误差限。取值范围,即误差绝对值的一个上界或称误差限。1.3 1.3 误差的度量误差的度量 定义定义1.2 设存在一个正数,使设存在一个正数,使则称为近似值的绝对误差限,简称误差限或精度。则称为近似值的绝对误差限,简称误差限或精度。实际应用中经常使用这个量来衡量误差限实际应用中经常使用这个量来衡量误差限,这这就是说就是说,如果近似数如果近似数 的误差限为的误差限为 ,则则表明准确值表明准确值 x 必落在必落在 上上,常采用下面的常采用下面的写法写法来表示近似值的精度或准确值来表示近似值的精度或准确值x所在的范围。所在的范围。1.3 1.3 误差的度量误差的度量a-a-a+a+a aA例例1 1 设x=3.1415926 近似值x*=3.14,它的绝 对误差是 0.001 592 6,有 x-x*=0.0015926 0.002=0.210-2例例2 又近似值x*=3.1416,它的绝对误差是 0.0000074,有 x-x*=0.0000074 0.000008=0.810-5例例3 3 而近似值x*=3.1415,它的绝对误差是 0.0000926,有 x-x*=0.0000926 0.0001=0.110-3可见,可见,绝对误差限绝对误差限*不是唯一的,但不是唯一的,但*越小越好越小越好1.3.2 1.3.2 相对误差和相对误差限相对误差和相对误差限 只用绝对误差还不能说明数的近似程度只用绝对误差还不能说明数的近似程度,例如甲打字每例如甲打字每100100个错一个个错一个,乙打字每乙打字每10001000个个错一个错一个,他们的误差都是错一个他们的误差都是错一个,但显然乙要但显然乙要准确些准确些,这就启发我们除了要看绝对误差外这就启发我们除了要看绝对误差外,还必须顾及量的本身。还必须顾及量的本身。定义定义1.3 1.3 绝对误差与精确值绝对误差与精确值x的比值的比值 称为相对误差。称为相对误差。简记为简记为1.3.2 1.3.2 相对误差和相对误差限相对误差和相对误差限 相相对对误误差差越越小小,精精度度就就越越高高,实实际际计计算算时时,x通通常常是是不不知知道道的的,因因此此可可用用下下列列公公式式计计算算相相对对误差误差定义定义1.4 1.4 设存在一个正数设存在一个正数 ,使,使 则称则称 为近似值为近似值 的相对误差限。的相对误差限。简记为简记为 1.3.2 1.3.2 相对误差和相对误差限相对误差和相对误差限例例4.4.甲打字每甲打字每100100个错一个,乙打字每个错一个,乙打字每10001000个个 错一个,求其相对误差错一个,求其相对误差解:解:根椐定义根椐定义:甲打字时的相对误差甲打字时的相对误差 乙打字时的相对误差乙打字时的相对误差 1.3.3 1.3.3 有效数字有效数字定义定义1.5 1.5 设设x的近似值的近似值 其中其中 是是0 0到到9 9之之间间的任一个数的任一个数,但但n是正整数是正整数,m是整数是整数,若若 则则称称 为为x的具有的具有n位有效数字的近似位有效数字的近似值值,准确到准确到第第n位,位,是是 的有效数字。的有效数字。1.3.3 1.3.3 有效数字有效数字例例5.3.1425.3.142作为作为的近似值时有几位有效数字的近似值时有几位有效数字解:解:3.141592=0.3141592 3.141592=0.3141592 3.142=0.3142 3.142=0.3142 m=1 =1|-3.142|=|0.3141592 -0.3142-3.142|=|0.3141592 -0.3142|0.000041 0.000041 0.0005=0.0005=m n=1=1n=-3 =-3 所以所以 n=4=4,具有具有4 4位有效数字位有效数字例例6.6.当取当取3.1413.141作为作为 的近似值时的近似值时 -3.1413.141=0.31415920.3141592 10101 1 -0.31410.3141 10101 1 0.0000592 0.0000592 10101 1 0.0005=1/2 0.0005=1/2 10 10-2-2 m-n=1-=1-n=-2 =-2 所以所以n=3=3具具有有3 3位位有效数字有效数字推论推论 如果如果近似数近似数x*误差限是某一位的半个单位误差限是某一位的半个单位,由该位到由该位到x*的第一位非零数字一共有的第一位非零数字一共有n位位 x*就有就有n位有效数字位有效数字,也就是说准确到该位也就是说准确到该位再如再如3.14163.1416作为作为 的近似值时的近似值时 -3.1416 3.1416 =0.3141592 0.3141592 10101 1-0.314160.31416 10101 1 0.00000074 0.00000074 10101 1 0.00000740.00005 0.00000740.00005 0.5 0.5 10 10-4-4 m-n=1-=1-n=-4 =-4 所以所以 n=5=5x*=3.14163.1416有有5 5位有效数字位有效数字关于有效数字说明关于有效数字说明 用用四舍五入取准确值的前四舍五入取准确值的前n n位位x x*作为近似值作为近似值,则则 x*必有必有n位有效数字。如位有效数字。如3.1423.142作为作为 的近似值的近似值 有有4 4位有效数字,而位有效数字,而3.1413.141为为3 3位有效数字位有效数字 有效数字相同的两个近似数,绝对误差不一定有效数字相同的两个近似数,绝对误差不一定 相同。例如,设相同。例如,设x1 1*=12345,=12345,设设x2 2*=12.345,=12.345,两者两者 均有均有5 5位有效数字但绝对误差不一样位有效数字但绝对误差不一样 x-x1 1*=x-12345-12345 0.5=0.5=1/2 1/2 10 100 0 x-x2 2*=x-12.345-12.345 0.0005=0.0005=1/21/2 1010-3-3 把任何数乘以把任何数乘以1010p(p=0,=0,1,)1,)不影响有效位数不影响有效位数 准确值具有无穷多位有效数字准确值具有无穷多位有效数字,如三角形面积如三角形面积 S=1/2 S=1/2ah=0.5=0.5ah 因为因为0.50.5是真值是真值,没有误差没有误差 *=0,=0,因此因此n n,准确值具有无穷位有效数字准确值具有无穷位有效数字1.3.4 1.3.4 有效数字与相对误差有效数字与相对误差定理定理1.1 1.1 若若近似数近似数x*=0.0.x1 1x2 2xn n 1010m m具有具有 n 位位 有效数字,则其相对误差有效数字,则其相对误差证证:x*=0.0.x1 1x2 2xn n 1010m m x*x1 1 10 10 m-1m-1 又又 x*具有具有n n位有效数字位有效数字,则则 x-x-x*1/21/2 10 10 m-nm-n 一般应用中可以取一般应用中可以取 r r*=1/2=1/2x1 1 1010-(n-1)-(n-1),n越大越大,r r*越小越小,有效数字越多,相对误差就越小有效数字越多,相对误差就越小例例7 7 取取3.143.14作为作为 的四舍五入的近似值时,求其的四舍五入的近似值时,求其 相对误差相对误差解:解:3.14=0.314 3.14=0.314 10101 1 x1 1=3 =3 m=1=1 四舍五入的近似值四舍五入的近似值,其各位都是有效数字其各位都是有效数字 n=3=3 r r*=1/2=1/2x1 1 1010-(n-1)-(n-1)=1/2*3=1/2*3 1010-2-2=17%=17%1.3.4 1.3.4 有效数字与相对误差有效数字与相对误差例例8 8 已知近似数已知近似数x*有两位有效数字,试求其相有两位有效数字,试求其相 对误差限对误差限解:已知解:已知 n=2=2 代入公式代入公式 r r*=1/2=1/2x1 1 1010-(n-1)-(n-1)得得 r r*=1/2=1/2x1 1 1010-1-1 x*的第一位有效数字的第一位有效数字x1 1没有给出,可进行如下没有给出,可进行如下讨论:当讨论:当 x1 1=1 =1 r r*=1/2x=1/2x1 1 1010-1-1=1/2*1=1/2*1 1010-1-1=5%=5%x1 1=9 =9 r r*=1/2x=1/2x1 1 1010-1-1=1/2*9=1/2*9 1010-1-1=0.56%=0.56%取取 x1 1=1=1 时相对误差为最大,即时相对误差为最大,即 5%5%1.3.4 1.3.4 有效数字与相对误差有效数字与相对误差1.3.4 1.3.4 有效数字与相对误差有效数字与相对误差定理定理1.2 1.2 若若近似数近似数x x*=0.x0.x1 1x x2 2x xn n 1010m m相对误差相对误差 则该近似数具有则该近似数具有n n位有效数字位有效数字证证:x*=0.0.x1 1x2 2xn n 1010m m x*(x1 1+1)+1)1010m-1m-1由有效数字定义可知由有效数字定义可知,x*x*具有具有n n位有效数字。证毕位有效数字。证毕例例9 9 已知近似数已知近似数x x*的相对误差限为的相对误差限为0.3%0.3%,问,问x x*有几位有效数字?有几位有效数字?解:由解:由得得当当x x1 1=1=1时时,3,3 1010-3-3=1/4=1/4 1010-(n-1)-(n-1)1212 1010-3-3=10=10-(n-1)-(n-1)上式两边取以上式两边取以1010为底的对数得为底的对数得 lg2lg22 2+lg3+(-3)=-n+1+lg3+(-3)=-n+1 lg2=0.3010 lg3=0.4771lg2=0.3010 lg3=0.4771 2 2 0.3010+0.4771-4=-n 0.3010+0.4771-4=-n n=2.9209n=2.9209 当当x x1 1=9=9时时,3,3 1010-3-3=1/20=1/20 1010-(n-1)-(n-1)6 6 1010-3-3=10=10-n-n 上式两边取以上式两边取以1010为底的对数得为底的对数得 lg2+lg3+(-3)=-n lg2+lg3+(-3)=-n n=2.2219n=2.2219 x x*至少有至少有3 3位有效数字位有效数字 例例10 10 为使为使 的近似数的相对误差小于的近似数的相对误差小于0.1%0.1%,问查开方表时,要取几位有效数字?问查开方表时,要取几位有效数字?解:解:8 9 8 9 x x1 1=8=8 -(-(n-1)lg2+2lg3+(-3)n-1)lg2+2lg3+(-3)-n1.2552-4 -n1.2552-4 -n-2.7448 -n2.7448 n2.7448 取取 n=3n=3即查平方表时即查平方表时 8.378.37取三位有效数字取三位有效数字 注意注意:已知有效数字已知有效数字,求相对误差用公式求相对误差用公式 已知相对误差已知相对误差,求具有几位有效数字公式求具有几位有效数字公式 1.4.1 函数运算误差函数运算误差 函数运算误差可用泰勒展开式来分析函数运算误差可用泰勒展开式来分析 设一元函数设一元函数f(x),自变量自变量x的近似值的近似值x*,f(x)的近似值的近似值f(x*),其误差限记为其误差限记为 f(x*),对,对f(x)在近似值在近似值x*附近泰勒展开附近泰勒展开1.4 1.4 误差的传播介于介于x,xx,x*之间之间其中其中*为为近似数近似数x*的绝对误差限,设的绝对误差限,设f(x*)与与f(x*)相差不大相差不大,可忽略可忽略*的高次项的高次项,于是可得出函于是可得出函数运算的误差和相对误差数运算的误差和相对误差多元函数亦类似,用泰勒展开即可推导出来多元函数亦类似,用泰勒展开即可推导出来例例11 11 已测得某场地长已测得某场地长L L的值的值L L*=110m,=110m,宽宽d d的值的值 d d*=80m,=80m,已知已知 L-LL-L*0.2m,0.2m,d-dd-d*0.1m0.1m 求场地面积求场地面积S=LdS=Ld的的绝对误差限和相对误差限绝对误差限和相对误差限解:解:其中其中 (d*)=0.1m,(L*)=0.2m绝对误差限绝对误差限 (s*)(800.2+110 0.1)m2=27m2相对误差限相对误差限1.4.2 1.4.2 算术运算误差算术运算误差 计算机的数值运算主要是加、减、乘、除四计算机的数值运算主要是加、减、乘、除四则运算,带有误差的数在多次运算过程中会进则运算,带有误差的数在多次运算过程中会进行传播。使计算结果产生误差。行传播。使计算结果产生误差。误差的变化可以用微分简单描述。注意到准误差的变化可以用微分简单描述。注意到准确值确值x x与其近似值通常很接近,其差可认为是较与其近似值通常很接近,其差可认为是较小的增量,即可以把差看作微分,由此可得误小的增量,即可以把差看作微分,由此可得误差的微分近似关系式。差的微分近似关系式。即即x x的微分表示的微分表示x x的绝对误差,的微分表示的绝对误差,的微分表示x x的相对误差,利用这两个关系式及微分运算的相对误差,利用这两个关系式及微分运算可以得到一系列有关四则运算的误差结果。可以得到一系列有关四则运算的误差结果。1.4.2 1.4.2 算术运算误差算术运算误差 由由d(xd(xy)=y)=dxdxdy dy 可得两数之和可得两数之和(差)的差)的误差等于两数的误差之和(差);误差等于两数的误差之和(差);由由 可得两数之积可得两数之积的相对误差等于两数的相对误差之和;的相对误差等于两数的相对误差之和;由由 可得两数商的相可得两数商的相对误差可看作是被除数与除数的相对误差之差。对误差可看作是被除数与除数的相对误差之差。例例12 12 正方形的边长约为正方形的边长约为100100cm,cm,怎样测量才能使其怎样测量才能使其 面积误差不超过面积误差不超过1 1cmcm2 2?解:解:设正方形边长为设正方形边长为x cm,cm,测量值为测量值为x*cm,cm,面积面积 y=f(x)=)=x2 2 由于由于 f (x)=2)=2x 记自变量和函数的绝对误差分别是记自变量和函数的绝对误差分别是e*、e(y*),),则则 e*=x-x*e(y*)=)=y-y*f (x*)()(x-x*)=2x)=2x*e*=200=200e*现要求现要求 e(e(y*)200e 200e*1,1,于是于是 e e*(1/2001/200)cm=0.005cmcm=0.005cm 要使要使正方形面积误差不超过正方形面积误差不超过1 1cmcm2 2,测量边长时测量边长时绝对误差应不超过绝对误差应不超过0.0050.005cmcm。1.5 1.5 减少运算误差原则减少运算误差原则 误差是用来衡量数值方法好与坏的重要标志误差是用来衡量数值方法好与坏的重要标志 为此对每一个算法都要进行误差分析为此对每一个算法都要进行误差分析(1)(1)两个相近的数相减,会严重损失有效数字两个相近的数相减,会严重损失有效数字 例如例如x=1958.75x=1958.75,y=1958.32y=1958.32都具有五位都具有五位 有效数字,但有效数字,但x-y=0.43x-y=0.43只有两位有效数字只有两位有效数字 通常采用的方法是改变计算公式通常采用的方法是改变计算公式,例如当与例如当与 很接近时很接近时,由于由于用右端代替左端公式计算用右端代替左端公式计算,有效数字就不会损失有效数字就不会损失 1.5 1.5 减少运算误差原则减少运算误差原则当当x很大时可作相应的变换很大时可作相应的变换 则用右端来代替左端。则用右端来代替左端。1.5 1.5 减少运算误差若干原则减少运算误差若干原则当当x接近接近0 0时时 一般情况,当一般情况,当f(x)f(x*)f(x)f(x*)时,可用泰勒展开时,可用泰勒展开 取右端的有限项近似左端。取右端的有限项近似左端。如果计算公式不能改变,则可采用增加有效位如果计算公式不能改变,则可采用增加有效位数的方法保证精度数的方法保证精度 (2 2)防止大数)防止大数“吃掉吃掉”小数小数例例 求二次方程求二次方程x x2 2-10-105 5x+1=0 x+1=0的根的根 解:按二次方程求根公式解:按二次方程求根公式 x x1 1=(10=(105 5+(10+(101010-4)-4)1/21/2)/2)/2 x x2 2=(10=(105 5-(10-(101010-4)-4)1/21/2)/2)/2 在在8 8位浮点数计算得位浮点数计算得 x x1 1=(10=(105 5+10+105 5)/2=10)/2=105 5 (正确)正确),x x2 2=(10=(105 5-10-105 5)/2=0 ()/2=0 (错误)错误)p产生错误的原因产生错误的原因 出现大数出现大数10101010吃掉小数吃掉小数4 4的情况的情况 分子部分出现两个相近数相减而丧失有分子部分出现两个相近数相减而丧失有 效数位常称为灾难性的抵消效数位常称为灾难性的抵消(3)绝对值太小的数不宜做除数)绝对值太小的数不宜做除数当分母为两个相近数相减时当分母为两个相近数相减时,会丧失有效数字会丧失有效数字这里分子的误差被扩大这里分子的误差被扩大104104倍倍,再如再如若将分母变为若将分母变为0.0011,0.0011,即分母只有即分母只有0.00010.0001的变化的变化时时,计算结果却有了很大变化计算结果却有了很大变化 1.5 1.5 减少运算误差若干原则减少运算误差若干原则例例1.8 1.8 计算计算 解解:分子分母分别计算后相除分子分母分别计算后相除(取取9位小位小数数)A=0.0005*0.0143*0.0012=0.00000715*0.0012 =0.000000009(有舍入有舍入)B=0.0003*0.0125*0.0135=0.00000375*0.0135 =0.000000051(有舍入有舍入)D=A/B=0.17647真值为真值为0.16948148,所以所以D只准确到小数后一位只准确到小数后一位1.5 1.5 减少运算误差若干原则减少运算误差若干原则例:例:计算计算 算法算法2。分成三组因子。每组只取六位小数计算。分成三组因子。每组只取六位小数计算 a=0.0005/0.0003=1.666667(有舍入有舍入)b=0.0143/0.0125=1.144000 c=0.0012/0.0135=0.088889(有舍入有舍入)D=a*b*c=1.666667*1.144000*0.088889=0.169482,准确到小数后准确到小数后5位。位。b bc ca a1.5 1.5 减少运算误差若干原则减少运算误差若干原则(4 4)简化计算步骤,减少运算次数)简化计算步骤,减少运算次数 x255255=xx2 2x4 4x8 8x1616x3232x6464x128128 原先要做原先要做254254次乘法现只需次乘法现只需1414次即可次即可 又如计算多项式又如计算多项式 p(x)=)=an nxn n an-1n-1xn-1 n-1 a1 1x a0 0 的值的值 若直接计算若直接计算ak kxk k,再逐项相加,一共要做再逐项相加,一共要做 n+(+(n-1)+-1)+2+1=+2+1=n(n+1)/2+1)/2次乘法和次乘法和n次加法次加法 1.5 1.5 减少运算误差若干原则减少运算误差若干原则如果将前如果将前n n项提出项提出x x,则有则有 p(x)=)=(an nxn n-1-1 an-1n-1xn-2 n-2 a1 1)x a0 0 =(=(an nxn n-2-2 an-1n-1xn-3n-3 a2 2)x a1 1)x a0 0 =(=(an nx an-1n-1)x a2 2)x a1 1)x a0 0写成递推公式写成递推公式 1.5 1.5 减少运算误差若干原则减少运算误差若干原则于是于是 ,这种多项式求值的算法称为秦九这种多项式求值的算法称为秦九韶算法韶算法,只做只做n次乘法和次乘法和n次加法次加法,程序实现简单程序实现简单 1.5.5 1.5.5 控制递推公式中误差的传播控制递推公式中误差的传播 对于一个数学问题的求解往往有多种数值方法对于一个数学问题的求解往往有多种数值方法在选择数值方法时,要注意所用的数值方法不应将在选择数值方法时,要注意所用的数值方法不应将计算过程中难以避免的误差放大的较快,造成计算计算过程中难以避免的误差放大的较快,造成计算结果完全失真。结果完全失真。例例13 13 计算积分计算积分 并估计误差并估计误差解解 容易得到递推公式容易得到递推公式 即即 为为 则准确的理论递推式则准确的理论递推式 实际运算的递推式实际运算的递推式 两式相减有两式相减有 这就是说这就是说,若若 与与 的误差为的误差为 =-,即即 ,则误差的递推规律为,则误差的递推规律为 于是于是 计算计算 时的误差被扩大了时的误差被扩大了 倍倍,显然算法是显然算法是数值不稳定的。数值不稳定的。如果将递推公式如果将递推公式 变换一种形式变换一种形式 准确的理论递推式准确的理论递推式实际运算的递推式实际运算的递推式从而有从而有 即即于是有于是有则这个算法的误差传递规律为则这个算法的误差传递规律为 即每计算一步的误差的绝对值是上一步的十分即每计算一步的误差的绝对值是上一步的十分之一,误差的传播逐步缩小,得到很好的控制,这之一,误差的传播逐步缩小,得到很好的控制,这个算法是数值稳定的个算法是数值稳定的 本章小结本章小结 误差在数值计算中是不可避免的,误差的传播和误差在数值计算中是不可避免的,误差的传播和积累直接影响到计算结果的精度。在研究算法的同时,积累直接影响到计算结果的精度。在研究算法的同时,必须注重误差分析,使建立起来的算法科学有效。必须注重误差分析,使建立起来的算法科学有效。按按照照误误差差产产生生的的来来源源可可分分为为模模型型误误差差、观观测测误误差差,截断误差、和舍入误差等。截断误差、和舍入误差等。误差的表示法有绝对误差和相对误差两种。误差的表示法有绝对误差和相对误差两种。在在表表示示一一个个近近似似数数时时,要要用用到到有有效效数数字字的的概概念念,这这在数值计算中非常有用在数值计算中非常有用,有效数字是由绝对误差决定的有效数字是由绝对误差决定的 通常用函数的泰勒展开对误差进行估计通常用函数的泰勒展开对误差进