计算方法非线性方程求根
计算方法第7章 非线性方程求根
本章主要内容:
1.区间二分法. 2切线法. 3.弦位法. 4.一般迭代法.
重点、难点
一、区间二分法
区间二分法是求方程f(x)=0根的近似值的常用方法。
基本思想:利用有根区间的判别方法确定方程根的区间[a,b] ,将有根区间平分为二;再利用有根区间的判别方法判断那一个区间是有根区间;重复上述步骤,直到小区间端点差的绝对值小于等于精度要求的数值,则用将上一区间的分半值作为方程的根的近似值。
区间二分法的计算步骤如下: 1.
计算区间端点的函数值f(a) , f(b)(不妨设f(a)<0,f(b)>0);
确定初始有根区间[a,b]. 2.二分有根区间[a,b],并计算)2(
b
a f + 取2
1b a x += 3.判断: 若0)(1=x f ,则方程的根为1x x =*;
若 0)(1>x f ,则有根区间为[]1,x a x ∈* ;令[]],[,111b a x a =
若 0)(1 4. 如果│b-a │<ε(ε为误差限),则方程的根为2 b a x += * ;否则转向步骤2,继续二分有根区间[a 1,b 1],并计算中点值,继续有根区间的判断,直到满足精度要求为止,即│b n -a n │<ε 二分次数的确定:如果给定误差限ε,则需要二分的次数可由公式 12 ln ln )ln(---≥ ε a b n 确定应二分的次数。 例1 用区间二分法求方程0353 =+-x x 在某区间内实根的近似值(精确到0.001) 【思路】参见上述区间二分法的计算步骤 解 ∵f(1.8)=-0.168<0, f(1.9)=0.359>0 ∴f(x)在区间[1.8 ,1.9]内有一个根。 由公式 644.512 ln 001 .0ln 1.0ln 12ln ln )ln(=--=---≥ εa b n 取n=6, 计算结果列表如下: 则方程在区间[1.8,1.9]内所求近似值为x * ≈ x = 1.8328125 区间二分法的优点是计算程序简单,只要f (x )在区间[a,b]上连续,区间二分法就可使用,但区间二分法不能用来求偶次重根,由于区间二分法收敛比较慢,在实际计算中,区间二分法常用来求比较好的含根区间和初始近似值,以便进一步使用收敛更快的迭代法求出更精确的近似值。 迭代序列收敛阶的概念 设迭代序列{}n x 收敛于* x ,如果存在实数1≥p 与正常数c ,使得 c x x x x p n n n =--* *+∞ →1lim ,则称序列{}n x 是p 阶收敛于*x 。 特别地,当1=p 时,称序列{}n x 为线性(一次)收敛; {}n x 为线性收敛时,必须要求1 当2=p 时,称序列{}n x 为平方(二次)收敛; 当21< 收敛阶p 越大,则序列{}n x 与* x 的误差缩减越快,也就是序列{}n x 收敛越快。 二、切线法(牛顿法) 1. 切线法的基本思想:假设方程f(x)=0在区间[a,b]上有唯一根x *,过曲线y= f(x)上的一点(x 0,f(x 0)),作曲线的切线,用此切线与x 轴的交点的横坐标x 1作为方程的根x *的新的近似值, 再过点(x 1,f(x 1)),作曲线的切线,则又得到新的近似值,按此方法进行迭代计算,直到满足精度要求为止。 切线法(牛顿法)的迭代公式为 ,...)1,0() () (1='-=+n x f x f x x n n n n 2.切线法的收敛性 我们利用定理(7.1)来判断切线法的收敛性。定理(7.1)还给出了一个初始值 x 0的选择方法, 定理7.1. 设f (x )在[a ,b ]上存在二阶连续导数,且满足条件 ⑴ f(a )f (b)< 0; ⑵f /(x ) 在[a ,b ]上不等于零 (3)f //(x ) 在[a ,b ]上不变号 则对任意初值x 0∈[a ,b ] ,只要满足f (x 0) f //(x )≥0. 则由切线法迭代公式得到的近似根 序列{}n x 平方收敛于方程f (x )=0在区间[a ,b ]的唯一根x *。 2. 切线法的计算步骤:先判断有根区间[a,b],然后选择初始值x 0(一般地,若f //(x)>0,则选择区间的右端点;若f //(x)< 0,则选择区间的左端点),再建立迭代公式进行计算(列表计算)。 例2 用切线法求例1中方程在[1,2]内根的近似值,精确到0.000001 【思路】根据f(x 0)f // (x)>0在有根区间上选择初始值x 0,代入迭代公式进行计算 解 5 33 2)()(2012)2(,01)2(6)(53)(35)(2 3 111023--='-==∴>=''>==''-='+-=---n n n n n n x x x f x f x x x f f x x f x x f x x x f 代入迭代公式取初始值 计算得 834243185 .1000001.0000000319.034≈*∴<=-x x x 例3 证明 计算3a 的切线法迭代公式为 )2(3121n n n x a x x += + (n=0,1,…) 解 因为计算3a 等同于求方程03 =-a x 的根, 将233)(,)(x x f a x x f ='-=,代入切线法迭代公式得: ,1,0,)(3132 23 1 =+=--=+n x a x x a x x x n n n n n n 三 、弦位法 1. 弦位法的基本思想:假设方程f(x)=0在区间[a,b]上有唯一根x *,在区间[a,b]内的曲线y= f(x)上任取两点作弦,用此弦与x 轴的交点横坐标作为方程根的近似值。按此方法进行迭代计算,直到满足精度要求为止。 弦位法分为单点弦法和双点弦法。 2.单点弦法 建立弦的迭代公式时,固定其中一个点,而另一个点变动的迭代求根 方法。 单点弦法的迭代公式,...)1,0()() ()(1=---=+n x f x f c f x c x x n n n n n (1)单点弦法的收敛性 利用定理7.2判断其收敛性。单点弦法收敛所满足条件和切线法的收敛条件相同,不同的是单点弦法迭代公式所产生的序列是线性收敛于f(x)=0在区间[a,b]上有唯一根x * 。我 们计算时应注意,在选择固定点c 时,也要求满足条件0)()f(x 0.(x)f f(c)0≤''>''x f 。 (2)单点弦法的计算步骤同切线法类似。 3.双点弦法 建立弦的迭代公式时,两个点都变动的迭代求根方法。 双点弦法的迭代公式为: ,...)1,0()() ()(11 1=---=--+n x f x f x f x x x x n n n n n n n (1)双点弦法收敛性 利用定理(7.3)判断。f(x)在[a,b]上满足的条件为: ⑴ f(a)f(b)< 0; ⑵f /(x)≠0 ⑶KR ≤ρ<1,其中K=M 2/2m 1, M 2 = max │f //(x)│, m 1 = min │f /(x)│, R=max {│x 0-x *│,│x 1-x *│}. 则以a,b 为初始值, 由双点弦法迭代公式得到的序列超线性收敛于方程f(x)=0在区间[a,b]的唯一根x *。 (2)双点弦法的计算步骤同切线法类似。但在计算时应注意收敛性的判断和初始值 的选 择。 例4 试导出计算)0(>a a 的单点弦法迭代公式,并用它计算3,准确到6 10-。 解 因为计算)0(>a a 等同于求方程 02 =-a x 的正根, 令 x x f a x x f 2)(,)(2 ='-=,代入单点弦法迭代公式,得: ,1,0,)() ()()(2 2 21=++= ----=--- =+n x c a cx a x x c x c x x f x f c f x c x x n n n n n n n n n n n 例5 分别用单点弦法和双点弦法求方程0133=--x x 在[1,2]内根的近似值, 精确到10-3 【思路】参见单点弦法和双点弦法的计算步骤 解 方法一. 单点弦法 ()得方程根的近似值 代入迭代式取初始值内且在区间内有根 在区间)() ()(,106)(,033)(]2,1[]2,1[0 1)2(,03)1(13)(1023n n n n n x f x f c f x c x x x x x f x x f x f f f x x x f --- ==?=''?-='∴>=<-=--=+ ()()()()()()007432423.0, 878406099.1087483863.0) 087483863.0(1867768595 .12867768595.1087483863 .0,867768595.1890625.0)890625.0(175 .1275.1890625 .0,75.13) 3(11 21332211-==-----=-==-----=-==----- =x f x x f x x f x ()()879378365 .1,10000075196.0,000052236.0)(879378365 .1000623407.0) 000623407.0(1879303169 .12879303169.1000623407.0)(879303169 .1007432423.0) 001130637.0(1878406099 .12878406099.13455544≈≤=--==----- =-==-----=*-x x x x f x x f x 方程的近似根为 方法二. 双点弦法 ()得方程根的近似值 代入迭代式,取且有根内方程在区间)() ()(0)()2(00)()9.1(01)2(0159.0)9.1(2,9.106)(,033)(.0]2,1[0 1)2(, 03)1(13)(11 11023n n n n n n n x f x f x f x x x x x f f x f f f f x x x x f x x f x f f f x x x f --+--- =>''?>''?>=>===>=''>-='=>=<-=--= ()()()(). 879429134.11000009913.0, 879429134.1001086562.0012996164 .0001086562.0881093936 .1879528266.1879528266.1001086562.0, 879528266.1012996164.01 012996164.02 881093936.1881093936.1012996164 .0,881093936.11) 159.0(19 .12243 3443322=≈∴≤=-=--- ===--- ===?--- =*-x x x x x x f x x f x 方程根的近似值为 四、 一般迭代法 一般迭代法的基本思想:若方程f(x)=0在区间[a,b]上有唯一根x *,将方程变形为同解方程x=φ(x ),且φ(x )连续,则建立迭代公式x n+1=φ(x n )(n=0,1,…,)。 设x 0是方程的一个近似根, 将它代入迭代公式进行迭代,求出的一系列近似根,直到满足精度要求为止。 1. 一般迭代法的迭代公式:),,1,0()(1 ==+n x x n n ? 2.一般迭代法的收敛性 建立一般迭代法的迭代公式可以有许多方法,但是有些迭代公式产生的迭代序列不收敛,所以判断迭代公式的收敛性就十分重要。我们利用定理(7.4)判断一般迭代法的收敛性问题。 3. 一般迭代法的计算步骤同切线法类似。计算时也应注意收敛性的判断和初始值 的选择。 例6 设1)(max ),(<'==**x x x φρφ 证明 由 ,1,0)(1==+n x x n n φ ,得到的序列{}n x 收敛于*x 。 证明 由 ,1,0)(1==+n x x n n φ ,)(**=x x φ 两式相减,应用中值定理得 ***1*1*)()()(x x x x x x x x x x n n n n n n n -≤≤-≤-'=-=---ρρξ??? 由1<ρ 得)(*∞→→n x x n 。 例7 用一般迭代法求方程04=--x e x 在区间[0,1]内的根,要求│x n+1-x n │<10-4 【思路】 根据所给方程找一个能表示为x=φ(x )的同解方程,建立迭代式,并 判断方程近似根的敛性.选取初始近似根x 0(一般选有根区间的端点值),然后逐次迭代, 直到满足精度要求为止。 解 203872416.010000094.0, 203872416.041, 203966531.041,203504999.041, 205770346.041,194700195.041 ,25.041 : ),(.00)(,141 41)(]1,0[4141)(64562040 .062035 .052058 .041947 .0325 .020 1101=≈∴<=-== == ==== == =====∴<≤- ='=∴= =*--*+x x x x e x e x e x e x e x e x x x x x x f e x e x e x x n n x n x n x 方程根的近似值为满足精度要求。 求得代入取初始值的唯一根方程方程近似根序列收敛于区间内在该方程迭代公式为,把方程改写为 φφφ