计算方法 - 习题第一、二章答案

更新时间:2023-10-31 13:32:01 阅读量: 综合文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

第一章 误差

1 问3.142,3.141,227分别作为π的近似值各具有几位有效数字?

分析 利用有效数字的概念可直接得出。 解 π=3.141 592 65?

记x1=3.142,x2=3.141,x3=227.

由π- x1=3.141 59?-3.142=-0.000 40?知

12?10?3?|??x11|?2?10?4 因而x1具有4位有效数字。

由π- x2=3.141 59?-3.141=-0.000 59?知

12?10?3?|??x2|?12?10?2

因而x2具有3位有效数字。

由π-227=3.141 59 ?-3.142 85?=-0.001 26?知

12?10?3?|??227|?12?10?2

因而x3具有3位有效数字。

2 已知近似数x*有两位有效数字,试求其相对误差限。 分析 本题显然应利用有效数字与相对误差的关系。

解 利用有效数字与相对误差的关系。这里n=2,a1是1到9之间的数字。

|?*r(x)|?|x?x*||x*|?21a?10?n?1?112?1?10?2?1?5%

3 已知近似数的相对误差限为0.3%,问x*至少有几位有效数字?

分析 本题利用有效数字与相对误差的关系。 解 a1是1到9间的数字。

?r*(x)0.3%?10003?2?110?2?(19?1)?10?1?2(a11?1)?10?12 设x*具有n位有效数字,令-n+1=-1,则n=2,从而x*至少具有2位有效数字。4 计算sin1.2,问要取几位有效数字才能保证相对误差限不大于0.01%。 分析 本题应利用有效数字与相对误差的关系。

解 设取n位有效数字,由sin1.2=0.93?,故a1=9。

?r*(x)|?|x?x*||x*|?21a1?10?n?1?0.01%?10?4

解不等式21a?10?n?1?10?4知取n=4即可满足要求。

15 计算7591?7601,视已知数为精确值,用4位浮点数计算。

1 / 25

1?1?0.131 8×10-2-0.131 6×10-2=0.2×10-5 7597601?1?11??0.1734?10?5 6759760759?7600.5768?10结果只有一位有效数字,有效数字大量损失,造成相对误差的扩大,若通分后再计算:

就得到4位有效数字的结果。

此例说明,在数值计算中,要特别注意两相近数作减法运算时,有效数字常会严重损失,遇到这种情况,一般采取两种办法:第一,应多留几位有效数字;第二,将算式恒等变形,然后再进行计算。例如,当x接近于0,计算1?cosx时,应先把算式变形为

sinx1?cos2x1?cosx ??sinx

sinxsinx(1?cosx)1?cosx再计算。又例如,当x充分大时,应作变换

1?x?x?1

1?x?x1?1?1 xx?1x(x?1)6 计算a?(2?1)6,取2?1.4,采用下列算式计算: (1)

1; (2?1)6(2)99?702; (3)(3?22)3; (4)

1. (3?22)3问哪一个得到的结果最好?

解 显然

(2?1)6(2?1)61a?(2?1)?? 6(2?1)(2?1)66(2?1)6??(2?1)2??(3?22)3?99?702

3(2?1)6?111?? 36(2?1)?(2?1)2?(3?22)3所以(1)≡(2)≡(3)≡(4),这4个算式是恒等的,但当取2?1.4计算时,因为(2),

(3)都涉及到两个相近数相减,使有效数字损失,而(1)在分母算式上的乘幂数比算式(4)大,所以算式(4)最好,事实上,当取2?1.4时,有|△x|<0.015,再由f(x)的误差

f(x??x)?f(x)|?|f?(1.4)||?x|也可直接估计出每个算式的误差,显然,算式(4)误差最

小。

2 / 25

具体计算可行: (1)

1?5.2?10?3; 6(2?1)(2)99?702?1.0 (3)(3?22)3?8.0?10?3; (4)

1?5.1?10?3. 3(3?22)比较可得用第(4)个算式所得的结果更接近于a。

7 求二次方程x2-(109+1)x+109=0的根。

解 由于x2-(109+1)x+109=(x-109)(x-1),所以方程的两个根分别为 x1=109,x2=1

但如果应用一般二次方程ax2+bx+c=0的求根公式:

?b?b2?4ac x1,2?

2a由于当遇到b2>>4|ac|的情形时,有|b|?b2?4ac,则用上述公式求出的两个根中,总有一个因用了两个相近的近似数相减而严重不可靠,如本例若在能将规格化的数表示到小数点后8位的计算机上进行计算,则-b=109+1=0.1×1010+0.000 000 0001×1010,由于第二项最后两位数“01”在机器上表示不出来,故它在上式的计算中不起作用,即在计算机运算时,-b=109.

通过类似的分析可得

所以,求得的两个根分别为

b2?4ac?|b|?109

?b?b2?4ac109?109 x1???109

2a2?b?b2?4ac109?109 x2???0

2a2显然,根x2是严重失真的。

为了求得可靠的结果,可以利用根与系数的关系式:x1x2?c,在计算机上采用如下

a公式:

x1??b?sgn(b)b2?4ac

2a x2?c

ax1其中,sgn(b)是b的符号函数,当b≥0时sgn(b)=1;当b<0时,sgn(b)=-1。显然,上述求根公式避免了相近数相减的可能性。

8 当N充分大时,如何计算

I??分析 函数

N?1N1dx 1?x1的原函数已知,我们自然考虑用Newton-Leibniz公式求这个定积分1?x2 3 / 25

的值。由于N很大,这样会遇到两个相近的数相减,因此,应采用一些变换公式来避免这种情况。

解 若用定积分的Newton-Leibniz公式计算此题,有

?N?1N1?arctan(N?1)?arctanN,则当N充分大时,因为arctan(N+1)和arctanN1?x2非常接近,两者相减会使有效数字严重损失,从而影响计算结果的精度,这在数值计算中是要尽量避免的,但是通过变换计算公式,例如:令tanθ1=N+1, tanθ2=N,则由

1,得 tan(?1??2)?tan?1?tan?2?N?1?N?1?tan?1tan?21?(N?1)N1?(N?1)N ?1??2?arctaNn?(1)?arctaNn?arctan1

1?(N?1)N就可以避免两相近数相减引起的有效数字损失,从而得到较精确的结果。所以,当N充分大时,用

?N?1N1?arctan1计算积分的值较好。 21?x1?N?N29 计算积分In??xe01nx?1dx(n?1,2,?.

分析 数值计算中应采用数值稳定的算法,因此在建立算法时,应首先考虑它的稳定性。

解 利用分部积分法,有

?10xnex?1dx??xndex?1?xnex?1|??ex?1nxn?1dx?1?n?xn?1ex?1dx

00001111得递推公式:

In?I?nIn?1 I0?(n?1,2,?) (1)

?xe010x?1dx?1?1

e*时有大小为ε的误差,利用公式(1)计算In,由于初值I0有误差,不妨设求I0的近似值I0即

??I0?? I0则由递推公式(1)得

??I?I0???I1?? I1??I?I0??I?2I??I?2I1?2??I2?2!? I21??I?3I??I?3I2?3?2!??I3?3!? I32??I?4I??I?4I3?4?3!??I4?4!? I43┊

??In?(?1)nn!? In显然初始数据的误差ε是按n!的倍数增长的,误差传播得快,例如当n=10时,10!≈3.629

??I10|?10!?,?的误差已把I×106,|I10这表明I10时已把初始误差ε扩大了很多倍,从而I1010

4 / 25

的真值淹没掉了,计算结果完全失真。

但如果递推公式(1)改成

In?1?1(I?In)(n?k,k?1,?3,2)

n于是,在从后往前计算时,In的误差减少为原来的1,所以,若取n足够大,误并逐步减小,

n显然,计算的结果是可靠的。所以,在构造或选择一种算法时,必须考虑到它的数值稳定性问题,数值不稳定的算法是不能使用的。

10 为了使计算

y?10?3?4?6 x?1(x?1)2(x?1)3的乘除法运算次数尽量地少,应将表达式改写为怎样的形式?

解 设t?1,y?10?(3?(4?6t)t)t. x?1在数值计算中,应注意简化运算步骤,减少运算次数,使计算量尽可能小。 11若x*=3587.64是x的具有六位有效数字的近似值,求x的绝对误差限。 12为使70的近似值的相对误差小于0.1,问查开方表时,要取几位有效数字? 13利用四位数学用表求x=1-cos2°的近似值,采用下面等式计算: (1)1-cos2° (2)2sin21° 问哪一个结果较好?

14求方程x2-56x+1=0的两个根,使它至少具有四位有效数字(已知783?27.982)。 15数列{x}?n?0满足递推公式

xn?10xn?1?1(n?1,2,?)

若取x02?1.41(三位有效数字),问按上述递推公式,从x0计算到x10时误差有多大?这个计算过程稳定吗?

16如果近似值x???(a1?a2?10?1?a3?10?2???an?10?n?1)?10m的相对误差限小于

1?10?n?1,证明:这个数具有n位有效数字。 2(a1?1)

5 / 25

本文来源:https://www.bwwdw.com/article/kjd2.html

Top