习 题 二 解 答
1.用二分法求方程x3-2x2-4x-7=0在区间[3,4]内的根,精确到10-3,即
1误差不超过103。
2分析:精确到10-3与误差不超过10-3不同。
解:因为f(3)=-10<0,f(4)=9>0,所以,方程在区间[3,4]上有根。 由
bnanba4311nnn103 22222有2n-1>1000,又为210=1024>1000, x*xn所以n=11,即只需要二分11次即可。 列表讨论如下: n 1 2 3 4 5 6 7 8 9 10 11 an 3 3.500 3.500 3.625 3.625 3.625 3.625 3.625 3.629 3.631 3.631 bn 4 4 3.750 3.750 3.688 3.657 3.641 3.633 3.633 3.633 3.632 xn 3.500 3.750 3.625 3.688 3.657 3.641 3.633 3.629 3.631 3.632 3.632 f(xn)的符号 - + - + + + + - - + -
x*≈x11=3.632。 指出:
(1)注意精确度的不同表述。精确到10-3和误差不超过10-3是不同的。 (2)在计算过程中按规定精度保留小数,最后两次计算结果相同。 如果计算过程中取4位小数,结果取3位,则如下表:
n 1 an 3 bn 4 xn 3.5000 f(xn)的符号 - ,.
2 3 4 5 6 7 8 9 10 11 3.5000 3.5000 3.6250 3.6250 3.6250 3.6250 3.6250 3.6290 3.6310 3.6310 4 3.7500 3.7500 3.6875 3.6563 3.6407 3.6329 3.6329 3.6329 3.6320 3.7500 3.6250 3.6875 3.6563 3.6407 3.6329 3.6290 3.6310 3.6320 3.6315 + - + + + + - - + -
(3)用秦九韶算法计算f(xn)比较简单。
1*.求方程x3-2x2-4x-7=0的隔根区间。 解:令yx32x24x7, 则y3x24x4(3x2)(x2)
2当y3x24x4(3x2)(x2)0时,有x1,x22。
3函数单调区间列表分析如下: x y/ y (-∞,+ 2) 32 30 2(,2) 3- 2 0 -15 (2,+∞) + 149 27
214920,y(2)150,所以方程在区间(,2)上无根; 因为y()3273214920,而函数在(,)上单调增,函数值不可能变号,所以因为y()3273方程在该区间上无根;
因为y(2)150,函数在(2,+∞)上单调增,所以方程在该区间上最多有一个根,
,.
而(3)=-10<0,y(4)=9>0,所以方程在区间(3,4)有一个根。 所以,该方程有一个根,隔根区间是(3.4)。
12.证明1xsinx0在[0,1]内有一个根,使用二分法求误差不大于1042的根,需要迭代多少次?
分析:证明方程在指定区间内有一个根,就是证明相应的函数在指定区间有至少一个零点。
解:令f(x)1xsinx,
因为f(0)10sin010,f(1)11sin1sin10, 则f(0)f(1)0,
由零点定理,函数f(x)在[0,1]区间有一个根。 由
bnanba1011nnn104 22222有2n-1>10000,又为210=1024,213=8192<10000,214=x*xn16384>10000
所以n=15,即需要二分15次。 指出:
要证明的是有一个解而不是唯一解,因此不必讨论单调性。 3.试用迭代公式xk1根,要求精确到105。
20,x01,求方程x32x210x200的2xk2xk101分析:精确到105即误差不超过105
2解:令f(x)x32x210x20 列表进行迭代如下:
xk f(xk) ,.
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 指出:
1 1.53846 1.29502 1.40182 1.35421 1.37530 1.36593 1.37009 1.36824 1.36906 1.36870 1.36886 1.36879 1.36882 1.36881 1.36881 -7 3.75964 -1.52380 0.70311 -0.30667 0.13721 -0.06067 0.02705 -0.01198 0.00531 -0.00228 0.00110 -0.00038 0.00025 3.992105 3.992105 精确到105可以从两个方面判定。第一,计算过程中取小数到105位,最后两个计算结果相同,终止计算。第二,计算过程中取小数到106,当
1xk1xk105终止计算。
2本题采用第一种方法。
,.
4.将一元非线性方程2cosxex0写成收敛的迭代公式,并求其在x00.5附近的根,要求精确到102。
解:2cosxex0改写为2cosxex2cosx1,设 ex2cosxg(x)x1 xexx有
2cosx2cosx110,则 xxee2sinxe2cosxe2(sinxcosx)g(x)111(ex)2exxx22sin(xex)4
在x00.5处,因为
g(0.5)122sin(0.5e0.540.96151
2cosxk1在x00.5的邻域内收敛。 exk)所以迭代法g(xk1)xk列表迭代如下:
0 1 2 3
xk 0.5 0.71 0.69 0.69 此时2cos0.69e0.690.00614。
5.为求方程x3x210在x01.5附近的一个根,设将方程改为下列等价形式,并建立相应的迭代公式:
,.
(1)x1311,迭代公式x1;k12x2xk2123k(2)x1x,迭代公式xk1(1x);
11(3)x2,迭代公式xk1.1x1(xk1)2试分析每种迭代公式的收敛性,并取一种公式求出具有4位有效数字的近似值。
解:(1)因为x111,所以迭代函数为,则 g(x)122xx122g(x)(2)(x2)2x3,g(1.5)21.5331满足局部
x1.53.3751具有局部收敛性。 xk2123收敛性条件,所以迭代公式xk11123(2)因为x(1x),所以迭代函数为g(x)(1x),则
121122323g(x)(1x)2xx(1x)332x3(1x)223,
g(1.5)123k21.53(11.5)2230.4561满足局部收敛性条件,所以迭代公式
xk1(1x)具有收敛性。
(3)因为x1(x1)12,所以迭代函数为g(x)1(x1)12,则
13111g(x)(x1)2(x1)2,
2231g(1.5)(1.51)22120.5321.4141不满足收敛性条件,所以迭代公式
xk11(xk1)12不具有收敛性。
1列表计算如下: xk2用迭代公式xk11
,.
0 1 2 3 4 5 6 7 8 9 10 11
所以,方程的近似根为x*1.465。
6.设(x)xC(x23),应如何取C才能使迭代公式xk1(xk)具有局部收敛性?
解:设C为常数,因为(x)xC(x23),所以(x)12Cx,要使迭代公式具有局部收敛性,需(x0)12Cx01,此时即有112Cx01,也即
1Cx00。即只要C取满足如上条件的常数,就可以使得迭代公式具有局部
xk 1.5 1.444 1.480 1.457 1.471 1.462 1.468 1.464 1.467 1.465 1.466 1.465 收敛性。
,.
指出:
本题的一般形式为:
设(x)xCf(x),应如何取C才能使迭代公式xk1(xk)具有局部收敛性?
显然,(x)xCf(x)是迭代格式xk1(xk)相应的迭代函数,因此该迭代格式要求解的方程是x(x)xxCf(x)f(x)0。也就是说,这是如何选择C,构造一个求解方程f(x)=0的收敛的迭代格式的问题。
因为(x)xCf(x),所以(x)1Cf(x), 要使迭代格式收敛,需(x)1Cf(x)1 解之得2Cf(x)0,
即C与f(x)异号,且Cf(x)2。
下面的讨论利用了本题的特殊条件,求出了具体的结果:
因为(x)xC(x23),所以当xxC(x23)时,有C(x23)0,则
x3,即函数(x)xC(x23)的不动点为x*3。
而(x)12Cx, 根据局部收敛性定理, 当(3)12C311c0时,迭代格式收敛到3; 31时,迭代格式收敛到3。 3当(3)12C(3)10c7.用牛顿法求方程x33x10在初始值x02邻近的一个正根,要求
xk1xk103。
解: 因为x33x10
所以有f(x)x33x1,相应的迭代公式为
,.
33xk3xk12xk1 xk1xk223xk33xk3取x0=2为迭代的初始近似值。迭代的结果列表如下:
k xk 0 2 1 1.8889 2 1.8795 3 1.8794
1因为x3x20.0001103,符合计算的精度要求,所以
2x*x31.8794。
18.用牛顿法解方程c0,导出计算数c的倒数而不用除法的一种简单
x的迭代公式。用此公式求0.324的倒数,设初始值x03,要求计算有5位有效数字。
11解:对于方程c0,有f(x)c,相应的迭代公式为
xx1cxkxk1xk2xkcxk2。
12xk应用该迭代公式求0.324的倒数,列表计算如下
0 1 2 3
13.0864。 0.324指出:
xk 3 3.084 3.0864 3.0864 所以
,.
如果将方程代公式为
1c0改写为等价的cx10,则有f(x)cx1,相应的迭xxk1xkcxk11 cc无法展开迭代。
9.设a为已知数,试用牛顿法导出求na的迭代公式,并求极限
axk1。
k(nax)2klim解:设a为正实数,n为自然数,由牛顿法,方程f(x)xna0的解为
nxk1xkf(xk)f(xk)
nnnxkanxkxkaxkn1n1nxknxk(n1)xanxnkn1k
1a[(n1)xkn1]nxk此即求na的迭代公式。 由此,则
1a1nna[(n1)x]a[(n1)xkax1]kn1nkaxk1nxknlimnlimlim2nk(ax)2kk(axk)(naxk)2kn1n1[(n1)a(1n)x1]knlimk2(1)(naxk)1n[(n1)a(1n)xk]limnk2(naxk)1[(a(1n)(n)xkn1]limnk2(1)a(1n)a(1n)a(1n)1nlimn1nn1nk2x1n2limxk2(a)2akk
指出:
,.
本题中,表面上是k的问题,但实际上却是xkna的问题,xk,xk1才是极限过程中实际的变量。
本质上。本题实际上是求极限
1an1nna[(n1)x]a[(n1)xkax1]kn1nkaxk1nxknlimnlimlim22k(ax)kk(naxk)(naxk)2kn1a[(n1)xax1n]nlimxna(nax)20由于讨论的是型不定式,且不定式的分母上有2次的“0”因子,因此两
0次应用罗必塔法则。
解二:首先证明一个定理:
定理:设f(x*)0,f(x*)0,又设f(x)在x*的某个邻域内具有连续的二阶导数,则牛顿迭代法具有局部收敛性,且有。
xk1x*f(x*)。 lim*k(xx*)2f(x)kf(x)证明:因为g(x)x
f(x)f(x)f(x)f(x)所以g(x)x 2f(x)f(x)因为f(x)在邻域内具有连续的二阶导数,所以g(x)在邻域内连续,且
g(x)*f(x*)f(x*)f(x)*20
由局部收敛性定理,牛顿迭代法具有局部收敛性。
f(x)f(x)f(x)对g(x)x求导,根据条件有 2f(x)f(x)f(x*)g(x) *f(x)*f(x*)0,牛顿迭代法二阶收 由收敛阶定理,若f(x)0,则g(x)*f(x)f(x*)**0,牛顿迭代法有更高的收敛阶。 敛,若f(x)0,则g(x)*f(x)**因为牛顿迭代法有二阶收敛性,所以
f(x*)xk1x*g(x*)f(x*)f(x*)。 lim*k(xx*)22!2!2f(x)k,.
显然
如果x*是方程f(x)=0的单根,则f(x)(xx*)(x),且(x*)0。 此时f(x)(x)(xx*)(x),则f(x*)(x*)0,
可见定理中的条件“f(x*)0,f(x*)0”可以等价替换为“x*是方程f(x)=0的单根”
对本题来说,
f(x)xna,x*na是方程的单根,
所以
f(x)nxn1,f(na)n(na)n10 f(x)n(n1)xn2,f(na)n(n1)(na)n2
则
n(n1)(na)n2n11nlimnlimn。 n1nnk(ax)2k(xna)22n(a)2a2akknaxk1xk1na
指出:
应用分组分解法进行因式分解,分子、分母约去“0”因子,就可以按连续函数的极限性质求解了。
10.用快速弦截求方程x33x10在初始值x02邻近的实根(取x11.9,要求精确到103)。
解: 因为x33x10
所以有f(x)x33x1,相应的迭代公式为
f(xk)xk1xk(xkxk1)
f(xk)f(xk1)取x0=2为迭代的初始近似值。迭代的结果列表如下:
k 0 1 2 3 4
xk 2 1.9 1.8811 1.8794 1.8794 xk-xk-1 -0.1 -0.0189 -0.0017 f(xk) 1 0.159 0.0130 0.0001 f(xk)- f(xk-1) -0.841 -0.146 -0.0129 ,.
1因为x4x30.0000103,符合计算的精度要求,所以
2x*x41.8794。
指出:
本教程所说快速弦截法是通常所说的弦截法(割线法),而它所说弦截法是通常的单点弦截法。
11、分别用下列方法求方程4cosxex在x0数字。
(1)用牛顿法,取x0(2)用弦截法,取x04邻近的根,要求有三位有效
4;
4,x12;
(3)用快速弦截法,取x04,x12。
解:方程4cosxex变形为ex4cosx0, 则f(x)ex4cosx,f(x)ex4sinx。 牛顿法、弦截法、快速弦截法公式分别为 (1)牛顿法
f(xk)exk4cosxk; xk1xkxkxkf(xk)e4sinxk(2)弦截法
xk1xkf(xk)(xk0.785);
f(xk)1.81(3)快速弦截法
xk1xkf(xk)(xkxk1)。
f(xk)f(xk1)取3位有效数字,分别计算得
,.
xk k 牛顿法 0 1 2 3 4 5 6
补充题 (一)
1、确定方程x5+x-10=0的根的个数,找出隔根区间。
2、用二分法求方程f(x)=x3+2x-5=0在[2,3]的根的近似值,要求误差不超过0.005。
3、用二分法求方程f(x)=x3-2x-5=0在[2,3]的根的近似值,要求误差不超过0.05。
x24、用二分法求方程f(x)sinx0的非零实近似根,使误差不超过10
4-2。
弦截法 0.785 1.57 1.33 1.40 1.38 1.39 1.38 快速弦截法 0.785 1.57 1.33 1.38 1.40 1.39 1.39 0.785 1.59 1.41 1.39 1.39 5、分析方程f(x)sinx值,使误差不超过10-2。
x0的根的分布情况,并用二分法求正根的近似26、估计用二分法求方程f(x)=x3+4x2-10=0在[1,2]内的根的近似值,为使误差不超过10-5时所需要的二分次数。
分析与解答
1、令yx5x10,
y5x41,
,.
显然y0,而且函数没有不可导点, 所以,函数在区间(,)上是单调增的, 故方程最多有一个根。
因为y(0)100,y(2)240,
所以方程在(0,2)区间有一个根,(0,2)即为方程的隔根区间。 2、因为f(2)=7>0,f(3)=28>0,实际上本方程在指定范围内无根。但如果不加判定,也可以计算出一个值来。所以,用二分法求方程的根必须先行判定。要特别注意的是,完整的二分法的过程是,第一步代入初值,第二步判断是否有解,第三步在有解的前提下求出解来。不进行判断就形式地套用二分法的过程是不可以的,同样地,如果因为无解就放弃讨论也是不正确的。 3、因为f(2)=-1<0,f(3)=16>0,所以方程在区间上有解。 baba321x*xnnnnnn0.05,所以,2n>20,n=5。 2222x*≈2.10
x24、画出y=sinx和y的曲线,可以看出,
4两条曲线除了原点外,在第一象限有且只有一个
交点。交点的横坐标介于1.5与2之间(显然,
()2π/2≈1.5,sin(π/2)=1,21,所以在π/2点, 42x
f(x)>0,而当x=2时,1,sinx<1,所以在2点,
4
f(x)<0。
x
的曲线,可以看出,两条曲线除了原点外,在第一2
象限有且只有一个交点。交点的横坐标介于1.8与1.9之间(根据图像,用计算
x器计算估计,当sinx的值从大于的值变为小于时,隔根区间就找到了)。
2要求│x*-xn│≤0.01,可以求出用二分法计算的次数。
5、画出y=sinx和y
在区间[1.8,1.9]上,因为
baba1.91.80.1x*xnnnnn0.01
222n2所以,n=4。 具体计算过程如下
,.
n 1 2 3 4 an 1.8 1.85 1.875 1.8875 bn 1.9 1.9 1.9 1.9 xn 1.85 1.875 1.8875 1.89 f(xn)的符号 + + + + 所以,x*≈x4=1.89 指出:
确定求根区间和根的初始近似值,应用MATLAB工具,用交轨法是重要的途径,可以先确定大致范围,再缩小区间重新画图精细化。在用普通的手工画草图的方法画交轨图的时候,可以借助于计算器使得隔根区间更短,但这种方法只对简单问题有效。
2115 ,所以 2n≥105。 10nn22 因为215=32768,216=65537,217=131072,所以n=17。
6、│x*-xn│≤10-5,即
(二)
1、对于方程3x2-ex=0,为求最大正根与最小正根的近似值,试分别确定迭代函数g(x)及区间[a,b],使得当x0∈[a,b]时,相应的迭代过程xk+1=g(xk)收敛到要求的根。
2、证明:当x0=1.5时,迭代法 xk11013 和xk1 10xk24xk都收敛于方程f(x)=x3+4x2-10=0在区间[1,2]内的唯一实根x*,分别用上述迭代法求满足精度│xk+1-xk│≤10-5的近似根。
3、为求方程f(x)=x3-x2-1=0在x0=1.5附近的一个根,可将方程改写成下列等价形式,并建立相应的迭代公式
11[1]改写成x12,迭代公式为xk112;
xkx2[2]改写成x3=1+x2,迭代公式为xk131xk;
[3]改写成x21,迭代公式为xk1x11。 xk1试分析每一种迭代公式的收敛性。
,.
分析与解答
1、根据3x2和ex的图像可知,方程3x2-ex=0在实数域上有三个根,分别在区间(-1,0),(0,1),(3,4)内。其最大正根在[3,4]区间,最小正根在[0,1]区间。取迭代函数g(x)=ln3x2,可以得到最大正根,而取迭代函数
g(x)ex3,可以得到最小正根。
2、两种迭代法的迭代函数分别在区间[1,2]和[1,1.5]上满足定理2(不动点原理)的条件,故当x0=1.5时两种迭代法都收敛,且分别迭代9次和25,都可得到近似根1.36523。
我们讨论第一种迭代法,用定理2证明。它的迭代函数为g(x)10。 4x首先,g(x)是一个减函数,当x=1时,g(1)2,当x=2时,g(2)所以当x∈[1,2]时,1<g(2)≤g(x)≤g(1)<2,即g(x)∈[1,2]。
其次,g(x)值为 g(2)1021(42)35,所以,g/(x)< g/(2)<1。 4321021(4x)35。3,显然这是一个增函数,当x=2时,其函数
指出:只给出了含根区间,就只能用定理2证明。
3、[1]给出了初始近似值,也即知道了精确根的大致位置,可以用定理4(局部收敛性定理)证明。
由题意,方程有实根。下面证明g/(x)连续和g/(x*)<1(x*是方程的精确根)。
12方程g(x)12,g(x)3,可见g/(x)在1.5及其附近是连续减函数,因
xx为g(1.5)= -0.59,1.5又在x*的邻域内,由函数g/(x)的连续性,g/(x*)<1,所以此迭代法具有局部的收敛性。
指出:
一般地说,用定理2(不动点原理)证明只要利用函数的单调性与区间上的最值就可以讨论,而用定理4(局部收敛性定理)则需要用到函数的连续性。
因篇幅问题不能全部显示,请点此查看更多更全内容