数值计算课后习题答案(全)
- 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.14
r 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=21311
101022
--⨯=⨯
所以,3.14作为π的近似值有3个有效数字。
(2)绝对误差:
e(x)=π-3.15=3.14159265…-3.14=-0.008407…≈-0.0085。
相对误差:
2()0.0085
()0.27103.15
r 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=11211
101022
--⨯=⨯
所以,3.15作为π的近似值有2个有效数字。
(3)绝对误差:
22
() 3.14159265 3.1428571430.001264493
0.00137
e x π=-=-=-≈-
相对误差:
3()0.0013
()0.4110227r e x e x x
--==≈-⨯
有效数字:
因为π=3.14159265…=0.314159265…×10, 22
3.1428571430.3142857143107
==⨯,m=1。
而22
3.14159265 3.1428571430.0012644937
π-
=-=-
所以 2213
22 3.14159265 3.1428571430.0012644930.005
7
11
0.510101022
π----=-=≤=⨯=⨯=⨯
所以,22
7
作为π的近似值有3个有效数字。
(4)绝对误差:
355
() 3.14159265 3.141592920.00000027050.000000271113
e x π=-=-=-≈-相对误差:
7()0.000000271
()0.86310355113
r e x e x x
--==≈-⨯
有效数字: 因为π=3.14159265…=0.314159265…×10, 355
3.141592920.31415929210113
==⨯,m=1。
而355 3.14159265 3.141592920.0000002705113π-=-=-
所以
6617
355 3.14159265 3.141592920.00000027050.0000005
113
11
0.510101022π----=-=≤=⨯=⨯=⨯
所以,355
113
作为π的近似值有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 εεεε==== 由绝对误差和相对误差的关系,相对误差限分别是
111222
333
444
()0.00005
()0.16%,
0.0315
()0.00005
()0.02%,
0.3015
()0.005()0.002%,31.5()0.5
()0.01%.5000
x x x x x x x x x x x x εδεδεδεδ==≈==
≈==≈=
=
≈
有效数字分别有3位、4位、4位、4位。
4.
0.1%。
解:设取n 个有效数字可使相对误差小于0.1%,则 111
100.1%2n a -⨯<,
而34≤≤,显然13a =,此时,
1111110100.1%223n n a --⨯=⨯<⨯, 即131
10106
n --⨯<, 也即461010n ⨯> 所以,n=4。
此时, 3.162≈。
5、在计算机数系F(10,4,-77,77)中,对31120.14281100.31415910x x =⨯=-⨯与,试求它们的机器浮点数()(1,2)i fl x i =及其相对误差。
解:
333311111
1
1
1
2222()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 =⨯=-=⨯-⨯=⨯=-⨯=-=-⨯--⨯=⨯其相对误
差分别是
31
1231
0.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 ++的值,并将结果与精确结果比较。
解:
4222222
2
2
(())(0.23371258100.3367842910)0.3367781110(0.00000023100.3367842910)0.33677811100.33678452100.33677811100.0000064110fl x y z -++=⨯+⨯-⨯=⨯+⨯-⨯=⨯-⨯=⨯
422422
2
2(())0.2337125810(0.33678429100.3367781110)0.23371258100.00000618100.00000023100.00000618100.0000064110fl x y z --++=⨯+⨯-⨯=⨯+⨯=⨯+⨯=⨯
精确计算得:
4222222
2
2
0.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 ----++=⨯+⨯-⨯=⨯+⨯-⨯=⨯-⨯=⨯-⨯=-⨯
第一种算法是按从小到大的顺序计算的,防止了大数吃小数,计算更精确。
精确计算得:
4222
0.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.01
0.1100.04100.03100.02100.00100.00100.00100.00100.19101.9
+++++++=⨯+⨯+⨯+⨯+⨯+⨯+⨯+⨯=⨯=
从右到左计算得
111110.40.30.20.040.030.020.010.010.020.030.040.20.30.41
0.1100.2100.3100.4100.20.30.410.10.20.30.41
0.1101
0.1100.1100.2102
----+++++++=+++++++=⨯+⨯+⨯+⨯++++=++++=⨯+=⨯+⨯=⨯=
从右到左计算避免了大数吃小数,比从左到右计算精确。
8、对于有效数1233.105,0.001,0.100x x x =-==,估计下列算式的相对误差限
2
1123212333
,,x y x x x y x x x y x =++==
分析:求和差的相对误差限采取先求出和差的绝对误差限再求相对误差限的方法。
求积商的相对误差限采取先求每一个数的相对误差限再求和的方法。
解:因为1233.105,0.001,0.100x x x =-==都是有效数, 所以123()0.0005,()0.0005,()0.0005x x x εεε===
1230.00050.00050.0005
()0.16%,()50%,()0.5%3.1050.0010.100
x x x δδδ=
===== 则123123()()()()0.00050.00050.00050.0015x x x x x x εεεε++=++=++=
4123123123
()
0.00150.0015
() 4.99100.05%3.1050.0010.100 3.004
x x x x x x x x x εδ-++++=
=
=≈⨯=++-++
123123()()()()0.16%50%0.5%50.66%x x x x x x δδδδ=++=++=
2
233
(
)()()50%0.5%50.5%x x x x δδδ=+=+= 9、试改变下列表达式,使其计算结果比较精确(其中1x 表示x 充分接近0,1x 表示x
充分大)。
(1)1212ln ln ,x x x x -≈; (2)
11,111x x x x
---+;
(3)1x ;
(4)
1cos ,01x
x x x -≠且; (5)1
cot ,01x x x
x
-≠且。
分析:根据算法设计的原则进行变形即可。
当没有简单有效的方法时就采用泰勒展开的方法。
解:(1)1
122
ln ln ln x x x x -=; (2)
2
22111(1)11(1)(1)1(12)3(1)(1)(1)(1)
x x x x x x x x x x x x x x x x -+---=
-+-++--+-==
-+-+;
(3)
=
=
=
或
112
()()
2
x x
x
=
+--
==
=
=
(4)
242
242
1
321
1
1(1(1))
1cos2!4!(2)!
(1)
2!4!(2)!
(1)
2!4!(2)!
n
n
n
n
n
n
x x x
x n
x x
x x x
n
x
x x x
n
+
-
+
--+-+-+
-
=
--+-+
=
=--+-+
(5)
2
321
2
321
n
2
11111
cot ()
345(2)!
2
11
345(2)!
B
n
n
n
n
n
n
B
x x x x
x x x n
B
x x x
n
-
-
-=------
=++++
(是贝努利数)
10、用4位三角函数表,怎样算才能保证1cos2
-有较高的精度?
解:根据2
1cos22sin1
-=,先查表求出sin1再计算出要求的结果精度较高。
11
、利用27.982≈求方程25610x x -+=的两个根,使它们至少具有4位有效数字。
解:
由方程的求根公式,本方程的根为
1,256562822
x ±±===±
因为27.982≈,则
1282827.98255.982x =≈+=
如果直接根据求根公式计算第二个根,则因为两个相近的数相减会造成有效数字的减少,误差增大。
因此
根据韦达定理121x x =,在求出155.982x ≈后这样计算2x :
1211155.982
x x =
≈⨯=0.01786=0.178610 这样就保证了求出的根有四位有效数字。
12、试给出一种计算积分
1
1
(0,1,2,3,...)n x n I e
x e dx n -==⎰, 近似值的稳定算法。
解:当n =0时,1
1
011
00
(1)1x I e
x e dx e e e ---==-=-⎰。
(1
1
1x x e dx e e ==-⎰)。
对I n 运用分部积分法(b
b
b
a a
a
udv uv vdu =-⎰⎰)得
1
1
1
1
1
1
11
10
()(0)n x n x n x
n x n I e
x e dx e
x e
n x e dx e e n x e dx -----==-=--⎰⎰⎰
1
1
110
11n x
n ne
x e dx nI ---=-=-⎰ 由此得到带初值的递推关系式
1
0111(1,2,3,...)n
n I e
I nI n --⎧=-⎪⎨
=-=⎪⎩ 由递推公式I n =1-nI n -1 解得11
(1)n n I I n
-=
-,这是逆向的递推公式,对I n 的值作估计,有 1
1
1
11
1
1
n x
n
n I e
x e dx e e x dx n --=≤=+⎰⎰
另有
1
1
1
1
10
1
1
n x
n n I e
x e dx e
x dx e n ---=≥=+⎰⎰ (取e 的指数为最小值0,将e x 取作 e 0 =1作为常数即可简化公式)。
则 111
11
n e I n n -≤≤
++。
那么,我们可以取其上下限的平均值作为其近似值。
即取
111(1)21
n I e n -=++
可以看出,n 越大,这个近似值越精确地接近于准确值。
(n 越大,I n 的上限和下限就越接近,近似值区间的长度就越短,近似值和精确值就越接近)
此时,e n -1=I n -1*-I n -1=-
1n (I n *-I n )=1n e n ,│e 0│= 1
!
n │e n │,计算是稳定的。
实际上,如果我们要求I 9,可以先求出I 20,这样求出的I 9的误差是比I 20的误差小得多的,而I 20
的误差本身也并不大。
实际上,这样求出的I 9比直接计算出来的精确得多。
习 题 二 解 答
1.用二分法求方程x 3-2x 2-4x-7=0在区间[3,4]内的根,精确到10-3,即误差不超过31
102
-⨯。
分析:精确到10-3与误差不超过10-3不同。
解:因为f(3)=-10<0,f(4)=9>0,所以,方程在区间[3,4]上有根。
由
34311
*1022222
n n n n n n b a b a x x -----≤
===<⨯ 有2n-1>1000,又为210=1024>1000, 所以n =11,即只需要二分11次即可。
x *≈x 11=3.632。
指出:
(1)注意精确度的不同表述。
精确到10-3和误差不超过10-3是不同的。
(2)在计算过程中按规定精度保留小数,最后两次计算结果相同。
如果计算过程中取4位小数,结果取3位,则如下表:
(3)用秦九韶算法计算f(x n )比较简单。
1*.求方程x 3-2x 2-4x-7=0的隔根区间。
解:令32247y x x x =---, 则2344322()()y x x x x '=--=+-
当23443220()()y x x x x '=--=+-=时,有122
23
,x x =-=。
因为214902150327(),()y y -=-<=-<,所以方程在区间2
23(,)-上无根;
因为21490327()y -=-<,而函数在2
3
(,)-∞-上单调增,函数值不可能变号,所以方程在该区间上无
根;
因为2150()y =-<,函数在(2,+∞)上单调增,所以方程在该区间上最多有一个根, 而(3)=-10<0,y(4)=9>0,所以方程在区间(3,4)有一个根。
所以,该方程有一个根,隔根区间是(3.4)。
2.证明1sin 0x x --=在[0,1]内有一个根,使用二分法求误差不大于41
102-⨯的根,需要迭代多少次?
分析:证明方程在指定区间内有一个根,就是证明相应的函数在指定区间有至少一个零点。
解:令()1sin f x x x =--,
因为(0)10sin 010,(1)11sin1sin10f f =--=>=--=-<, 则(0)(1)0f f <,
由零点定理,函数f(x)在[0,1]区间有一个根。
由
41011
*1022222
n n n n n n b a b a x x -----≤
===<⨯ 有2n-1>10000,又为210=1024,213=8192<10000,214=16384>10000 所以n =15,即需要二分15次。
3.试用迭代公式102
20
,1210
k k k x x x x +=
=++,求方程32210200x x x ++-=的根,要求精确到510-。
分析:精确到510-即误差不超过51
102
-⨯
解:令32()21020f x x x x =++-
指出:
精确到510-可以从两个方面判定。
第一,计算过程中取小数到510-位,最后两个计算结果相同,终
止计算。
第二,计算过程中取小数到610-,当511
102
k k x x -+-<⨯终止计算。
本题采用第一种方法。
4.将一元非线性方程20cos x x e -=写成收敛的迭代公式,并求其在
005.x =附近的根,要求精确到
210-。
解:20cos x x e -=改写为222110cos cos cos x x x
x x
x e e e
=⇒
=⇒-=,则 21cos x
x
x x e =+
-,设 21cos ()x
x
g x x e =+-
有
22224111)
sin cos (sin cos )
()()x
x
x x x
x xe xe x x g x e e e π
+
--+'=+=-=-
在005.x =处,因为
05
054051096151..)
(.).g e
π
+
'=-
=<
所以迭代法121cos ()k
k
k k x x g x x e +=+-在005.x =的邻域内收敛。
列表迭代如下:
此时0692069000614.cos ..e -=。
5.为求方程3210x x --=在015.x =附近的一个根,设将方程改为下列等价形式,并建立相应的迭代公式:
122
1
3
2
231211
2
1111121111
31
1(),;(),();(),.()k k k k
k k x x x x x x x x x x x x +++=+
=+=+=+==--迭代公式迭代公式迭代公式
试分析每种迭代公式的收敛性,并取一种公式求出具有4位有效数字的近似值。
解:(1)因为211x x =+,所以迭代函数为21
1()g x x
=+,则
23212()()()g x x x x --'''===-,3322
152151153375(.)...g -'=-⨯==<满足局部收敛性条件,所以迭代
公式121
1k k
x x +=+
具有局部收敛性。
(2)因为123
1()x x =+,所以迭代函数为123
1()()g x x =+,则
1212233
2
23
12212133
31()()()()
x g x x x x x x --'=+=+=
+,
223
21515045613115.(.).(.)
g ⨯'=
=<+满足局部收敛性条件,所以迭代公式12311()k k
x x +=+具有收敛性。
(3)因为12
11()
x x =
-,所以迭代函数为12
11()()
g x x =
-,则
1312211
1122
()()()g x x x ---'=--=--,
3
232
1
115151141412
205
(.)(.)..g -'=-=
=>⨯不满足收敛性条件,所以迭代公式
112
11()
k k x x +=
-不具有收敛性。
用迭代公式12
1
1k k x x +=+列表计算如下:
所以,方程的近似根为1465*.x ≈。
6.设23()()x x C x ϕ=+-,应如何取C 才能使迭代公式1()k k x x ϕ+=具有局部收敛性?
解:设C 为常数,因为23()()x x C x ϕ=+-,所以12()x Cx ϕ'=+,要使迭代公式具有局部收敛性,需00121()x Cx ϕ'=+<,此时即有01121Cx -<+<,也即
010Cx -<<。
即只要C 去满足如上条件的常数,就可以使得迭代公式具有局部收敛性。
7.用牛顿法求方程
3310x x --=在初始值02x =邻近的一个正根,要求3110k k x x -+-<。
解: 因为3310x x --=
所以有3()31f x x x =--,相应的迭代公式为
33122
3121
3333
k k k k k k k x x x x x x x +--+=-=-- 取x 0=2为迭代的初始近似值。
迭代的结果列表如下:
因为3321
0.0001102
x x --=<⨯,符合计算的精度要求,所以
*3 1.8794x x ≈=。
8.用牛顿法解方程1
0c x -=,导出计算数c 的倒数而不用除法的一种简单的迭代公式。
用此公式
求0.324的倒数,设初始值03x =,要求计算有5位有效数字。
解:对于方程10c x -=,有1
()f x c x =-,相应的迭代公式为
212121k
k k k k k
c x x x x cx x +-=-=--。
应用该迭代公式求0.324的倒数,列表计算如下
所以
1
308640324
..≈。
9.设a
k 。
解:设a 为正实数,n 为自然数,由牛顿法,方程0()n f x x a =-=的解为
111
11()()
(1)1[(1)]k k k k n
n n k k k k n n k k
n k n k
k n k
f x x x f x x a nx x a x nx nx n x a nx
a n x n x +----=-
'--+=-=-+=
=-+
由此,则
11
1
2
1
11
1
2
21
11
1
1
1
1
1
1
1
1
1
1
1
1
[()]
lim lim
[()])
[()]
lim
([()])
[()]
lim
([()
k n
k
k k
k n
k
k n
k
k
k n
k
k n
k
k
k n
k
a
n x
n x
a
n x
n x
a
n x
n x
a
n x
n x
a
n n x
x
a
n x
x
+-
+
→∞
-
+-
+
→∞
-
+-
+
→∞
-
-+
=
-+
⎧⎫
-+
⎨⎬
⎩⎭
=
-+
⎧⎫
-+
⎨⎬
⎩⎭
=
-
+2
11
1
2
1
2
1
1
1
1
])
[()lim]
lim
([()lim])
lim
[(
([(
k n
k
k
k
k n
k
k
k
a
n n x
x
a
n x
x
n n
a
n
+-
→∞
+
→∞
-
→∞
→∞
⎧⎫
⎪⎪
-+
⎨⎬
⎪⎪
⎩⎭
=
-+
⎧⎫
-
⎨⎬
⎩⎭
=
-
=
=
10.用快速弦截求方程3310
x x
--=在初始值
2
x=邻近的实根(取
1
1.9
x=,要求精确到3
10-)。
解:因为3310
x x
--=
所以有3
()31
f x x x
=--,相应的迭代公式为
11
1
()
()
()()
k
k k k k
k k
f x
x x x x
f x f x
+-
-
=--
-
取x0=2
因为3431
0.0000102
x x --=<⨯,符合计算的精度要求,所以
*4 1.8794x x ≈=。
指出:
本教程所说快速弦截法是通常所说的弦截法(割线法),而它所说弦截法是通常的单点弦截法。
11、分别用下列方法求方程4cos x x e =在04
x π
=邻近的根,要求有三位有效数字。
(1)用牛顿法,取04
x π
=;
(2)用弦截法,取01,4
2
x x π
π
=
=
;
(3)用快速弦截法,取01,4
2
x x π
π
=
=。
解:方程4cos x x e =变形为4cos 0x e x -=, 则()4cos ,()4sin x x f x e x f x e x '=-=+。
牛顿法、弦截法、快速弦截法公式分别为 (1)牛顿法
1()4cos ()4sin k k
x k k
k k k x k k f x e x x x x f x e x +-=-=-'+; (2)弦截法
1()
(0.785)() 1.81
k k k k k f x x x x f x +=-
-+;
(3)快速弦截法
111()
()()()
k k k k k k k f x x x x x f x f x +--=-
--。