计算方法教案 下载本文

内容发布更新时间 : 2024/5/18 10:02:12星期一 下面是文章的全部内容请认真阅读。

x1?109, x2?1.

三.要注意计算步骤的简化,减少运算次数

计算公式决定计算步骤,计算步骤直接影响计算的速度和误差的积累。下面以计算多项式的值为例来说明简化计算公式的重要性。

例: 计算多项式 P(x)?anxn?an?1xn?1???a0 的值。

分析:若直接计算,计算akxk这一项需进行k次乘法运算,共需

1n(n?1)次乘法运算和n次加法运算,若将公式改写成嵌套形式: 2P(x)?(?((anx?an?1)x?an?2)x??a1)x?a0

则只要计算n次乘法运算和n次加法运算。

四.要避免做被除数的绝对值远远大于除数绝对值的除法

1.直观认识:用绝对值很小的数去除绝对值很大的数,得到的结果更大,可能上溢,也会增大原有误差,或者使之后的运算有更大的舍入误差,将产生错误结果。

2.算式分析: |dr(1)|?|dln(1)|?xx2xx2xx2e(x1)e(x2). ?|x1||x2|可以看出,如果|x2|很小,则|dr(1)|将很大.

?0.0001x1?x2?13.例子说明:求解二元一次方程组?x1?x2?2?(1) (2)分析:(2)?(1)?1,得 0.00019998 9999 ?9999x2??9998?x2?带入方程组可解得x1?10000. 9999而在尾数是3位十进制浮点数字系统中运算,结果将是:

?10000x2??10000,

进一步解得:x2?1,。 x1?0(不满足(2)式)

出现错误的原因:用0.0001作除数增大了参与运算的数,也就增大了舍入误差的量级,从而淹没了真解。

令(1)?(2)?0.0001,仍在上述浮点系统中运算,得x2?1(这时舍入误差10?4大小),进而求得x1?1,这很理想。

五.选用数值稳定的计算公式

1.例子说明:计算 In?e?1?0xnexdx,n?1,2,….

分析:由分部积分可以得到In的递推公式:

x?1nn?1x?1In??xnex?1dx??xndex?1?xnex?1|1?edx?1?nx0??edx

000011111?1?nIn?1,n?1,2,…. I0?e?1?edx?1?e01x?1*, ?0.6321?I0(注:这里取k=7,用4位小数计算,由Taylor公式:

e?1?1?(?1)?(?1)2/2!???(?1)k/(k!)?0.3679 )

*用递推公式可以逐个算出近似值In,但当计算到I8*时有:I8*??0.728,

但从In?e?1?10*xnexdx知In都应该为正,I8?0显然错误。

**原因:主要是初值I0有误差:E0?I0?I0,使以后的计算各步都有*误差En?In?In,而后一步的误差与前一步的误差有关系式:

En??nEn?1?(?1)n(n!)E0,n?1,2,?,

**这就是说初值I0有误差E0,In的误差En就增大到n!倍。误差限

?*(E0)??10?4??*(E8)?(8!)?*(E8)?2.

12 上面的计算中,误差是积累增加的,计算过程中舍入误差不断增长的计算公式称为数值不稳定的。

改进方法:选用舍入误差不增长的计算公式,也就是数值稳定的计算公式,直接从积分可以退出

e?11?In?, n?1n?1(证: In?1?nIn?(n?1)In?1?In??11n1; n?1e?1In?e?xdx? )

0n?1取n?9,有

e?11 ?I9?

1010粗略估计可取

11e?1 I9?(?)?0.0684.

21010*又知In?1?(1?In),n?9,8,?,1. 可以算得I0与I0的误差不超过10?4。因

1n为|E0|?1*|En|,也就是说计算过程中误差是逐渐缩小的,尽管I9的误n!*差E9较大,用这种方法计算所得到的I0的近似效果却很好。

总 结

本章给出了误差、相对误差和有效数字的概念,讨论了误差的来源以及计算中误差传播的情况,并依据经验提出了几种减少误差避免错误结果应该采取的措施,指出选用数值稳定的算法的重要性。

部分习题解答

4.若1/4用0.25来表示,问有多少位有效数字?

解答:无穷多位。因为1/4=0.25000000??.

5.若a=1.1062,b=0.947是经过舍入后得到的近似值,问:a+b,ab各有几位有效

数字?

11 解:a?0.11062?101有5位有效数字,其误差: da??101?5??10?4;

221 b?0.974?100有3位有效数字,其误差: db??10?3.

211 (a?b)的误差:d(a?b)?da?db??10?2(??10m?n),说明a+b可以

22精确到小数点后两位,因此可以断定a+b有3位有效数字。

1?10 另外,a?b?2.0532?0.20532,知m?1,m?n??2?n?3,也可以

直接算出a+b有效数字位数n=3.

111 同理,dab?adb?bda?1.1062??10?3?0.947??10?4??1.2?10?3

22211??10?2??10m?n 22 又 ab?0.104757?101,知m=1,m-n=-2,所以n=3. 6.设y1?0.9863,求1/y1和1/y2的计y2?0.0062是经过舍入后得到的近似值。

算值与真值的相对误差限及y1y2和真值的相对误差限。 解:dr(111)?|dln()|?|?dlny1|?dry1,即,与y1有相同的相对误差限。y1y1y11)?dry2.又y1?0.9863有四位有效数字,即n=4,所以 y2111)?dry1??10?(n?1)??10?(4?1)?0.56?10?4; y12?12?9同理有:dr( dr( 而y2?0.0062?0.62?10?2有两位有效数字,即n=2,有 dr(111)?dry2??10?(n?1)??10?(2?1)?0.83?10?2; y22?12?6 dr(y1y2)?dry1?dry2?0.56?10?4?0.83?10?2?0.84?10?2。

7.正方形的边长约为100cm,应该怎样测量,才能使其面积的误差不超过1cm2。 解:设边长x,面积s?x2,依题意满足:|ds|?|2xdx|?1,知x?100cm,所以|dx|?|ds|1??0.005cm,即,只要边长的测量误差不超过0.005cm,2x2?100正方形的面积测量误差就不会超过1cm2.

8.用观测恒星的方法求得某地维度是45?0'2\.试问:计算sin?将有多大误差? 解:思路如下:将??45?0'2\化为弧度数,再用dsin??(sin?)'d?计算即可。

12gt,g精确而测量t有?0.1s的误差,证明:t增加2时,距离的绝对误差增加而相对误差减小。

dsgtdt2 解: ds?gtdt, drs???dt, 所以,当|dt|固定时,|ds|随t的

s1gt2t29.真空中自由落体运动s?增加而增大,|drs|随t的增加而减小。

10.设x?0,x的相对误差为?,求lnx的绝对误差。 解:d(lnx)?drx??.

11.设x的相对误差为?%,求xn的相对误差。

解:由题设知:|drx|??%,根据一元函数误差传播公式:

f'(x)?xdrf(x)?()drx,

f(x) 可得

xdrx|?|ndrx|?n?%。 nx12.计算球的体积,为了使相对误差限为1%,问度量半径R时允许的相对误差限如何?

|dr(xn)|?|nxn?1f'(R)4?R243RdrR|?|RdrR|?3drR?1%,从解:V?f(R)??R, drV?|43f(R)?R33而可解得drR?

1. 300