视频1 视频21 视频41 视频61 视频文章1 视频文章21 视频文章41 视频文章61 推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37 推荐39 推荐41 推荐43 推荐45 推荐47 推荐49 关键词1 关键词101 关键词201 关键词301 关键词401 关键词501 关键词601 关键词701 关键词801 关键词901 关键词1001 关键词1101 关键词1201 关键词1301 关键词1401 关键词1501 关键词1601 关键词1701 关键词1801 关键词1901 视频扩展1 视频扩展6 视频扩展11 视频扩展16 文章1 文章201 文章401 文章601 文章801 文章1001 资讯1 资讯501 资讯1001 资讯1501 标签1 标签501 标签1001 关键词1 关键词501 关键词1001 关键词1501 专题2001
第2章 方程的近似解法
2025-09-24 11:11:18 责编:小OO
文档
第二章    方程求根

在许多实际问题中,常常会遇到方程f(x)=0求解的问题。当f(x)为一次多项式时,f(x)=0称为线性方程,否则称为非线性方程。对于非线性方程,由于f(x)的多样性,求其根尚无一般的解析方法可以使用,因此研究非线性方程的数值解法是十分必要的。

 本章主要介绍求非线性方程根的一些常用方法。它们是增值寻根法、二分法、迭代法、牛顿法及割线法。这些方法均是知道根的初始近似值后,进一步把根精确化,直到达到所要求的 精度为止。也即求非线性方程根的数值方法。 

第一节第一节   增值寻根法与二分法 

2.1.1 增值寻根法 

   设非线性方程f(x)=0的根为,增值寻根法的基本思想是,从初始值开始,按规定 的一个初始步长h来增值。令 =+h(n=0,1,2,…),同时计算f()。 在增值的计算过程中可能遇到三种情形:

             (1) f()=0,此时即为方 程的根。 

(2) f()和f()同符号。这说明区间[, ]内无根。 

(3) f()和f()异号, 即有  

f()·f()<0   

此时当f(x)在区间[, ]上连续时,方程f(x)=0在[, ] 一定有根。也即我们用增值寻根法找到了方程根的存在区间,或均可以视为根的近似值。下一步就是设法在该区间内寻找根 更精确的近似值,为此再用增值寻根法 把作为新的初始近似值,同时把步长缩小,例如选新步长,这 样会得到区间长度更小的有根区间,从而也得到使 f(x) 更接近于零的,作为更 精确的近似值,若精度不够,可重复使用增值寻根法,直到有根区间的长度|-|<(为所要求的精度)为止。此时f()或f()就可近似认为是零。或就是满足精度的方程的近似根(如图2-1). 

 

                         2—1

 

例1  用增值寻根法求方程 f(x)=-10=0的有根区间。

解   取=-4,h=1,则计算结果如下表2-1:

     表 2-1

x-4-3-2-1012
f(x)-10-1-2-7-10-514
 

所以f(x)=0的有根区间为(1,2).再取=1,h=0.1,计算结果如表2-2:  

 

    表2-2

x11.11.21.21.4
f(x)-5-3.829-2.512-1.0430. 584
 

所以 f(x)=0 更进一步的有根区间为(1.3,1.4)  

 

2.1.2 二分法 

 

   设f(x)在区间[a,b]上连续,且f(a)·f(b)<0,则由连续函数性质知,方程f(x)=0在(a ,b)内至少有一实根,为以下讨论方便,设(a,b)内仅有唯一实根。

 二分法的基本思想 就是逐步对分区间[a,b],通过判断两端点函数值乘积的符号,进一步缩小有根区间,将有根区间的长度缩小到充分小,从而求出满足精度的根的近似值,如图。

                  2-2

 

具体做法 如下 : 

用区间 [a,b]的中点平分区间,并计算f(),同时记(,)=(a,b),如果恰好有f()=0,则我们已经找到方程的根= 。如若不然,f()≠0,如果f()·f()<0,则记(,)=(, ),如果f()· f()<0,则记(,)=(, ),在后两种情形区间(,)为新的有根区 间。它包含在旧的有根区间(,)内,其区间长度是原区间的一半。对区间(,)施行同样的办法。即平分区间,求中点判断函数值乘积的符号,得到新的有根区间( ,),它包含在区间(,)内,其区间长度是(,)的,(,)的。如此重复n次,如果还没有找到方程的精确根,此时我们得到方程的有根区间序列:   (,),(,),…,(),…  它满足  (,) (, ) …() … f()f()<0 -= ,n=1,2,… n-1    当n充分大时,()的长度缩小到充分小,此时 它的中点与夹在与之间,它们的距离也充分小,且序列{}满足 : 上式表明    =(2)  即 序 列{ }以等比数列的收敛速度收敛于。同时也表明序列{}是的一个 近似值序列。因此对任意给定的精度<0,总存在n, 使此时,我们可以取作为的近似值,即可满足 精度 。 

例2  用二分法求方程 f(x)==0 在[1,2]内的一个实根,且要求满足精度    

解   用二分法计算结果如表2-3: 

n

f()

11.02.01.52.375
21.01.51.25-1.79687
31.251.51.3750.16211
41.251.3751.3125-0.84839
51.31251.3751.34375-0.35098
61.343751.3751.359375-0.091
71.3593751.3751. 3671875          0.03236
81.3593751.36718751.36328125-0.03215
91.363281251.36718751.3652343750.000072
101.363281251.3652343751.3257813-0.01605
111.32578131.3652343751.3746094-0.00799
 

迭代11次,近似根 =1.3746094即 为所求,其误差这种方法的优点是简单,对 f(x) 只要求连续。它的收敛速度与 比值为的等比级数相同,它的局限性是只能用于求实根,不能用于求 复根及偶数重根。 

 

 

迭代法的基本思想 

 

由函数方程f(x)=0,构造一个等价方程:x=(1) 从某个近似根出发,令, n=0,1,2,… (2)  可得到序列{},若{}收敛,即 lim=只要连续,有 也即 从而可知是方程(1)的根,也就是f(x)=0的根。此时{}就是 方程(1)的一个近似解序列,n越大,的近似程度就越好。若{}发散,则迭代 法失败。 

例1用迭代法求方程f(x)=-10=0在[1,2 ]内的一个近似根,取初始近似值. 

表2-4  

n(1)(2)(3)(4)
01.51.51.51.5
1-0.8750.81651.286953771.34839973
26.7322.99691.402540801.36737637
3-469.7(-8.65

1.345458381.395701
41.03

 1.375170251.365275
5  1.360094191.36522559
6  1.367846971.365223058
7  1.363887001.36522994
8  1.365916731.36523002
9  1.3878221.36523001
10  1.36541006 
15  1.36522368 
20  1.36523024 
23  1.36522998 
25  1.36523001 
 

解原方程的等价方 程可以有以下不同形式: (1)(2) (3) (4)  对应的迭代公式有:  (1)  (2 )  (3)  (4) 取,列表计算如表2-2。  与上节二分法比较,(3)、(4)都得到较好的结果 ,而用二分法达到同样的精度,需要迭代27次,同时也看出迭代函数构造不同,收敛速度也不尽相同,迭代函数构造不当(如(1),(2)),序列{}就不收敛。

 

二  迭代法的几何意义 

 以上可以看到迭代法可能收敛,也可能不收敛。一般来说从f(x)=0,构造不止一种,有的收敛,有的不收敛,这取决于的性态。方程x=的根,在几何上就是直线  y=x 与曲线y=交点的横坐标,如图2-3所示。  

     

         (a)                      (b)

 

(c)                    (d) 

图2-3中(1)、(2)收敛,(3)、(4)发散。 

三  迭代法收敛的条件 

定义1   如果在根的某个邻域B= ∈B,迭代过程,n=0,1,2,…收敛,则 称迭代过程在附近局部收敛。 

定理1  设=(),在的某个邻域B内连续,并且||≤q<1,则对任何 ∈B,由迭代公式决定的迭代序列{}收敛于。

且|-|≤(3)

|-|≤(4) 

证:由拉格朗日中值定理,存在B,使 由已知 ||≤q ,从而得  |-|≤q||≤…≤|- | 

所以  这样我们就证明了{}收敛于 。  

再由拉格朗日中值定理,存在  ,使 ==()所以 ||≤q||≤…≤q|| (5)    

又由于 ||=|( )+() +…+()| ≤||+||+…+||

所以||≤(q+q +…+q+1)||=||

令p→+∞,有 |-|≤| | 

也即|-|≤| |   这样(4)式得证。

再由(5)得|-|≤ ||   这样(3)式也得证。 

这个定理是一个很实用的收敛定理。一方面它可以判定我们所构造的迭代函数是否收敛。另一方面(3)式还可以估计迭代次数。但结果偏保守,次数也偏大,实际中很少用。通常由(4)式,当 ||<(为给定精度)时,认为|-|<   就是满足精度的一个近似解了。 

定理2〖HTSS〗对于方程 x=,如果满足 (1)对任意x∈[ a,b],有∈[a,b] (2)对任意x∈[a,b],有|(x) |≤q<1 则对任意x∈ [a,b],迭代x =(x)所决定的序列{x}收敛于x=(x)的根x,且( 3)、(4)式也都成立。证明与定理1相仿,故略去。以上两定理中的条件要严格验证都较 困难,实用时常用以下不严格的标准。 有根区间[a,b]较小,对某一x∈[a,b],| (x) |明显小于1,由(x)连续性知在的x某领域内|(x)|也小于1,则迭 代收敛。  

例2  考察例1中四种迭代法在根附近的收敛情况,取根的近 似 值为x=。 解   (1) 

   17.75>1不收敛

(2)     5.128>1不收敛〖ZK〗〗  (3)              0.656<1  收敛

 (4)         0.122<1收敛) 上例说明值越小,收敛速度就越快。  

四 迭代法的收敛速度 用迭代法求方程的近似根,我们不仅要构造适当的要求它收敛,而且还需要知道它的收敛速度。关于收敛速度,有如下定义: 

定义2  设序列{x}收敛于,令 = - x,若存在某实数p≥1 及正常数C, 使(6)  

则称序列{x}阶收敛。如果序列{x}是由=(x) 产生的,且p阶收敛,则称这种迭代过程是p阶收敛的。   

当p=1 ,且C <1时,称为线性收敛; 当p=2时,称为平方收敛(或二次收敛); 当1同前面一样,设, =(x) ,=() 则有-=(- x) (在在与x之间)  所以=因而=||(n→∞)  若 0<<1,则迭代过程为线性收敛。 若=0,由泰勒 展开得  (x)=()+   设() ≠0,则-=(x)-()=从而〖→>0    (n→∞)  此时迭代过程为二阶收敛。 

定 理3  设在x=的根邻近有连续的p阶导数,当||<1,且 ()≠0 时,迭代过程=( x)为线性收敛;而当()=0, ()≠0时为二阶收敛。

一般来说,若()=()=…=()=0,而()≠0,则称=(x)在附近为p阶收敛。 

第三节  迭代收敛的加速 

从f(x)=0构造出的迭代格式x=(x)可能收敛也可能不收敛,在收敛的情形,收敛速度也取决于|(x)|的大小,当|(x)|接 近于1时,收敛可能很慢。后两种情形都影响迭代法的应用。能否从 x=(x) 出发构造出 新的迭代形式,使收敛速度加快呢? 

一  松驰法 对x=(x)引入一个任意常数作为参数,并假设≠-1,在方程两边加上x,得(1+)x=x+(x)  于是 x=(x) (1)

显然方程 (1)与方程x=(x) 等价,若令(x)=(x),(1)可写成  x=(x)    (2)  

为了使得用x=(x)作迭代比用x=( x)作迭代收敛的更快,我们希望 |(x)|比|(x)|更小,又由于 

  (x)=(3)  

若(x)连续,则当x在根x*附近时,  (x)也在(x*)附近,为此选取=-(x*)。这样可以使 得 |(x)|较小。但在求解过程中x*未知,故用x来代替,只要-()≠-1 ,记,于是代入(1)有松弛法迭代公式:    x (n=0,1,2,…) (4) 

称为松弛因子。松弛法的加速效果是明显的,甚至不收敛的迭代函数经加速后一般也能获得收敛。 

二 埃特金方法 

用松弛法计算时,要先算(x),在使用时有时不太方便,假若在求 得x以后,先求出  和再利用和构造格式-由此得到埃特金(Altk en)公式:

=   =()     -

(n=0,1, 2,…)    (5)  

它的加速效果也十分明显。 

例1  分别用松弛法、 埃特金法求方程-10=0在初 值附近的一个根,取迭代格式解用松弛法计算,取

因此松弛法的迭代公式为     n=0,1,2,… 

 列表计算如下: 

表2- 3

n0123
0.08036860.8871231410.887130869 
1.51.39539161.3652300121.365230013
 

用埃特金方法计 算,迭代格式为  

n=0,1,2,…   

列表计算如下: 

表2-4 

n0123
0.08036860.8871231410.887130869 
1.51.39539161.3652300121.365230013
 

与上节例1中(3)与(4)相比收敛 速度明显加

第四节第四节            牛顿法 

解非线性方程 f(x)=0 的牛顿(Newton) 法,就是将非线性方程线性化的一种方法。它是解代数方程和超越方程的有效方法之 一。 

一  牛顿法的基本思想 

把非线性函数f(x)在处展开成 泰勒级数

  f(x)=f()+(x-)f′()+(x-)+ … 

取其线性部分,作为非线性方程f(x)=0的近似方程,则有

  f()+(x-) f′()=0 

 设 f′()≠0 ,则其解为  x=-        (1)  

再把f(x)在x处展开为泰勒级数,取其线性部分为f(x)=0的近似方程,若

f′(x) ≠0,则得x=-如此继续下去,得到牛顿法的迭代公式:x=-  (n=0,1,2,…)   (2)  

例1  用牛顿法求方程f(x)=x+4x-10=0在[1,2]内一个实根,取初始近似值  x=1.5 。   

解   f′(x)=3x+8x  所以迭代公式为:

x=-        n=0,1, 2,…  

列表计算如下:

n0123

1.51.37333331.365262011.36523001
 

二  牛顿法的几何意义 

方程f(x)=0的根就是曲线y=f(x)与x轴交点的横坐标x*,当初始近似值选取后,过(,f())作切线,其切线方程为:y- f()=f′()(x-) 

它与x轴交点的横坐标为x=-

一般地,设是x*的第n次近似值,过(,f()作y=f(x)的切线,其切线与x轴交点的横坐标为:x=-即用切线与 x轴交点的横坐标近似代

曲线与x轴交点的横坐标,如图2-4。 

2-4  

 牛顿法正因为有此明显的几何意义,所以也叫切线法。  

三  牛顿法的收敛性及收敛速度 

定理   设f(x)在[a,b ]满足 

(1)(1)    f(a)·f(b)<0 

(2) f(x)∈[a,b],f′(x),f″(x)均存在,且f′(x)与f″( x)的符号均保持不变。

(3) f()·f″(x)>0,、x∈[a,b],则方程f(x)=0在[a,b]上有且只有一个实根,由牛顿法迭代公式计算得到的近似解序列{}收敛于方 程f(x)=0的根x*。 

由方程f(x)=0得到的牛顿迭代形式

   x=x-=   =1- = 由于f(x*)=0,所以当f′(x*)≠0时,(x* )= 0,牛顿法至少是二阶收敛的,即牛顿法在单根附近至少是二阶收敛的,在重根附近是线性收敛的。

牛顿法收敛很快,而且可求复根,缺点是对重根收敛较慢,要求函数的一阶导数存在。  

 

四  牛顿二阶导数法 

这里将简单介绍一下牛顿二阶导数法。对其几何意义及收敛性不作详细的叙述,读者可仿照牛顿法进行讨论,其基本思想是: 

 将f(x)在处展开泰勒级数  

f(x)=f()+f′()(x-)+f″()(x-)+…

取右端前三项近似代替 f(x),于是得f(x)=0的近似方程为

  f()+f′()(x-)+f″()(x-)=0 

也即  f()+(x-)[f′()+f″()(x-)] =0   (3) 

 设其解为.利用(1),-=-,代入(3)中括号内- ,则得  f()+(-) [f′()+f″() ]  =0 

 于是解出,得=- 

重复以上过程得:=-

于是得牛顿二阶导数法的迭代公式为:

  =-    n=0,1,2,… (4)    

上式与牛顿法迭代公式(2)相比,利用此公式求根收敛更快,迭代次数更少。其缺点是要求f(x)的二阶导数存在。

第五节  割线法 

用牛顿方法解非 线性方程f(x)=0,虽然在单根附近有较高的收敛速度,但需要计算f′(x)。若f(x)比较复杂时,每次计算f′(x)带来很多不便;如果用不计算导数的迭代方法,往往只有线性收敛的速度。本节我们介绍割线法,采取在迭代过程中不仅用前一步处的函数值,而且还使用处的函数值来构造迭代函数。这样做能提高迭代的收敛速度。  

一  割线法的基本思想 

设非线性方程 f(x)=0,其中f(x)为[a,b]上的连续函数,且f(a)·f(b)<0。设,为f(x)=0的根x*的两个初始近似值,过(,f())和(,f())作一直线, 其方程为 :y=f()+(x-)  

当  f()≠f()时,此直线与x轴交点为=-(-) (1) 作为f(x)=0根的第二次近似值,可以预期比, 更接近于x*。重复上述过程可得, ,…, , 从而可 得割线法的迭代公式 :

 =- (-) (n=1,2,…) (2)  

很明显,它也可由牛顿法用差商近似代替微商f′() 而 得。 若把(2)中的换为, 则得迭代公式=- (-)   (n=1,2,…) (3) 

 显然,它也可由 牛顿法用差商  近似代替微商 f′() 而得。 以上两种迭代方法都称为割线法(或弦截法)。(2)称为双点割线法。也称为有记 忆割线法。(3)称为单点割线法。它们都需要x*邻近的两个初始近似值,  才能启动。  

例1例1      用双点割线法求方程 x-3x+1=0在0.5附近的根。精确到小数点 后第六位。 

解:令f(x)= x-3x+1 

=-(-)  (n=1,2,…) 

 即=-(-)

(n=1,2,… )  取=0.5,=0.2 列表计算如下: 

表2-6

n12345
0.50.20.3563220.3477310.347295
0.20.3563220.3477310.3472950.347296
 

二  割线法的几何意义  

双点割线法是用过点 (,f())和(,f())两点的割线与x轴交点的横坐 标x2作为x*的新近似值。重复此过程,用过点(,f())和(,f())两点的割线法与x轴交点的横坐标来作为x*的下一新的近似值。如 图2-5。 单点迭代法则是用过点(,f())和(,f())两点的割线与x轴交点的横坐标  来作为x* 的近似值,如图2-6。 

              2-5                      2-6

三  割线法收敛的速度 

定理     设方程 f(x)=0 的根为 x* 。若f(x)在x*附近有连续的二阶导数,f′(x*)≠0,而初值, 充分接近x*, 则双点割线法的迭代过程收敛,收敛速度为|-x*|≈|-x*| 

这说明它是超线性收敛的( p=1.618>1 )。而单点割线法在单根附近是线性收敛的。

 下载本文

显示全文
专题