1、第一章:误差第一章:误差主要内容主要内容误差的误差的来源与分类来源与分类误差与有效数字误差与有效数字在近似计算中应注意的几个问题在近似计算中应注意的几个问题1.来源与分类来源与分类 (Source&Classification)模型误差模型误差参数误差参数误差(观测误差观测误差)方法误差方法误差(截断误差截断误差)舍入误差舍入误差 1.1 模型误差模型误差 (Modeling Error)用计算机解决实际问题时,首先要建立用计算机解决实际问题时,首先要建立数学数学模型模型,各种实际问题是十分复杂的,而数学,各种实际问题是十分复杂的,而数学模型是对被描述的实际问题进行模型是对被描述的实际问题进行
2、抽象、简化抽象、简化而得到的,往往而得到的,往往忽略忽略了一些了一些次要因素次要因素,因而,因而是是近似近似的,我们把数学模型与实际问题之间的,我们把数学模型与实际问题之间出现的这种误差称为出现的这种误差称为模型误差模型误差。如自由落体。如自由落体公式公式忽略了空气阻力。忽略了空气阻力。221gts 数学模型中的物理参数的具体数值,一般通过数学模型中的物理参数的具体数值,一般通过实验测定或观测实验测定或观测得到的,因此与真值之间也有得到的,因此与真值之间也有误差,这种误差称为误差,这种误差称为参数误差参数误差或或观测误差观测误差。例如前例中的重力加速度例如前例中的重力加速度g=9.8g=9.8
3、米米/秒,这秒,这个数值是由多次实验而得到的结果实际的值个数值是由多次实验而得到的结果实际的值有一定的误差,这时有一定的误差,这时g-9.8g-9.8就是参数误差。就是参数误差。1.2 参数误差参数误差(观测误差,观测误差,Measurement Error)1.3 方法误差方法误差 (截断误差截断误差 Truncation Error)在数学模型(包括参数值)确定以后,就常要考在数学模型(包括参数值)确定以后,就常要考虑选用某种数值方法具体进行计算,许多数值方虑选用某种数值方法具体进行计算,许多数值方法都是近似方法,故求出的结果与准确值之间是法都是近似方法,故求出的结果与准确值之间是有误差的
4、,该误差称为截断误差或方法误差。例有误差的,该误差称为截断误差或方法误差。例如,函数如,函数f(x)用用Taylor多项式多项式近似代替,则数值方法的截断误差为:近似代替,则数值方法的截断误差为:nnnxnfxfxffxpxf!)0(!2)0(!1)0()0()()()(2,)!1()()()()1()1(baRxnfxpxfRnnnnn对于参与计算的数据用计算机做数值计算时,所对于参与计算的数据用计算机做数值计算时,所计算数据的位数可能很多甚至可能有无穷多位,计算数据的位数可能很多甚至可能有无穷多位,而计算机的字长而计算机的字长有限的有限的,因此只能对有限位进行,因此只能对有限位进行计算,原
5、始数据和计算结果在计算机上表示均用计算,原始数据和计算结果在计算机上表示均用4 4舍舍5 5入入或或截去截去的方法进行处理,这种误差称为的方法进行处理,这种误差称为舍舍入误差入误差。例如用近似代替。例如用近似代替,产生的误差:,产生的误差:即即4 4舍舍5 5入产生的误差就是舍入误差。入产生的误差就是舍入误差。1.4 舍入误差舍入误差(Rounding Error)0000026.014159.3R1.5 各种误差产生的时机各种误差产生的时机实际问题数学模型数学方法求解过程计算结果模型误差模型误差参数误差参数误差截断误差截断误差舍入误差舍入误差舍入误差会产生积累,其舍入误差会产生积累,其他三种
6、误差没有积累。他三种误差没有积累。2.误差与有效数字误差与有效数字(Error and Significant Digits)如果如果x*为为x的近似值的近似值,称称e*=x-x*为为绝对误差绝对误差。绝对误差往往是未知的,而只知道它的一个上绝对误差往往是未知的,而只知道它的一个上限,此限,此上限上限|e*|=|x-x*|记为记为 *,称为称为绝对误差绝对误差限限(accuracy)。工程上常记为工程上常记为x=x*,例如例如006.0743.0102dxexu 绝对误差绝对误差 (absolute error)u 相对误差相对误差 (relative error)xxxxeexxxxeerr
7、*或*r*|rre称为近似值x*的相对误差;的绝对值的上界 称为相对误差限,即*xr*reu 绝对误差限与相对误差限的关系有效数字有效数字(Significant Digits)在实际计算中,经常按四舍五入原则取近似值.例如:它们的误差都不会超过末位数字的半个单位,即000003.0,00674.0.0067379.00001.00.301,0.30102.lg205.0,1.14142.14200*35-*2*1e3255-3033211021102100674.0102110210.301lg2102110211.14200e定义定义1.2.5设设x为准确值为准确值,x*为为x的近似值,记
8、的近似值,记x*=0.a1a2an10m(其中其中a10),),若若|x-x*|0.510m-n (即即an的截取按四舍五入规则的截取按四舍五入规则),则称,则称x*有有n位有效数字,位有效数字,精确到精确到10m-n。例如例如=3.1415926535897932,如果取,如果取*=3.1415,问,问*有几位有效数字?有几位有效数字?证明:证明:*=0.31415=0.3141510101 1|-|-*|=0.0000926|=0.00009260.50.51010-3-3=0.5=0.510101-41-4 所以所以有有4 4位有效数字位有效数字,精确到小数点后第精确到小数点后第3 3位
9、。位。可以证明可以证明*=3.14159有有6位有效数字。位有效数字。有效数字愈多愈精确有效数字愈多愈精确 当两个相近的数相减时,会大大的当两个相近的数相减时,会大大的损失有效数字的位数,使得相对误损失有效数字的位数,使得相对误差会变得很大。差会变得很大。3 在近似计算中应注意的几个问题在近似计算中应注意的几个问题3.1 做减法要避免两个相近的数相减做减法要避免两个相近的数相减解解:x-y=1.5846-1.5839=0.0007 x,y 的有效数字是的有效数字是5位,而位,而x-y的有效的有效数字却只有数字却只有1位,这样使得有效数字位,这样使得有效数字的位数大大的减少了。的位数大大的减少了
10、。例例1:已知已知x=1.5846,y=1.5839,求求x-y例例2.已知已知x=18.496,y=18.493取取4位有效数字位有效数字计算计算 x-y 的近似值,并估计其相对误差的近似值,并估计其相对误差.而而x-y=18.496-18.493=0.003其相对误差为其相对误差为解:取解:取x*=18.50,y*=18.49进行计算得进行计算得x*-y*=18.50-18.49=0.01可以看到相对误差比较大可以看到相对误差比较大.%7001.001.0003.0)()(|*yxyxyxer 例如,当例如,当 x 很大时很大时 和和 很接近,很接近,直接计算直接计算就会大大的损失有效数就
11、会大大的损失有效数字,此时应把公式变形,分子、分母同乘字,此时应把公式变形,分子、分母同乘一个共轭根式,即一个共轭根式,即 在编程序时,可采取以下措施:在编程序时,可采取以下措施:1).对参加运算的量多保留几位有效数字;对参加运算的量多保留几位有效数字;2).变换计算公式,变换计算公式,这样求出的结果就比较准确。这样求出的结果就比较准确。xxxx1111xxxx1又例如,当又例如,当x1 与与x2 很接近时,很接近时,ln x1-ln x2就可能损失有效数字过多,一般变形为就可能损失有效数字过多,一般变形为:这样求出的结果就比较准确。这样求出的结果就比较准确。2121lnlnlnxxxx分母的
12、值就变的很小,一般应变形为分母的值就变的很小,一般应变形为:3.2 做除法运算时作分母的量不要太小做除法运算时作分母的量不要太小例如,计算例如,计算时,时,会使会使 的绝对误的绝对误差变的很大,差变的很大,一般遇到这种情况把公式一般遇到这种情况把公式变形变形,例如例如 当当|x|非常小时,非常小时,使用此公式就比较可靠。使用此公式就比较可靠。*yx1*yxxsincos1xxxxxxxxxxxcos1sin)cos1(sinsin)cos1(sin)cos1)(cos1(sincos12 若绝对值相差很大的两个数做加,减若绝对值相差很大的两个数做加,减法运算时绝对值较小的数往往被绝对值较法运算
13、时绝对值较小的数往往被绝对值较大的数大的数“吃掉吃掉”,绝对值较小的值不能发,绝对值较小的值不能发挥作用,影响计算结果的准确性。挥作用,影响计算结果的准确性。3.3 防止大数防止大数“吃掉吃掉”小数小数例例 3 求方程求方程x2-(109+1)x+109=0的根的根(保保留留8位位10进制数进制数)。解:解:很容易可以求出此方程的根为很容易可以求出此方程的根为x1=109,x2=1如果用二次方程的求根公式如果用二次方程的求根公式来编程时就可能得不到正确的结果。来编程时就可能得不到正确的结果。aacbbxx24,221 如果我们使用的计算机只能保留小数点如果我们使用的计算机只能保留小数点后后8
14、8位,因为在运算前计算机要先把数位,因为在运算前计算机要先把数“规格规格化化”,下面我们看,下面我们看 第一步:把第一步:把两个数对阶两个数对阶“规格化规格化”的运算,把两个数按的运算,把两个数按“对阶对阶”规格化后,参规格化后,参加运算的量表示为加运算的量表示为101091010000000000.011001000000000.010)110()(9b第二步:把两个数对阶相加第二步:把两个数对阶相加两数相加:按4舍5入保留8位9101010109101010000000.0101000000001.0100000000001.0101000000000.0110b用求根公式可得方程的根:用
15、求根公式可得方程的根:第三步:用求根公式求方程的解第三步:用求根公式求方程的解0121010241012101024992299921aacbbxaacbbx所以所以由此可看出结果的误差太大,原因就是在作加减法由此可看出结果的误差太大,原因就是在作加减法运算时要运算时要“对阶对阶”,因而小数,因而小数1 1被大数被大数109吃掉了。吃掉了。91891892921010104101104)110(4 acb采取的措施采取的措施 从上面的计算可以看出从上面的计算可以看出x1是可靠的,而是可靠的,而x2是不可靠的,我们不能使用求根公式计算是不可靠的,我们不能使用求根公式计算x2,我们利用两根间的关系
16、求我们利用两根间的关系求x2,即,即 110110991221axcxacxx可以看出,用此方法是可靠的。可以看出,用此方法是可靠的。在编程时,若在编程时,若b0先计算先计算x2,上述方法计算,上述方法计算x1。3.4 要注意计算公式的简化,减少运算次数要注意计算公式的简化,减少运算次数 简化计算公式很重要,将直接影响计算的速简化计算公式很重要,将直接影响计算的速度和误差的积累,有时可以使一个无法实现度和误差的积累,有时可以使一个无法实现的计算能够实现。的计算能够实现。例例计算多项式:计算多项式:nnxaxaxaaxp2210)(的值。的值。若直接用上面公式计算,当计算若直接用上面公式计算,当
17、计算 项时,项时,需要进行需要进行k次乘法,因而求出这个多项式的值次乘法,因而求出这个多项式的值时需要进行时需要进行 次乘法和次乘法和n次加法,当次加法,当n很很大且要反复计算此多项式的值时,工作量将大且要反复计算此多项式的值时,工作量将会很大会很大.kkxa)1(21nn但我们若将公式改写为:但我们若将公式改写为:改进的措施改进的措施xxxxaaaaaxpnnn)()(1210则只需要则只需要n次乘法和次乘法和n次加法,即可得到计算结果,可次加法,即可得到计算结果,可以看出,将公式改写后可大大减少运算次数以看出,将公式改写后可大大减少运算次数。例如例如:1)5)2(152233xxxxxxp
18、C函数:函数:double Polynomial(double*a,int n,double x)double p=an;for(int k=n-1;k=0;k-)p=p*x+ak;return p;在数值计算时,会产生那四种误差,这四种在数值计算时,会产生那四种误差,这四种误差的来源是什么;误差的来源是什么;绝对误差和绝对误差限的定义及计算公式;绝对误差和绝对误差限的定义及计算公式;相对误差和相对误差限的定义及计算公式;相对误差和相对误差限的定义及计算公式;有效数字的定义,有效数字和绝对误差的关有效数字的定义,有效数字和绝对误差的关系?有效数字和相对误差的关系?系?有效数字和相对误差的关系?保留保留3 3位有效数字与保留小数点以后位有效数字与保留小数点以后3 3位位数字数字的区别。的区别。误差知识部分的自学提纲误差知识部分的自学提纲作业作业习题一习题一1.1,1.2,1.4,1.5
侵权处理QQ:3464097650--上传资料QQ:3464097650
【声明】本站为“文档C2C交易模式”,即用户上传的文档直接卖给(下载)用户,本站只是网络空间服务平台,本站所有原创文档下载所得归上传人所有,如您发现上传作品侵犯了您的版权,请立刻联系我们并提供证据,我们将在3个工作日内予以改正。