1、Tel:13504800658 授课授课:54 学分:学分:3 在数学发展中,理论和计算是紧密联系的。现代计算机在数学发展中,理论和计算是紧密联系的。现代计算机的出现为大规模的数值计算创造了条件,集中而系统的研究的出现为大规模的数值计算创造了条件,集中而系统的研究适用于计算机的数值方法变得十分迫切和必要。数值计算方适用于计算机的数值方法变得十分迫切和必要。数值计算方法正是在大量的数值计算实践和理论分析工作的基础上发展法正是在大量的数值计算实践和理论分析工作的基础上发展起来的,它不仅仅是一些数值方法的简单积累,而且揭示了起来的,它不仅仅是一些数值方法的简单积累,而且揭示了包含在多种多样的数值方法
2、之间的相同的结构和统一的原理包含在多种多样的数值方法之间的相同的结构和统一的原理。数值算法是进行科学计算必不可缺少的起码常识;更为重。数值算法是进行科学计算必不可缺少的起码常识;更为重要的是通过对它们的讨论,能够使人们掌握设计数值算法的要的是通过对它们的讨论,能够使人们掌握设计数值算法的基本方法和一般原理,为在计算机上解决科学计算问题打下基本方法和一般原理,为在计算机上解决科学计算问题打下基础。因此,计算方法已经成为大学生必修课程基础。因此,计算方法已经成为大学生必修课程。保证课堂纪律保证课堂纪律 按时完成作业按时完成作业 按时上课,不迟到早退按时上课,不迟到早退几点几点要求要求p计算方法讲述
3、的基本内容计算方法讲述的基本内容n 如何把数学模型归结为数值问题如何把数学模型归结为数值问题n 如何制定快速的算法如何制定快速的算法n 如何估计一个给定算法的精度如何估计一个给定算法的精度n 分析误差在计算过程中的积累和传播分析误差在计算过程中的积累和传播n 如何构造精度更高的算法如何构造精度更高的算法n 如何使算法较少的占用存储量如何使算法较少的占用存储量n 如何分析算法的优缺点如何分析算法的优缺点计算方法讲述的内容计算方法讲述的内容p1.数值代数:包括线性代数方程组的求解数值代数:包括线性代数方程组的求解、非线性代数及超越方程的求根及求方阵、非线性代数及超越方程的求根及求方阵的特征根与特征
4、向量等内容。的特征根与特征向量等内容。p2.数值分析:包括插值、平方逼近、数值数值分析:包括插值、平方逼近、数值积分及数值微分等内容。积分及数值微分等内容。p 3.微分方程数值解:包括求解常微分方程微分方程数值解:包括求解常微分方程及偏微方程的有限差分法及有限元方法等及偏微方程的有限差分法及有限元方法等。本章内容本章内容1误差的来源误差的来源2 浮点数,误差、误差限浮点数,误差、误差限 有效数字有效数字 3 相对误差和相对误差限相对误差和相对误差限 4 误差的传播误差的传播 5 减少运算误差的原则减少运算误差的原则 第一章误差第一章误差第一章误差第一章误差第一章误差第一章误差小结小结 要求掌握
5、的内容要求掌握的内容第一章误差第一章误差第一章误差第一章误差第一章误差第一章误差p概念概念 包括有效数字、绝对误差包括有效数字、绝对误差、绝对误差绝对误差限限、相对误差、相对误差相对误差、相对误差限等限等p误差误差截断误差、舍入误差的详细内容,误差种截断误差、舍入误差的详细内容,误差种类等类等p分析运算误差的方法和减少运算误差的若分析运算误差的方法和减少运算误差的若干原则干原则 引言引言计算方法计算方法,它是研究各种数学问题的数值解法它是研究各种数学问题的数值解法及其理论的一门学科。及其理论的一门学科。p计算方法的任务计算方法的任务实际问题数学模型数值计算方法程序设计上机计算数值结果 根据数学
6、模型提出求解的数值计算方法根据数学模型提出求解的数值计算方法直到编出程序上机算出结果,这一过程便是直到编出程序上机算出结果,这一过程便是计算方法计算方法研究的对象研究的对象1.对于要解决的问题建立数学模型对于要解决的问题建立数学模型2.研究用于求解该数学问题近似解的算法研究用于求解该数学问题近似解的算法和过程和过程3.按照按照2进行计算,得到计算结果进行计算,得到计算结果建立数建立数学模型学模型转化为转化为数值公式数值公式进行计算进行计算计算方法解题的一般过程计算方法解题的一般过程p计算方法课程主要讨论如何构造求数学模计算方法课程主要讨论如何构造求数学模型近似解的算法,讨论算法的数学原理、型近
7、似解的算法,讨论算法的数学原理、误差和复杂性,配合程序设计进行计算试误差和复杂性,配合程序设计进行计算试验并分析试验结果。验并分析试验结果。p与纯数学的理论方法不同,用数值计算方与纯数学的理论方法不同,用数值计算方法所求出的结果一般不是解的精确值或者法所求出的结果一般不是解的精确值或者准确的解析表达式,而是所求真解的某些准确的解析表达式,而是所求真解的某些近似值或近似曲线。近似值或近似曲线。第一章误差第一章误差第一章误差第一章误差第一章误差第一章误差 例如方程例如方程 x2=2sinx,在区间在区间(1,2)内有唯一根内有唯一根,但找不出求根的解析式但找不出求根的解析式,只能用数值计算方法求其
8、近只能用数值计算方法求其近似解。有些数学问题虽有理论上的准确的公式解似解。有些数学问题虽有理论上的准确的公式解,但但不一定实用不一定实用,例如例如行列式解法的行列式解法的Cramer法则原则上可法则原则上可用来求解线性方程组用来求解线性方程组,用这种方法解一个用这种方法解一个n元方程组元方程组,要算要算n+1+1个阶行列式的值个阶行列式的值,总共需要总共需要n!(n-1)(n+1)n!(n-1)(n+1)次次乘法乘法,当当n=20n=20时时,其乘除法运算次数约需其乘除法运算次数约需10102121次方次方,即即使用每秒千亿次的计算机也得需要上百年使用每秒千亿次的计算机也得需要上百年,而用高斯
9、而用高斯(Guass)消去法约需消去法约需26602660次乘除法运算次乘除法运算,并且愈大并且愈大,相差就愈大。可见研究和选择好的算法是非常重要相差就愈大。可见研究和选择好的算法是非常重要的。的。第一章误差第一章误差第一章误差第一章误差第一章误差第一章误差1.1 误差的来源误差的来源 早在中学我们就接触过误差早在中学我们就接触过误差的概念,如在做热力学实验中,从的概念,如在做热力学实验中,从温度计上读出的温度是温度计上读出的温度是23.4度,就度,就不是一个精确的值,而是含有误差不是一个精确的值,而是含有误差的近似值。事实上,误差在我们的的近似值。事实上,误差在我们的日常生活中无处不在,无处
10、不有。日常生活中无处不在,无处不有。如量体裁衣,量与裁的结果都不是如量体裁衣,量与裁的结果都不是精确无误的,都含有误差。精确无误的,都含有误差。p在用计算方法解题过程中可能产生的误差在用计算方法解题过程中可能产生的误差归纳起来有如下几类:归纳起来有如下几类:n1.模型误差模型误差n2.观测误差观测误差n3.截断误差截断误差n4.舍入误差舍入误差第一章误差第一章误差第一章误差第一章误差第一章误差第一章误差p 用数学方法解决一个具体的实际问题,首先要建用数学方法解决一个具体的实际问题,首先要建立数学模型,这就要对实际问题进行抽象、简化立数学模型,这就要对实际问题进行抽象、简化,因而数学模型本身总含
11、有误差,这种误差叫做,因而数学模型本身总含有误差,这种误差叫做模型误差模型误差p 数学模型是指那些利用数学语言模拟现实而建立数学模型是指那些利用数学语言模拟现实而建立起来的有关量的描述起来的有关量的描述p 数学模型的准确解与实际问题的真解不同数学模型的准确解与实际问题的真解不同实际问题的实际问题的真解真解数学模型的数学模型的真解真解为减化模型忽略次要为减化模型忽略次要因素因素定理在特定条件下建立与实定理在特定条件下建立与实际条件有别际条件有别1.模型误差模型误差p 在数学模型中通常包含各种各样的参变量,如温度在数学模型中通常包含各种各样的参变量,如温度、长度、电压等,这些参数往往是通过观测得到
12、的、长度、电压等,这些参数往往是通过观测得到的,因此也带来了误差,这种误差叫观测误差,因此也带来了误差,这种误差叫观测误差p 数学模型中的参数和原始数据,是由观测和试验得数学模型中的参数和原始数据,是由观测和试验得到的到的p 由于测量工具的精度、观测方法或客观条件的限制由于测量工具的精度、观测方法或客观条件的限制,使数据含有测量误差使数据含有测量误差,这类误差叫做这类误差叫做观测误差或数观测误差或数据误差据误差p 根据实际情况可以得到误差上下界根据实际情况可以得到误差上下界p 计算方法中需要了解观测误差计算方法中需要了解观测误差,以便选择合理的数以便选择合理的数值方法与之适应值方法与之适应2.
13、观测误差观测误差p 精确公式用近似公式代替时精确公式用近似公式代替时,所产生的误差叫所产生的误差叫截断截断误差误差 例如例如,函数函数f(x)用泰勒用泰勒(Taylor)多项式多项式 3.截断误差截断误差nnnxnfxfxffxp!)0(!2)0(!1)0()0()()(2 1)1()!1()()()()(nnnnxnfxpxfxR(介于0与x之间)近似代替,则数值方法的截断误差是近似代替,则数值方法的截断误差是p 截断误差的大小直接影响计算结果的精度和计算截断误差的大小直接影响计算结果的精度和计算 工作量,是数值计算中必须考虑的一类误差工作量,是数值计算中必须考虑的一类误差p在数值计算中只能
14、对有限位字长的数值进在数值计算中只能对有限位字长的数值进行运算行运算p需要对参数、中间结果、最终结果作有限需要对参数、中间结果、最终结果作有限位字长的处理工作,这种处理工作称作舍位字长的处理工作,这种处理工作称作舍入处理入处理p用有限位数字代替精确数,这种误差叫做用有限位数字代替精确数,这种误差叫做舍入误差舍入误差,是数值计算中必须考虑的一类,是数值计算中必须考虑的一类误差误差4.舍入误差舍入误差第一章误差第一章误差第一章误差第一章误差第一章误差第一章误差 例例如在计算时用如在计算时用3.141593.14159近似代替近似代替,产生的误差产生的误差R=R=-3.14159=0.0000026
15、-3.14159=0.0000026就是舍入误差。就是舍入误差。上述种种误差都会影响计算结果的准确上述种种误差都会影响计算结果的准确性,因此需要了解与研究误差,在数值计算性,因此需要了解与研究误差,在数值计算中将着重研究截断误差、舍入误差,并对它中将着重研究截断误差、舍入误差,并对它们的传播与积累作出分析们的传播与积累作出分析1.2 1.2 浮点数,误差、误差限浮点数,误差、误差限1 1、浮点数、浮点数任何一个浮点数可表示为任何一个浮点数可表示为其中,称其中,称 为基,如十进制数,为基,如十进制数,;二进制数,;二进制数,。J J是阶,为整数。是阶,为整数。UJLxJtJ,.021102 取值
16、正、负或零。是尾数,由t 位小数构成,若 ,则称该浮点数为规格化浮点数。若用F来表示一个系统的浮点数的集合,则),.,2,1(10tii010,0,10,.0:121UJLxxFiJt 显然,集合显然,集合F可以用数组可以用数组 来来刻画。最常见的有刻画。最常见的有(2,56,-64,64).对一个特定的机器来说,尾数的位对一个特定的机器来说,尾数的位数数t 是固定的,也称其机器精度有是固定的,也称其机器精度有t 个个 进位数字。这时称上界进位数字。这时称上界U为上溢限,为上溢限,下界下界L称为下溢限。称为下溢限。它是计算机中使用有限离散集它是计算机中使用有限离散集。),(ULt计算机中数的计
17、算特点计算机中数的计算特点:1.加法先对阶加法先对阶,后运算后运算,再舍入再舍入2.乘法先运算乘法先运算,再舍入再舍入3.不在计算机数系中的数做四舍五入处理不在计算机数系中的数做四舍五入处理例如:在四位浮点十进制数的计算机上计算1+104 解:1+104=0.1000 101+0.1000 105 =0.00001 105+0.1000 105 (对阶计算)=0.10001 105 =0.1000 105=1042.2.误差、误差限、有效数字误差、误差限、有效数字误差:准确值(精确数或真值)近似数则此近似数 和 准确值的差称为误差,用 来表示:把误差的负数 叫做近似值 的“修正值”。误差可正可
18、负,当误差为正时,近似值偏大,叫做“强近似”,当误差为负时,近似值偏小,叫做“弱近似”。:x:*x*exxe*)(*exx*e*x*xx 由于精确值一般是未知的由于精确值一般是未知的,因而因而 不能求不能求出来出来,但可以根据测量误差或计算情况设法但可以根据测量误差或计算情况设法估计出它的取值范围,即误差绝对值的一估计出它的取值范围,即误差绝对值的一个上界或称误差限。个上界或称误差限。定义定义 如果如果称称 为近似值为近似值 的的“误差限误差限”。*e*|xxe*x2.2.误差、误差限、有效数字误差、误差限、有效数字 实际应用中经常使用这个量来衡量误差实际应用中经常使用这个量来衡量误差限限,这
19、就是说这就是说,如果近似数如果近似数 的误差限为的误差限为 ,则则 表明准确值表明准确值 x 必落在必落在 上上,常采用下面的写法常采用下面的写法*x*xxx*,xx*xx来表示近似值的精度或准确值来表示近似值的精度或准确值x所在的范围。所在的范围。2.2.误差、误差限、有效数字误差、误差限、有效数字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.0
20、00008=0.810-5例例3 3 而近似值x*=3.1415,它的绝对误差是 -0.0000926,有 x-x*=0.0000926 0.0001=0.110-3可见,可见,绝对误差限绝对误差限*不是唯一的,但不是唯一的,但*越小越好越小越好1.3.1.3.相对误差和相对误差限相对误差和相对误差限 只用绝对误差还不能说明数的近似程度只用绝对误差还不能说明数的近似程度,例如甲打字每例如甲打字每100100个错一个个错一个,乙打字每乙打字每10001000个个错一个错一个,他们的误差都是错一个他们的误差都是错一个,但显然乙要但显然乙要准确些准确些,这就启发我们除了要看绝对误差外这就启发我们除了
21、要看绝对误差外,还必须顾及量的本身。还必须顾及量的本身。定义定义 绝对误差与精确值绝对误差与精确值x的比值记的比值记 为近似数为近似数 的相对误差的相对误差xxxxeer*x1.3.11.3.1相对误差和相对误差限相对误差和相对误差限 相对误差越小相对误差越小,精度就越高精度就越高,实际计算时实际计算时,x通常是不知道的通常是不知道的,因此可用下列公式计算相因此可用下列公式计算相对误差对误差定义定义 设存在一个正数设存在一个正数 ,使,使)(*xr)(*xxxxxxeerr则称则称 为近似值为近似值 的相对误差限。的相对误差限。简记为简记为 )(*xr*x)(*xr*r*xxxxeer1.3.
22、2 1.3.2 相对误差和相对误差限相对误差和相对误差限例例4.4.甲打字每甲打字每100100个错一个,乙打字每个错一个,乙打字每10001000个个 错一个,求其相对误差错一个,求其相对误差解:解:根椐定义根椐定义:甲打字时的相对误差甲打字时的相对误差 乙打字时的相对误差乙打字时的相对误差 0011001 *re001010001.*re1.3.31.3.3 有效数字有效数字定义定义 设设x的近似值的近似值 其中其中 是是0 0到到9 9之间的任一个数之间的任一个数,但但 n是正整数是正整数,p是整数是整数,若若 ni,321 则称则称 为为x的具有的具有n位有效数字的近似值,位有效数字的
23、近似值,准确到准确到第第n位,位,是是 的有效数字。的有效数字。*x*x*xpnx10021 .*npxx1021*i 01n,.,211.3.31.3.3 有效数字有效数字例例5.3.1425.3.142作为作为的近似值时有几位有效数字的近似值时有几位有效数字解:解:3.141592 3.141592=0.3141592=0.3141592 3.142=0.3142 3.142=0.3142 p=1 =1|-3.142|=|0.3141592-3.142|=|0.3141592 -0.3142 -0.3142|0.000041 0.000041 0.0005=0.0005=p n=1=1n=
24、-3 =-3 所以所以 n=4=4,具有具有4 4位有效数字位有效数字11011011011011021310例例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.005=1/2 0.005=1/2 10 10-2-2 p-n=1-=1-n=-2 =-2 所以所以n=3=3具具有有3 3位位有效数字有效数字推论推论 如果如果近似数近似数x*误差限是某一位的半个单位误差限是某一位的半个单位,由该位到
25、由该位到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 p-n=1-=1-n=-4 =-4 所以所以 n=5=5x*=3.14163.1416有有5 5位有效数
26、字位有效数字例例7 若若 是是 的具有六位的具有六位有效数字的近似值,求其误差限。有效数字的近似值,求其误差限。解解 由于由于 具有六位有效数字,即具有六位有效数字,即 近似代替近似代替 时,准确到末位,于时,准确到末位,于是误差限为是误差限为64.3587*xx*x*xx264*10211021 xx若若 是是 的具有五位有的具有五位有效数字的近似值,求其误差限。效数字的近似值,求其误差限。解解 由于由于 具有五位有效数字,具有五位有效数字,即即 近似代替近似代替 时,准确到末位时,准确到末位,于是误差限为,于是误差限为0023156.0*xx*x*xx752*10211021 xx关于有效
27、数字说明关于有效数字说明 用用四舍五入取准确值的前四舍五入取准确值的前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-
28、12345 0.5=0.5=1/2 1/2 10 100 0 x-x2 2*=x-12.345-12.3450.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
29、若若近似数近似数 具有具有 n 位有效数字,则其相对误差限位有效数字,则其相对误差限pnx10021 .*)1(1*1021nrx证明 由定义知 是具有n位有效数字的近似值,因此*xnpxx1021*相对误差限相对误差限而而 所以所以*1021xxxxnpr11*10px)1(111*1021101021npnpr 一般应用中可以取一般应用中可以取 r r*=1/2=1/2 1010-(n-1)-(n-1),n越大越大,r r*越小越小,有效数字越多,相对误差就越小有效数字越多,相对误差就越小例例7 7 取取3.143.14作为作为 的四舍五入的近似值时,求其的四舍五入的近似值时,求其 相对误
30、差限相对误差限解:解:3.14=0.314 3.14=0.314 10101 1 =3 =3 p=1=1 四舍五入的近似值四舍五入的近似值,其各位都是有效数字其各位都是有效数字 n=3=3 r r*=1/2=1/2 1010-(n-1)-(n-1)=1/2=1/2*3 3 1010-2-2=17%=17%1.3.4 1.3.4 有效数字与相对误差有效数字与相对误差1 1 1 例例8 8 已知近似数已知近似数x*有两位有效数字,试求其相有两位有效数字,试求其相 对误差限对误差限解:已知解:已知 n=2=2 代入公式代入公式 r r*=1/2=1/2x1 1 1010-(n-1)-(n-1)得得
31、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/2*1 1 1010-1-1=5%=5%x1 1=9 =9 r r*=1/2x=1/2x1 1 1010-1-1=1/2=1/2*9 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 有效数字与相对误差有
32、效数字与相对误差定理定理1.2 1.2 若若近似数近似数 相对误差限相对误差限 则该近似数具有则该近似数具有n n位有效数字位有效数字证证:nppnxxxxxx 1021101101211111)()()(*由有效数字定义可知由有效数字定义可知,x x*具有具有n n位有效数字。证毕位有效数字。证毕)1(1*10)1(21nrpnx10021 .*pnx10021 .*11*10)1(px例例9 9 已知近似数已知近似数x x*的相对误差限为的相对误差限为0.3%0.3%,问,问x x*有几位有效数字?有几位有效数字?解:由解:由)(*)(1110121 nr )()(111012110003
33、 n 得得当当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-
34、(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位有效数字位有效数字 注意注意:已知有效数字已知有效数字,求相对误差限用公式求相对误差限用公式 已知相对误差限已知相对误差限,求具有几位有效数字公式求具有几位有效数字公式)1(1*10)1(21nr)1(1*1021nrx1.4 1.4 误差的传播误差的传播 计算机的数值运算主要是加、减、乘、除四计算机的数值运算主要是加、减、乘、除四则运算,带有误
35、差的数在多次运算过程中会进则运算,带有误差的数在多次运算过程中会进行传播。使计算结果产生误差。行传播。使计算结果产生误差。误差的变化可以用微分简单描述。注意到准误差的变化可以用微分简单描述。注意到准确值确值x x与其近似值通常很接近,其差可认为是较与其近似值通常很接近,其差可认为是较小的增量,即可以把差看作微分,由此可得误小的增量,即可以把差看作微分,由此可得误差的微分近似关系式。差的微分近似关系式。1.基本算术运算结果的误差限 设 是 的近似值,是 的近似值,用 来表示 的近似值,则其误差为:*xx*yy*yx yx)()()()(*yyxxyxyx)()()()(*yyxxyxyx由由得出
36、误差限之和是和或差的误差限。得出误差限之和是和或差的误差限。将将 的误差的误差 看作是看作是 的微分的微分则则 yyxxyxyx*)()(xxdx*xxxe*xdydxyxd)(xdyydxxyd)(0,/)()/(2yyydxxdyyxd例例11 设设 ,其中其中每个数据的绝对误差限为每个数据的绝对误差限为0.005,求求a的绝对误差限。的绝对误差限。81.965.321.1a81.9)65.321.1(ddda03.00293.0005.0005.065.3005.021.1dap即即x的微分表示的微分表示x的绝对误差,的绝对误差,dlnx的微分表的微分表示示x的相对误差,利用这两个关系式
37、及微分的相对误差,利用这两个关系式及微分运算可以得到一系列有关四则运算的误差运算可以得到一系列有关四则运算的误差结果。结果。xdxdxxxxxexedxxxxerln)()(*1.4.1.4.误差的传播误差的传播 由由 可得两数之积可得两数之积的相对误差等于两数的相对误差之和;的相对误差等于两数的相对误差之和;由由 可得两数商的相可得两数商的相对误差可看作是被除数与除数的相对误差之差对误差可看作是被除数与除数的相对误差之差。ydxdyxdlnln)ln(ydxdyxdlnlnln 若把若把 与与 看做看做 与与 的的相对误差限,即相对误差限,即(不妨认为分母皆正不妨认为分母皆正)xdrydr*
38、x*yxdxdxxdrln/ydydyydrln/同号yxydxdyxdrrr,),max()(同号yxyxydyxdxyxdrrr,/)()(ydxdyxdrrr)(0,)/(yydxdyxdrrr则有例例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的的绝对误差限和相对误差限绝对误差限和相对误差限解:解:mlmddlldslds11080 *,)()()(,%31.0880027)()()(*
39、dlssssr其中其中 (d*)=0.1m,(L*)=0.2m绝对误差限绝对误差限 (s*)(800.2+110 0.1)m2=27m2相对误差限相对误差限2.函数求值的误差估计函数求值的误差估计在计算函数值在计算函数值 f(x)时时,若自变量若自变量 x 不精不精确确,则则f(x)含有误差含有误差.若若 ,则则近似近似f(x)时的误差界时的误差界d f(x)可用可用Taylor公式估计公式估计.假定假定f(x)足够光滑足够光滑,则有则有xx*)(*xf2*)(!2/)()()()()(xxfxxxfxfxfxf 若若 与与 相比不太大相比不太大,忽略忽略高阶项得高阶项得)(xf )(xf d
40、xxfxdfxf)()()(*设设 ,则,则 的相对误差是的相对误差是例例13 设设 ,则,则 ,因此,因此 的相对误差是的相对误差是 的相对误差的的相对误差的n 倍倍 的相对误差是的相对误差是 的相对误差之半的相对误差之半。)(xfy)(*xfy*ydxxfxfyd)()(lnnxy xnylnlnxndydlnlnnxxxx例例12 12 正方形的边长约为正方形的边长约为100100cm,cm,怎样测量才能使其怎样测量才能使其 面积误差不超过面积误差不超过1 1cmcm2 2?解:解:设正方形边长为设正方形边长为x cm,cm,测量值为测量值为x*cm,cm,面积面积 y=f(x)=)=x
41、2 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 减少运算误差原则减少运算误差原则 误差是用来衡量数值方法
42、好与坏的重要标志误差是用来衡量数值方法好与坏的重要标志 为此对每一个算法都要进行误差分析为此对每一个算法都要进行误差分析(1)(1)要避免两个相近数相减。要避免两个相近数相减。两个相近的数相减,会严重损失有效数字两个相近的数相减,会严重损失有效数字 例如例如x=1958.75x=1958.75,y=1958.32y=1958.32都具有五位都具有五位 有效数字,但有效数字,但x-y=0.43x-y=0.43只有两位有效数字只有两位有效数字 通常采用的方法是改变计算公式通常采用的方法是改变计算公式,1.5 1.5 减少运算误差原则减少运算误差原则当当x很大时可作相应的变换很大时可作相应的变换 x
43、xxx111则用右端来代替左端。则用右端来代替左端。1.5 1.5 减少运算误差若干原则减少运算误差若干原则当当x接近接近0 0时时 xxxxsin1sinsincos1一般情况,当一般情况,当f(x)f(xf(x)f(x*)时,可用泰勒展开时,可用泰勒展开 2*)(!2)()()()(xxxfxxxfxfxf取右端的有限项近似左端。取右端的有限项近似左端。(2 2)防止大数)防止大数“吃掉吃掉”小数小数例例 求二次方程求二次方程x x2 2-10-105 5x+1=0 x+1=0的根的根 解:按二次方程求根公式解:按二次方程求根公式 x x1 1=(10=(105 5+(10+(101010
44、-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)绝对值太
45、小的数不宜做除数)绝对值太小的数不宜做除数当分母为两个相近数相减时当分母为两个相近数相减时,会丧失有效数字会丧失有效数字)(100001.0)(1455.01456.0)(4分子分子分子这里分子的误差被扩大这里分子的误差被扩大104104倍倍,再如再如若将分母变为若将分母变为0.0011,0.0011,即分母只有即分母只有0.00010.0001的变化的变化时时,计算结果却有了很大变化计算结果却有了很大变化 1.5 1.5 减少运算误差若干原则减少运算误差若干原则5.3141001.01415.39.28550011.01415.3(4 4)简化计算步骤,减少运算次数)简化计算步骤,减少运算次
46、数 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)=)=(
47、an nxn-1n-1 an-1n-1xn-2 n-2 a1 1)x a0 0 =(=(an nxn-2n-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 减少运算误差若干原则减少运算误差若干原则nknkkabnkaxbb01),2,1(于是于是 ,这种多项式求值的算法称为秦九这种多项式求值的算法称为秦九韶算法韶算法,只做只做n次乘法和次乘法和n次加法次加法,程序实现简单程序实现简单 nbxP)(5)(5)要选用数值稳定的计算公式要选用数值稳定的计算公式
48、对于一个数学问题的求解往往有多种数值方法对于一个数学问题的求解往往有多种数值方法在选择数值方法时,要注意所用的数值方法不在选择数值方法时,要注意所用的数值方法不应将计算过程中难以避免的误差放大的较快,应将计算过程中难以避免的误差放大的较快,造成计算结果完全失真。造成计算结果完全失真。例例13 13 计算积分计算积分 并估计误差并估计误差解解 容易得到递推公式容易得到递推公式 )10,2,1,0(1010ndxxxInn1.1ln)10ln(10110100 xdxxI 1.1ln)10ln(10110100 xdxxI1011011011101010101010101010dxxxdxxxxd
49、xxxxxdxxxInnnnnnnn11011011011010nnnIndxxxdxx)10,2,1(n即即 为为 nI1101nnInI)10,2,1(n则准确的理论递推式则准确的理论递推式 实际运算的递推式实际运算的递推式 两式相减有两式相减有 01101II*0*1101II)(10)(10*0*00*11IeIIII)(10)1()()10()(10)(*00*222*11*IIIIIIIIIennnnnnnnn这就是说这就是说,若若 与与 的误差为的误差为 =-,即即 ,则误差的递推规律为,则误差的递推规律为 0I*0I)(*0Ie0I*0I)(*0*00IeII于是于是)(10)
50、(10)(10)(*010*82*9*10IeIeIeIe计算计算 时的误差被扩大了时的误差被扩大了 倍倍,显然算法是显然算法是数值不稳定的。数值不稳定的。如果将递推公式如果将递推公式 变换一种形式变换一种形式 *10I10101101nnInI101011nnInI准确的理论递推式准确的理论递推式实际运算的递推式实际运算的递推式从而有从而有 101011nnInI10101*1nnInI)(101*11nnnnIIII)(10)1()(101)(101*222*11*00nnnnIIIIIIII即即)(101)(101)(101)(*1010*22*1*0IeIeIeIe于是有于是有则这个算