数值计算方法第三版课后习题答案
数值计算方法习题答案

《数值计算方法》课后题答案详解吉 林 大 学第一章 习 题 答 案1. 已知(1)2,(1)1,(2)1f f f −===,求()f x 的Lagrange 插值多项式。
解:由题意知:()01201212001020211012012202121,1,2;2,1,1()()(1)(2)()()6()()(1)(2)()()2()()(1)(1)()()3(1)(2)(1)(2)()2162nj j j x x x y y y x x x x x x l x x x x x x x x x x l x x x x x x x x x x l x x x x x x x x L x y l x ==−=====−−−−==−−−−+−==−−−−−+−==−−−−+−==×+×−∴∑()2(1)(1)131386x x x x +−+×=−+2. 取节点01210,1,,2x x x ===对x y e −=建立Lagrange 型二次插值函数,并估计差。
解11201201210,1,;1,,2x x x y y e y e −−======1)由题意知:则根据二次Lagrange插值公式得:02011201201021012202110.510.520.51()()()()()()()()()()()()()2(1)(0.5)2(0.5)4(1)(224)(43)1x x x x x x x x x x x x L x y y y x x x x x x x x x x x x x x x x e x x e e e x e e x −−−−−−−−−−−−=++−−−−−−=−−+−−−=+−+−−+22)Lagrange 根据余项定理,其误差为(3)2210122()1|()||()||(1)(0.5)|3!61max |(1)(0.5)|,(0,1)6()(1)(0.5),()330.5030.2113()61()0.2113(0.21131)(0.21130.5)0.008026x f R x x e x x x x x x t x x x x t x x x x t x R x ξξωξ−+≤≤==−−≤−−∈′=−−=−+=−==≤××−×−=∴取 并令 可知当时,有极大值3. 已知函数y =在4, 6.25,9x x x ===处的函数值,试通过一个二次插值函数求的近似值,并估计其误差。
《数值计算方法》 课后题 答案(曾金平)湖南大学

= 0.105 × 10 2 − 0.144 × 10 2 + 0.657 × 10 1 − 1
= 0.167 × 101
g ( 2.19) = ((−0.81) × 0.219 × 101 + 3) × 0.219 × 101 − 1
= 0.123 × 10 1 × 0.219 × 10 1 − 1 = 0.169 × 101 1 1 即 f ( x) = 0.167 × 10 , g ( x) = 0.169 × 10
而当 x = 2.19 时 x 3 − 3 x 2 + 3 x − 1 的精确值为 1.6852,故 g ( x ) 的算法较正确。 8.按照公式计算下面的和值(取十进制三位浮点数计算) : (1)
∑3
i =1
6
1
i 6
;(2)
∑3
i =6
1
1
i
。
解: (1)
∑3
i =1 1
1
i
1 1 1 1 1 1 = + 2 + 3 + 4 + 5 + 6 = 0.333 + 0.111 + 0.037 + 0.012 + 0.004 + 0.001 3 3 3 3 3 3
xk
1 1.5 1.25 1.125 1.0625 1.09375 1.109375 1.1171875 1.11328125 1.115234375 1.1142578125 1.11376953125
f ( xk )
-0.1585 0.4962 0.1862 0.015051 -0.0718 -0.02835 -0.00664 0.004208 -0.001216 0.001496 0.001398 -0.000538
《数值计算方法》课后题答案(湖南大学-曾金平)

习题一1.设x >0相对误差为2%,4x 的相对误差。
解:由自变量的误差对函数值引起误差的公式:(())(())'()()()()f x xf x f x x f x f x δδ∆=≈得(1)()f x =11()()*2%1%22x x δδδ≈===;(2)4()f x x =时444()()'()4()4*2%8%x x x x x xδδδ≈===2.设下面各数都是经过四舍五入得到的近似数,即误差不超过最后一位的半个单位,试指出他们各有几位有效数字。
(1)12.1x =;(2)12.10x =;(3)12.100x =。
解:由教材9P 关于1212.m nx a a a bb b =±型数的有效数字的结论,易得上面三个数的有效数字位数分别为:3,4,53.用十进制四位浮点数计算 (1)31.97+2.456+0.1352; (2)31.97+(2.456+0.1352)哪个较精确?解:(1)31.97+2.456+0.1352 ≈21((0.3197100.245610)0.1352)fl fl ⨯+⨯+ =2(0.3443100.1352)fl ⨯+=0.3457210⨯(2)31.97+(2.456+0.1352)21(0.319710(0.245610))fl fl ≈⨯+⨯ = 21(0.3197100.259110)fl ⨯+⨯ =0.3456210⨯易见31.97+2.456+0.1352=0.210⨯,故(2)的计算结果较精确。
4.计算正方形面积时,若要求面积的允许相对误差为1%,测量边长所允许的相对误差限为多少?解:设该正方形的边长为x ,面积为2()f x x =,由(())(())'()()()()f x xf x f x x f x f x δδ∆=≈解得(())()()'()f x f x x xf x δδ≈=2(())(())22f x x f x x xδδ==0.5%5.下面计算y 的公式哪个算得准确些?为什么?(1)已知1x <<,(A )11121xy x x-=-++,(B )22(12)(1)x y x x =++; (2)已知1x >>,(A )y=,(B )y =; (3)已知1x <<,(A )22sin x y x =,(B )1cos 2xy x-=;(4)(A)9y =(B )y =解:当两个同(异)号相近数相减(加)时,相对误差可能很大,会严重丧失有效数字;当两个数相乘(除)时,大因子(小除数)可能使积(商)的绝对值误差增大许多。
数值计算方法与算法第三版课后习题答案

数值计算方法与算法第三版课后习题答案1. 矩阵乘法问题描述给定两个矩阵A和B,尺寸分别为n×m和m×p,求矩阵A 和矩阵B的乘积矩阵C,尺寸为n×p。
算法实现import numpy as npdef matrix_multiplication(A, B):n, m = A.shapem, p = B.shapeC = np.zeros((n, p))for i in range(n):for j in range(p):for k in range(m):C[i][j] += A[i][k] * B[k][j] return C示例A = np.array([[1, 2], [3, 4]])B = np.array([[5, 6], [7, 8]])C = matrix_multiplication(A, B)print(C)输出结果:[[19. 22.][43. 50.]]2. 数值积分问题描述给定一个函数f(x),以及积分区间[a, b],求函数f(x)在区间[a, b]上的定积分值∫abf(x)dx。
算法实现简单的数值积分算法是采用小梯形法,将区间[a, b]均分成n个子区间,然后计算每个子区间的面积,最后将这些子区间面积相加得到定积分值。
def numerical_integration(f, a, b, n):h = (b - a) / nintegral =0for i in range(n):x1 = a + i * hx2 = a + (i +1) * hintegral += (f(x1) + f(x2)) * h /2 return integral示例import mathf =lambda x: math.sin(x)a =0b = math.pin =100result = numerical_integration(f, a, b, n) print(result)输出结果:1.99983550388744363. 非线性方程求解问题描述给定一个非线性方程f(x) = 0,求方程的根x。
数值计算方法课后习题答案

习题一1.设x >0相对误差为2%4x 的相对误差。
解:由自变量的误差对函数值引起误差的公式:(())(())'()()()()f x xf x f x x f x f x δδ∆=≈得 (1)()f x =11()()*2%1%22x x δδδ≈===;(2)4()f x x =时444()()'()4()4*2%8%x x x x x x δδδ≈===4.计算正方形面积时,若要求面积的允许相对误差为1%,测量边长所允许的相对误差限为多少?解:设该正方形的边长为x ,面积为2()f x x =,由(())(())'()()()()f x xf x f x x f x f x δδ∆=≈ 解得(())()()'()f x f x x xf x δδ≈=2(())(())22f x x f x x xδδ= =0.5%5.下面计算y 的公式哪个算得准确些?为什么?(1)已知1x <<,(A )11121x y x x -=-++,(B )22(12)(1)x y x x =++; (2)已知1x >>,(A)y =,(B)y =(3)已知1x <<,(A )22sin x y x=,(B )1cos 2xy x -=;(4)(A)9y =(B)y =解:当两个同(异)号相近数相减(加)时,相对误差可能很大,会严重丧失有效数字;当两个数相乘(除)时,大因子(小除数)可能使积(商)的绝对值误差增大许多。
故在设计算法时应尽量避免上述情况发生。
(1)(A )中两个相近数相减,而(B )中避免了这种情况。
故(B )算得准确些。
(2)(B )中两个相近数相减,而(A )中避免了这种情况。
故(A )算得准确些。
(3)(A )中2sin x 使得误差增大,而(B )中避免了这种情况发生。
故(B )算得准确些。
(4)(A )中两个相近数相减,而(B )中避免了这种情况。
数值计算方法第三版课后习题答案

习题一解答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。
数值计算方法课后习题答案(李庆扬等)
数值计算方法课后习题答案(李庆扬等)绪论(12)1、设x 0,x的相对误差为,求lnx的误差。
[解]设x* 0为x的近似值,则有相对误差为r*(x) ,绝对误差为*(x) x*,从而lnx的误差为*(lnx) (lnx*) (x*) 相对误差为(lnx)*r1*x ,x**(lnx)lnx*lnx*。
2、设x的相对误差为2%,求xn的相对误差。
[解]设x*为x的近似值,则有相对误差为r*(x) 2%,绝对误差为*(x) 2%x*,从而x的误差为(lnx) (x) 相对误差为(lnx)*rn*nx x*(x) n(x)**n 12%x 2n% x**n,*(lnx)(x)*n2n%。
3、下列各数都是经过四舍五入得到的近似数,即误差不超过最后一位的半个单位,试指出它们是几位有效数字:*****x1 1.1021,x2 0.031,x3 56.430,x5 385.6,x4 7 1.0。
***[解]x1 1.1021有5位有效数字;x2 0.0031有2位有效数字;x3 385.6有4**位有效数字;x4 56.430有5位有效数字;x5 7 1.0有2位有效数字。
****4、利用公式(3.3)求下列各近似值的误差限,其中x1均为第3题所给,x2,x3,x4的数。
***(1)x1;x2 x4f *******e*(x1 x2 x4) (x) (x) (x) (xk124) xk 1 k [解];11110 4 10 3 10 3 1.05 10 3222n****(2)x1x2x3;f***e*(x1x2x3)k 1 xkn ********** (x) (xx) (x) (xx) (x) (xx) (x)k***-*****3*1[解] (0.031 385.6)1 10 4 (1.1021 385.6)1 10 3 (1.1021 0.031) 10 3;2220.***** 10 3 212.***** 10 3 0.***-***** 10 3213.***-***** 10 3 0.***-*****255**(3)x2。
数值计算方法课后习题答案(李庆扬等) (修复的)
,。
第一章 绪论(12)1、设0>x ,x 的相对误差为δ,求x ln 的误差。
[解]设0*>x 为x 的近似值,则有相对误差为δε=)(*x r ,绝对误差为**)(x x δε=,从而x ln 的误差为δδεε=='=*****1)()(ln )(ln x xx x x , 相对误差为****ln ln )(ln )(ln x x x x rδεε==。
2、设x 的相对误差为2%,求n x 的相对误差。
[解]设*x 为x 的近似值,则有相对误差为%2)(*=x r ε,绝对误差为**%2)(x x =ε,从而nx 的误差为nn x x nxn x x n x x x **1***%2%2)()()()(ln *⋅=='=-=εε,相对误差为%2)()(ln )(ln ***n x x x nr==εε。
3、下列各数都是经过四舍五入得到的近似数,即误差不超过最后一位的半个单位,试指出它们是几位有效数字:1021.1*1=x ,031.0*2=x ,6.385*3=x ,430.56*4=x ,0.17*5⨯=x 。
[解]1021.1*1=x 有5位有效数字;0031.0*2=x 有2位有效数字;6.385*3=x 有4位有效数字;430.56*4=x 有5位有效数字;0.17*5⨯=x 有2位有效数字。
4、利用公式(3.3)求下列各近似值的误差限,其中*4*3*2*1,,,x x x x 均为第3题所给的数。
(1)*4*2*1x x x ++;[解]3334*4*2*11***4*2*1*1005.1102110211021)()()()()(----=⨯=⨯+⨯+⨯=++=⎪⎪⎭⎫ ⎝⎛∂∂=++∑x x x x x f x x x e nk k k εεεε;(2)*3*2*1x x x ;[解]52130996425.010********.2131001708255.01048488.2121059768.01021)031.01021.1(1021)6.3851021.1(1021)6.385031.0()()()()()()()()(3333334*3*2*1*2*3*1*1*3*21***3*2*1*=⨯=⨯+⨯+⨯=⨯⨯+⨯⨯+⨯⨯=++=⎪⎪⎭⎫⎝⎛∂∂=-------=∑x x x x x x x x x x x f x x x e n k k kεεεε;(3)*4*2/x x 。
《数值计算方法》课后题答案(湖南大学-曾金平)
习题一1.设x >0相对误差为2%,4x 的相对误差。
解:由自变量的误差对函数值引起误差的公式:(())(())'()()()()f x xf x f x x f x f x δδ∆=≈得(1)()f x =11()()*2%1%22x x δδδ≈===;(2)4()f x x =时444()()'()4()4*2%8%x x x x x xδδδ≈===2.设下面各数都是经过四舍五入得到的近似数,即误差不超过最后一位的半个单位,试指出他们各有几位有效数字。
(1)12.1x =;(2)12.10x =;(3)12.100x =。
解:由教材9P 关于1212.m nx a a a bb b =±型数的有效数字的结论,易得上面三个数的有效数字位数分别为:3,4,53.用十进制四位浮点数计算 (1)31.97+2.456+0.1352; (2)31.97+(2.456+0.1352)哪个较精确?解:(1)31.97+2.456+0.1352 ≈21((0.3197100.245610)0.1352)fl fl ⨯+⨯+ =2(0.3443100.1352)fl ⨯+=0.3457210⨯(2)31.97+(2.456+0.1352)21(0.319710(0.245610))fl fl ≈⨯+⨯ = 21(0.3197100.259110)fl ⨯+⨯ =0.3456210⨯易见31.97+2.456+0.1352=0.210⨯,故(2)的计算结果较精确。
4.计算正方形面积时,若要求面积的允许相对误差为1%,测量边长所允许的相对误差限为多少?解:设该正方形的边长为x ,面积为2()f x x =,由(())(())'()()()()f x xf x f x x f x f x δδ∆=≈解得(())()()'()f x f x x xf x δδ≈=2(())(())22f x x f x x xδδ==0.5%5.下面计算y 的公式哪个算得准确些?为什么?(1)已知1x <<,(A )11121xy x x-=-++,(B )22(12)(1)x y x x =++; (2)已知1x >>,(A )y=,(B )y =; (3)已知1x <<,(A )22sin x y x =,(B )1cos 2xy x-=;(4)(A)9y =(B )y =解:当两个同(异)号相近数相减(加)时,相对误差可能很大,会严重丧失有效数字;当两个数相乘(除)时,大因子(小除数)可能使积(商)的绝对值误差增大许多。
数值计算方法与算法第三版答案 数值计算方法学习指导书
数值计算方法与算法第三版答案数值计算方法学习指导书数值计算方法学习指导书是怎么样的?以下是小编分享给大家的数值计算方法学习指导书简介的资料,希望可以帮到你!数值计算方法学习指导书内容简介《数字信号处理学习指导》是浙江省高等教育重点建设教材、应用型本科规划教材《数字信号处理》(唐向宏主编,浙江大学出版社出版,以下简称教材)的配套学习指导书,内容包括学习要求、例题分析、教材习题解答、自测练习以及计算机仿真实验等。
学习指导书紧扣教材内容,通过例题讲解,分析各章节的学习重点、难点以及需要理解、掌握和灵活运用的基本概念、基本原理和基本方法。
全书共有66例例题分析、121题题解、2套自测练习和6个MAT1AB计算机仿真实验。
数值计算方法学习指导书目录绪论第1章离散时间信号与系统1.1 学习要点1.2 例题1.3 教材习题解答第2章离散系统的变换域分析与系统结构2.1 学习要点2.2 例题2.3 教材习题解答第3章离散时间傅里叶变换3.1 学习要点3.2 例题3.3 教材习题解答第4章快速傅里叶变换4.1 学习要点4.2 例题4.3 教材习题解答第5章无限长单位冲激响应(IIR)数字滤波器的设计5.1 学习要点5.2 例题5.3 教材习题解答第6章有限长单位冲激响应(FIR)数字滤波器的设计6.1 学习要点6.2 例题6.3 教材习题解答第7章数字信号处理中的有限字长效应7.1 学习要点7.2 例题7.3 教材习题解答第8章自测题8.1 自测题(1)及参考答案8.2 自测题(2)及参考答案第9章基于MA TLAB的上机实验指导9.1 常见离散信号的MA TLAB产生和图形显示9.2 信号的卷积、离散时间系统的响应9.3 离散傅立叶变换9.4 离散系统的频率响应分析和零、极点分布9.5 IIR滤波器的设计9.6 FIR滤波器的设计数值计算方法学习指导书内容文摘第1章离散时间信号与系统1.1 学习要点本章主要介绍离散时间信号与离散时间系统的基本概念,着重阐述离散时间信号的表示、运算,离散时间系统的性质和表示方法以及连续时间信号的抽样等。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
习题一解答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----+++++++=+++++++=⨯+⨯+⨯+⨯++++=++++=⨯+=⨯+⨯=⨯=从右到左计算避免了大数吃小数,比从左到右计算精确。