第一章 误差
1 问 3.142,3.141,
22 分别作为 π 的近似值各具有几位有效数字?
7
分析 利用有效数字的概念可直接得出。 解 π=3.141 592 65,
记 x1=3.142,x2=3.141 ,x3=
22 .
7
由π- x1=3.141 59, -3.142=-0.000 40, 知
1
3
1
4
10 2
因而 x1 具有 4 位有效数字。
由π- x2=3.141 59, -3.141=-0.000 59, 知
| x |
1
10 2
1 2
10 3 |
x
|
1 2
2
10
2
因而 x2 具有 3 位有效数字。
由π- 22 =3.141 59 , -3.142 85, =-0.001 26, 知
7
1 10 2 3 |
22 7
|
1 2
2
10
因而 x3 具有 3 位有效数字。
2
已知近似数 x* 有两位有效数字,试求其相对误差限。
n=2,a1 是 1 到 9 之间的数字。
分析 本题显然应利用有效数字与相对误差的关系。 解 利用有效数字与相对误差的关系。这里
| x x* |
|
1
1
*
n
1
2 1
5%
(x) |
r
x | * |
2
a
1
10
2 1
10
3 已知近似数的相对误差限为 解 a1 是 1 到 9 间的数字。
*r
0.3%,问 x* 至少有几位有效数字?
分析 本题利用有效数字与相对误差的关系。
3
(x)0.3%
1
2
1
1
1
10
10
2(a 1)
1
1
1000 2 10 2 (9 1)
设 x* 具有 n 位有效数字,令 -n+1=-1,则 n=2,从而 x* 至少具有 2 位有效数字。 4 计算 sin1.2,问要取几位有效数字才能保证相对误差限不大于 分析 本题应利用有效数字与相对误差的关系。 解 设取 n 位有效数字,由 sin1.2=0.93 , ,故 a1=9。
0.01%。
(
| x x* |
1
n
1
4
* r
x) |
x | * |
n 1
2
a
1
10 0. 01% 10
1
解不等式
知取 n=4 即可满足要求。
10 2a
1
10 4
5 计算 1
1 ,视已知数为精确值,用 4 位浮点数计算。
759 760
1 / 25
解 1
1
0.131 8× 10
-2
759 760
-0.131 6× 10-2=0.2× 10-5
结果只有一位有效数字,有效数字大量损失,造成相对误差的扩大,若通分后再计算:
1 759
1 760 1 759 760
1 6 0.5768 10
0.1734 10
5
就得到 4 位有效数字的结果。
此例说明, 在数值计算中, 要特别注意两相近数作减法运算时,
有效数字常会严重损失,
遇到这种情况,一般采取两种办法:第一,应多留几位有效数字;第二,将算式恒等变形, 然后再进行计算。例如,当
x 接近于 0,计算
1 cos x 时,应先把算式变形为 sin x
1
cos
x 2
sin x
1
sin
x) 1 sin x
cos
cos
x
x(1 cos
x
再计算。又例如,当 x 充分大时,应作变换
1 x x
1 x 1
x
1 x
1 1 x 1
x(x 1)
6 计算 a
( 2 1)6 ,取 2 1.4,采用下列算式计算:
(1)
( 1 ; 2 1)
6
(2) 99 70 2 ;
(3) (3 2 2)3 ;
(4)
(3
1 . 2 2)3
问哪一个得到的结果最好?
解 显然 6
a 6
( 2 2 6 ( 2 ( 1) ( 1) 1 2
1)
2 1) ( 6 1)
6
3
(
1 3 2 2)3
99 70 2
2 )
( 2
2
6
1) (
( 2
6 1) 1 6 1 1 ( 2 ( 2 1) 3 (3 3
1) 2 2
2) 所以(1)≡(2)≡(3)≡(4),这 4 个算式是恒等的, 但当取
2 1.4计算时, 因为 (2)
, (3)都涉及到两个相近数相减, 使有效数字损失, 而(1)在分母算式上的乘幂数比算式 4)(
大,所以算式( 4)最好,事实上,当取
2 1.4时,有 | △x|<0.015 ,再由 f(x) 的误差
4)误差最
f(x
小。
x) f (x) | | f ( 1.4) || x|也可直接估计出每个算式的误差,显然,算式(
2 / 25
具体计算可行: (1)
1
3
6
;
5.2 10
( 2 1)
(2) 99
70 2 1.0
8.0 10 3 ;
.
3
3
(3) (3 2 2)3
1
(4)
(3 2 2)
2
5.1 10
a。
比较可得用第( 4)个算式所得的结果更接近于
-(109+1)x+10 9=0 的根。
7 求二次方程 x
2
9
解 由于 x
-(10 +1)x+10
9 9)(x-1) ,所以方程的两个根分别为 =(x-10
9
如果应用一般二次方程
, x x1=10 2=1
2
+bx+c=0 的求根公式: 但ax
x
b
2
b
4ac
2a
2
>>4|ac|的情形时,有 | b | b2 4ac ,则用上述公式求出的两个根中,
如本例若在能将规格化的数表示到小
1,2
由于当遇到 b
总有一个因用了两个相近的近似数相减而严重不可靠,
9
+1=0.1×1010+0.000 000 0001 ×1010,由于第二项
即在计算机运算时,
数点后 8 位的计算机上进行计算,则 -b=10
最后两位数 “01”在机器上表示不出来, 故它在上式的计算中不起作用,
9
-b=10 .
通过类似的分析可得
2
4ac | b | 109
b
所以,求得的两个根分别为
2
9
9
b
9
b x1
x
2
4ac 2a
b
10 10
10
2
b
2
4ac
9 9
10
a 2
10 2
0
显然,根 x2 是严重失真的。
为了求得可靠的结果,可以利用根与系数的关系式:
x1x2
c
,在计算机上采用如下
a
公式:
x
1
x
2
b sgn(b) b2
2a c ax
4ac