数值计算课后规范标准答案2
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
习 题 二 解 答
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]内有一个根,使用二分法求误差不大于4
1
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 =附近的一个根,设将方程改为下列等价形式,并建立相应的迭代公式:
1221
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 -'=-⨯==<满足局部
收敛性条件,所以迭代公式12
1
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 取满足如上条件的常数,就可以使得迭代公式具有局部
收敛性。
指出:
本题的一般形式为:
设()()x x Cf x ϕ=+,应如何取C 才能使迭代公式1()k k x x ϕ+=具有局部收敛性?
显然,()()x x Cf x ϕ=+是迭代格式1()k k x x ϕ+=相应的迭代函数,因此该迭代格式要求解的方程是()()()0x x x x Cf x f x ϕ=⇒=+⇒=。
也就是说,这是如何选择C ,构造一个求解方程f(x)=0的收敛的迭代格式的问题。
因为()()x x Cf x ϕ=+,所以()1()x Cf x ϕ''=+, 要使迭代格式收敛,需()1()1x Cf x ϕ''=+< 解之得2()0Cf x '-<<,
即C 与()f x '异号,且()2Cf x '<。
下面的讨论利用了本题的特殊条件,求出了具体的结果:
因为23()()x x C x ϕ=+-,所以当2(3)x x C x =+-时,有2(3)0C x -=,则
x =23()()x x C x ϕ=+-的不动点为*x =。
而12()x Cx ϕ'=+, 根据局部收敛性定理,
当
1210
c ϕ'=+<⇒<<; 当
(12(10
C 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..≈。
指出:
如果将方程1
0c x
-=改写为等价的10cx -=,则有1()f x cx =-,相应的迭代公式为
111
k k k cx x x c c
+-=-
= 无法展开迭代。
9.设a
lim
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 +----=-
'--+=-=-+=
=-+
由此,则
1111
11[(1)][(1)]lim 1[(1)(1)]1[(1)(1)]1
[((1)()lim n k n k k k k k n k k n
k k n k k a n x n x ax n a n x n a n x a n n x n --→∞----→∞-+-+==--+-=--+-=---
=111]2(1)
(1)(1)lim 22lim n n k k
k k a n a n x x -++→∞→∞
-⨯---====
指出:
本题中,表面上是k →∞的问题,
但实际上却是k x 1,k k x x +才是极限过程中实际的变量。
本质上。
本题实际上是求极限
11111[(1)][(1)]lim 1
[(1)]
n k n k k k k k n x a n x n x ax n x ax ----+-+==-+=
由于讨论的是0
型不定式,且不定式的分母上有2次的“0”因子,因此两
次应用罗必塔法则。
解二:首先证明一个定理:
定理:设**()0,()0f x f x '=≠,又设f(x)在*x 的某个邻域内具有连续的二阶导数,则牛顿迭代法具有局部收敛性,且有。
**1*2*()
lim ()()k k k
x x f x x x f x +→∞''-='-。
证明:因为()
()()f x g x x f x =-'
所以()2
()()()
()()()f x f x f x g x x f x f x '''⎛⎫'=-= ⎪''⎝⎭
因为f(x)在邻域内具有连续的二阶导数,所以()g x '在邻域内连续,且
()
***
2
*
()()
()0()f x f x g x f x '''=
='
由局部收敛性定理,牛顿迭代法具有局部收敛性。
对()2
()()()
()()()f x f x f x g x x f x f x '''⎛⎫'=-= ⎪''⎝⎭
求导,根据条件有 **
*
()
()()
f x
g x f x ''''=' 由收敛阶定理,若*
()0f x ''≠,则**
*
()
()0()
f x
g x f x ''''=≠',牛顿迭代法二阶收敛,若*
()0f x ''=,则***
()()0()
f x
g x f x ''''==',牛顿迭代法有更高的收敛阶。
因为牛顿迭代法有二阶收敛性,所以
*****1*2*()
()()
()lim ()2!2!2()k k k
f x x x
g x f x f x x x f x +→∞'''''''-==='-。
显然
如果*x 是方程f(x)=0的单根,则*()()()f x x x x ϕ=-,且*()0x ϕ≠。
此时*()()()()f x x x x x ϕϕ''=+-,则**()()0f x x ϕ'=≠,
可见定理中的条件“**()0,()0f x f x '=≠”可以等价替换为“*x 是方程f(x)=0的单根”
对本题来说,
()n f x x a =-
,*x =是方程的单根,
所以
11(),0n n f x nx f n --''==≠
22()(1),(n n f x n n x f n n --''''=-=-
则
2n k k -=-===。
指出:
应用分组分解法进行因式分解,分子、分母约去“0”因子,就可以按连续函数的极限性质求解了。
10.用快速弦截求方程3310x x --=在初始值02x =邻近的实根(取1 1.9x =,要求精确到310-)。
解: 因为3310x x --=
所以有3()31f x x x =--,相应的迭代公式为
111()
()()()k k k k k k k f x x x x x f x f x +--=---
取x 0=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 +--=-
--。
取3位有效数字,分别计算得
补充题 (一)
1、确定方程x 5+x-10=0的根的个数,找出隔根区间。
2、用二分法求方程f(x)=x 3+2x-5=0在[2,3]的根的近似值,要求误差不超过0.005。
3、用二分法求方程f(x)=x 3-2x-5=0在[2,3]的根的近似值,要求误差不超过0.05。
4、用二分法求方程2
()sin 04
x f x x =-=的非零实近似根,使误差不超过10
-2。
5、分析方程()sin 02
x
f x x =-=的根的分布情况,并用二分法求正根的近似值,使误差不超过10-2。
6、估计用二分法求方程f(x)=x 3+4x 2-10=0在[1,2]内的根的近似值,为使误差不超过10-5时所需要的二分次数。
分析与解答
1、令510y x x =+-,
451y x '=+,
显然0y '>,而且函数没有不可导点, 所以,函数在区间(,)-∞∞上是单调增的, 故方程最多有一个根。
因为(0)100,(2)240y y =-<=>,
所以方程在(0,2)区间有一个根,(0,2)即为方程的隔根区间。
2、因为f(2)=7>0,f(3)=28>0,实际上本方程在指定范围内无根。
但如
3、因为f(2)=-1<0,f(3)=16>0321
*0.052222
n n n n n n b a b a x x ----≤===<x *≈2.10
4、画出y=sinx 和2
4
x y =的曲线,可以看出,
两条曲线除了原点外,在第一象限有且只有一个
交点。
交点的横坐标介于1.5与2之间(显然,
π/2≈1.5,sin(π/2)=1,2
()214π
<,所以在π/2f(x)>0,而当x =2时,214
x
=,sinx <1,所以在2点,
f(x)<0。
5、画出y=sinx 和2
x
y =
的曲线,可以看出,两条曲线除了原点外,在第一象限有且只有一个交点。
交点的横坐标介于1.8与1.9之间(根据图像,用计算
器计算估计,当sinx 的值从大于2
x
的值变为小于时,隔根区间就找到了)。
要求│x *-x n │≤0.01,可以求出用二分法计算的次数。
在区间[1.8,1.9]上,因为
1.9 1.80.1
*0.012222
n n n n n n b a b a x x ----≤===<
所以,n=4。
具体计算过程如下
*4 指出:
确定求根区间和根的初始近似值,应用MATLAB 工具,用交轨法是重要的途径,可以先确定大致范围,再缩小区间重新画图精细化。
在用普通的手工画草图的方法画交轨图的时候,可以借助于计算器使得隔根区间更短,但这种方法只对简单问题有效。
6、│x *-x n │≤10-5,即
5
2111022
n n
--=≤ ,所以 2n ≥105。
因为215=32768,216=65537,217=131072,所以n=17。
(二)
1、对于方程3x 2-e x =0,为求最大正根与最小正根的近似值,试分别确定迭代函数g(x)及区间[a,b],使得当x 0∈[a,b]时,相应的迭代过程x k+1=g(x k )收敛到要求的根。
2、证明:当x 0=1.5时,迭代法
1k x +=
和1k x += 都收敛于方程f(x)=x 3+4x 2-10=0在区间[1,2]内的唯一实根x *,分别用上述迭代法求满足精度│x k+1-x k │≤10-5的近似根。
3、为求方程f(x)=x 3-x 2-1=0在x 0=1.5附近的一个根,可将方程改写成下列等价形式,并建立相应的迭代公式
[1]改写成21
1x x
=+,迭代公式为1211k k x x +=+;
[2]改写成x 3=1+x 2,迭代公式为1k x +=
[3]改写成21
1
x x =
-,迭代公式为1k x += 试分析每一种迭代公式的收敛性。
分析与解答
1、根据3x 2和e x 的图像可知,方程3x 2-e x =0在实数域上有三个根,分别在区间(-1,0),(0,1),(3,4)内。
其最大正根在[3,4]区间,最小正根在[0,1]区间。
取迭代函数g(x)=ln3x 2,可以得到最大正根,而取迭代函数
()g x =
2、两种迭代法的迭代函数分别在区间[1,2]和[1,1.5]上满足定理2(不动点原理)的条件,故当x 0=1.5时两种迭代法都收敛,且分别迭代9次和25,都可得到近似根1.36523。
我们讨论第一种迭代法,用定理2证明。
它的迭代函数为()g x =。
首先,g(x)是一个减函数,当x=1时,(1)g =x =2时,
(2)g =所以当x ∈[1,2]时,1<g(2)≤g(x)≤g(1)<2,即g(x)∈[1,2]。
其次,()g x '=,显然这是一个增函数,当x =2时,其函数
值为
(2)g '==,所以,g /(x)< g /(2)<1。
指出:只给出了含根区间,就只能用定理2证明。
3、[1]给出了初始近似值,也即知道了精确根的大致位置,可以用定理4(局部收敛性定理)证明。
由题意,方程有实根。
下面证明g /(x)连续和g /(x *)<1(x *是方程的精确根)。
方程2312
()1,()g x g x x x
'=+=,可见g /(x)在1.5及其附近是连续减函数,因
为g(1.5)= -0.59,1.5又在x *的邻域内,由函数g /(x)的连续性,g /(x *)<1,所以此迭代法具有局部的收敛性。
指出:
一般地说,用定理2(不动点原理)证明只要利用函数的单调性与区间上的最值就可以讨论,而用定理4(局部收敛性定理)则需要用到函数的连续性。