习题一解答1.取3.14,3.15,227,355113作为π的近似值,求各自的绝对误差,相对误差和有效数字的位数。
分析:求绝对误差的方法是按定义直接计算。
求相对误差的一般方法是先求出绝对误差再按定义式计算。
注意,不应先求相对误差再求绝对误差。
有效数字位数可以根据定义来求,即先由绝对误差确定近似数的绝对误差不超过那一位的半个单位,再确定有效数的末位是哪一位,进一步确定有效数字和有效数位。
有了定理2后,可以根据定理2更规范地解答。
根据定理2,首先要将数值转化为科学记数形式,然后解答。
解:(1)绝对误差:e(x)=π-3.14=3.14159265…-3.14=0.00159…≈0.0016。
相对误差:3()0.0016()0.51103.14r e x e x x -==≈⨯有效数字:因为π=3.14159265…=0.314159265…×10,3.14=0.314×10,m=1。
而π-3.14=3.14159265…-3.14=0.00159…所以│π-3.14│=0.00159…≤0.005=0.5×10-2=21311101022--⨯=⨯所以,3.14作为π的近似值有3个有效数字。
(2)绝对误差:e(x)=π-3.15=3.14159265…-3.14=-0.008407…≈-0.0085。
相对误差:2()0.0085()0.27103.15r e x e x x --==≈-⨯有效数字:因为π=3.14159265…=0.314159265…×10,3.15=0.315×10,m=1。
而π-3.15=3.14159265…-3.15=-0.008407…所以│π-3.15│=0.008407……≤0.05=0.5×10-1=11211101022--⨯=⨯所以,3.15作为π的近似值有2个有效数字。
(3)绝对误差:22() 3.14159265 3.1428571430.0012644930.00137e x π=-=-=-≈- 相对误差:3()0.0013()0.4110227r e x e x x--==≈-⨯有效数字:因为π=3.14159265…=0.314159265…×10,223.1428571430.3142857143107==⨯,m=1。
而223.14159265 3.1428571430.0012644937π-=-=-所以221322 3.14159265 3.1428571430.0012644930.0057110.510101022π----=-=≤=⨯=⨯= 所以,227作为π的近似值有3个有效数字。
(4)绝对误差:355() 3.14159265 3.141592920.00000027050.000000271113e x π=-=-=-≈- 相对误差:7()0.000000271()0.86310355113r e x e x x--==≈-⨯有效数字:因为π=3.14159265…=0.314159265…×10,3553.141592920.31415929210113==⨯,m=1。
而3553.14159265 3.141592920.0000002705113π-=-=- 所以6617355 3.14159265 3.141592920.00000027050.0000005113110.510101022π----=-=≤=⨯=⨯=⨯ 所以,355113作为π的近似值有7个有效数字。
2、用四舍五入原则写出下列各数的具有五位有效数字的近似数。
346.7854,7.000009,0.0001324580,0.600300分析:本题实际上指出,按要求截取的近似数符合有效数字定义,相关数位上的数字都是有效数字。
解答方法简单,直接写出就可以,不需要也不应该做形式转化(化为科学计数法形式)解:346.7854≈346.79,7.000009≈7.0000,0.0001324580≈0.00013246,0.600300≈0.60030。
指出:3、下列各数都是对准确数进行四舍五入后得到的近似数,试分别指出他们的绝对误差限和相对误差限和有效数字的位数。
12340.0315,0.3015,31.50,5000x x x x ====。
分析:首先,本题的准确数未知,因此绝对误差限根据四舍五入规则确定。
其次,应当先求绝对误差限,再求相对误差限,最后确定有效数字个数。
有效数字由定义可以直接得出。
解:由四舍五入的概念,上述各数的绝对误差限分别是1234()0.00005,()0.00005,()0.005,()0.5x x x x εεεε====由绝对误差和相对误差的关系,相对误差限分别是111222333444()0.00005()0.16%,0.0315()0.00005()0.02%,0.3015()0.005()0.002%,31.5()0.5()0.01%.5000x x x x x x x x x x x x εδεδεδεδ==≈==≈==≈==≈有效数字分别有3位、4位、4位、4位。
0.1%。
解:设取n 个有效数字可使相对误差小于0.1%,则111100.1%2n a -⨯<,而34≤≤,显然13a =,此时,1111110100.1%223n n a --⨯=⨯<⨯,即13110106n --⨯<,也即461010n ⨯>所以,n=4。
3.162≈。
5、在计算机数系F(10,4,-77,77)中,对31120.14281100.31415910x x =⨯=-⨯与,试求它们的机器浮点数()(1,2)i fl x i =及其相对误差。
解:3333111111112222()0.142810,(())()0.14281100.1428100.0000110,()0.314210,(())()0.31415910(0.314210)0.0004110fl x e fl x x fl x fl x e fl x x fl x =⨯=-=⨯-⨯=⨯=-⨯=-=-⨯--⨯=⨯其相对误差分别是3112310.00001100.000041100.007%,0.013%0.1428100.314210e e ⨯⨯=≈=≈-⨯-⨯。
6、在机器数系F(10,8,L,U)中,取三个数4220.2337125810,0.3367842910,0.3367781110x y z -=⨯=⨯=-⨯,试按(),()x y z x y z ++++两种算法计算x y z ++的值,并将结果与精确结果比较。
解:422222222(())(0.23371258100.3367842910)0.3367781110(0.00000023100.3367842910)0.33677811100.33678452100.33677811100.0000064110fl x y z -++=⨯+⨯-⨯=⨯+⨯-⨯=⨯-⨯=⨯42242222(())0.2337125810(0.33678429100.3367781110)0.23371258100.00000618100.00000023100.00000618100.0000064110fl x y z --++=⨯+⨯-⨯=⨯+⨯=⨯+⨯=⨯精确计算得:4222222220.23371258100.33678429100.3367781110(0.00000023371258100.3367842910)0.33677811100.33678452371258100.33677811100.000064137125810x y z -++=⨯+⨯-⨯=⨯+⨯-⨯=⨯-⨯=⨯第一种算法按从小到大计算,但出现了两个数量级相差较大的数相加,容易出现大数吃小数.而第二种算法则出现了两个相近的数相减,容易导致有效数位的减少。
计算结果证明,两者精度水平是相同的。
***在机器数系F(10,8,L,U)中,取三个数4220.2337125810,0.3367842910,0.3367781110x y z --=⨯=⨯=-⨯,试按(),()x y z x y z ++++两种算法计算x y z ++的值,并将结果与精确结果比较。
解:42222222222(())(0.23371258100.3367842910)0.3367781110(0.00233713100.3367842910)0.33677811100.33912142100.33677811100.00003391100.33677811100.336744210fl x y z -----++=⨯+⨯-⨯=⨯+⨯-⨯=⨯-⨯=⨯-⨯=-⨯42242242222(())0.2337125810(0.33678429100.3367781110)0.2337125810(0.00003368100.3367781110)0.23371258100.33674742100.00000023100.33674742100.3367471910fl x y z ----++=⨯+⨯-⨯=⨯+⨯-⨯=⨯-⨯=⨯-⨯=-⨯第一种算法是按从小到大的顺序计算的,防止了大数吃小数,计算更精确。
精确计算得:42220.23371258100.33678429100.33677811100.0000233712580.003367842933.6778110.00339121415833.67781133.6744197858420.3367441978584210x y z --++=⨯+⨯-⨯=+-=-=-=-⨯显然,也是第一种算法求出的结果和精确结果更接近。
7、某计算机的机器数系为F(10,2,L,U),用浮点运算分别从左到右计算及从右到左计算10.40.30.20.040.030.020.01+++++++试比较所得结果。
解:从左到右计算得10.40.30.20.040.030.020.010.1100.04100.03100.02100.00100.00100.00100.00100.19101.9+++++++=⨯+⨯+⨯+⨯+⨯+⨯+⨯+⨯=⨯=从右到左计算得111110.40.30.20.040.030.020.010.010.020.030.040.20.30.410.1100.2100.3100.4100.20.30.410.10.20.30.410.11010.1100.1100.2102----+++++++=+++++++=⨯+⨯+⨯+⨯++++=++++=⨯+=⨯+⨯=⨯=从右到左计算避免了大数吃小数,比从左到右计算精确。