非线性方程根的求解(2)

  • 格式:doc
  • 大小:582.50 KB
  • 文档页数:15

8 第二章 非线性方程根的求解

§1.引 言

本章将介绍单个非线性方程

f(x)=0 (2-1)

的求解几种常用的方法。通常我们把(2-1)的解也称为根或函数f(x)的零点。

我们在本章介绍的方法中,一般要求通过对所涉及函数f(x)的分析,尽量找出一个区间 [ a,b ],使方程(2-1)在此区间内有根,称这样的区间为根的隔离区间。一般情况下根的隔离区间长度越小越好。这样可以保证后面所用方法有较好的收敛效果。而根的隔离区间的取得,一般可通过应用零点的存在定理来确定。

定理:(零点存在定理)如果f(x)在[a,b]上连续,使f(a)f(b)<0,则必存在(a,b),使f()=0。

例:求方程3x-2x-5=0实根的隔离区间

解:设f(x)=3x-2x-5,则'2()32fxx,由此可知在2(,)3内()fx单调增,在22(,)33内()fx单调减,2(,)3内()fx单调增。但22()0,()033ff,所以()fx最多有一个实根。又因(2)10,(3)160ff,所以[2,3]是一个根的隔离区间。

为了以后叙述的方便,我们还给出以下定义。

定义:如果函数f(x)可以因式分解为:

f(x)=)x(g)x(m

且g()0,则称是f(x)的m重零点,也称为方程f(x)=0的m重根。如果m=1,则称为f(x)的单重零点或f(x)=0的一重根。如果m>1,则称为f(x)的m重零点或f(x)=0的m重根。

性质:如果函数f(x)充分可微函数,则是f(x)的m重零点的充要条件是:

f()=f ()=…=0)(f)1m(,但0)(f)m(

下面分别介绍求方程(2-1)实根的方法。

§2. 二 分 法 9

二分法的思想相当简单,其数学基础为零点存在定理。具体做法如下,假设函数f(x)在[a,b]上连续,且f(a) f(b)<0 ,令2bax0计算f(0x),如果f(0x)与f(a)同号,则令bb,xa101,否则令011xb,aa,这样可知f(x)必在[11b,a]中有零点;再对分,令2bax112计算f(2x),…,如此反复,可得到有根的区间套:

[a,b][11b,a] …[kkb,a]…

对分k次后,区间长度kkk2abab,如此下去{ka}及{kb}必收敛于一点x,此点即为f(x) =0的一个根。如果以中点2baxkkk作为x的近似,则误差为:

|1k1kkk2ab|xx||xx (2-2)

注意:①如果f(x) =0在[a,b]内有多个根,二分法尽管能求根,但求出的根是其中的那一个带有偶然性。最后得到其中的那一个根的近似值,一般与区间[a,b]的端点有关。

②如果f(x)=0在[a,b]内有唯一的根,则对分法得到的序列{kx},必收敛到方程的唯一根x,误差表达式(2-2)仍成立。

例:求方程3x-2x-5=0在[2,3]内的根的近似值,并指出其误差。

解:设f(x)=3x-2x-5,则

有根区间

f(2)=-1<0

f(3)=16>0 (2,3)

f(2.5)>0

f(2.25)>0

f(2.125)>0

f(2.0625)<0

f(2.09375)<0

f(2.109375)>0 (2,2.5)

(2,2.25)

(2,2.125)

(2.0625,2.125)

(2.09375,2.125)

(2.09375,2.109375)

取1015625.22109375.209375.2x,则x与根的绝对误差限为 10 721=0.0078125,即以x作为(2,3)间根的近似值,至少保证有2位有效数字。

对分法的优点是方法简单,只要函数f(x)连续,一定能求出根的近似值,并且可以预报迭代的大致次数。缺点是速度太慢,且无法知道是否是重根。下面是对分法的计算框图,是误差限。(见下页)

§3.迭 代 法

迭代法可分为单点迭代法和多点迭代法。单点迭代法的一般形式为:

)x(Fxi1i (i=0,1,…) (2-3)

其中F(x)是迭代函数,对于不同的方法可有不同的形式。一般依赖于(2-1)中的f(x)及

开始

输入a、b 

2bax1ax1

计算)x(f1

0)a(f)x(f1

1xb 1xa 停止 N Y

Y N 输入a、b 

输出1x 11

其各阶导数。F(x)的选取,要保证在给出合适的初始值0x后,由(2-3)产生的序列{nx}收敛到方程f(x)=0的根。

多点迭代法的一般形式为:

1ni1ii1ix,,x,x(Fx) i=0,1,… (2-4)

其中迭代函数F(n1y,,y)的选取也可有不同的形式,但选取的目的是:给出合适的初始值1n20x,,x,x,由(2-4)产生的序列{kx}应收敛到方程f(x)=o的根。

但不管那一种方法,都希望所选用的迭代函数所产生的序列是收敛的,且恰好收敛到所求方程f(x)=0的根。那么怎样选取迭代函数F及初始值?在介绍方法之前,先介绍两个重要概念。

1.局部收敛性:设是(2-1)的根,若存在的一个邻域,当迭代初值属于时,迭代法得到的序列{kx}收敛到,则称该迭代法关于根具有局部收敛性。

2. 收敛速度:设ix为第i次迭代值,是(2-1)的根,令iix,且假设迭

代收敛,即iixlim。若存在实数P1,使 c||||limpi1ii0

则称此方法关于根具有P阶收敛速度。C称为渐近误差常数,渐近误差常数C与f(x)有关。C0保证了P的唯一性。对于特殊的函数,C可能为零,此时,由这个函数针对此方法迭代产生的序列收敛得更快。一般情况下,P越大,收敛就越快。当P=1时,我们称为线性收敛。P>1,称为超线性收敛。P=2,称为平方收敛。

一、 简单迭代法

简单迭代法具体做法如下:把方程f(x)=0写成与其同解的方程:

x=F(x) (2—5)

然后建立迭代格式)x(Fxk1k。

但这种同解方程可有无穷多种。如果选取的F(x)满足如下定理的条件,则产生的序列必收敛。

定理:设F(x)满足条件:

(1)当x[a,b]时,F(x) [a,b]

(2)F(x)在[a,b]上满足Lipschitz条件,且Lipschitz常数L<1。则:

方程x=F(x)在[a,b]上存在唯一的根,且对0x[a,b],迭代(2-3)产生的序列{ix}收敛 12 于,且有如下误差估计式:

i1iixxL11|x| (2-6)

或 10||1iiLxxxL (2-7)

证明:因为F(x)在[a,b]上满足Lipschitz条件,则F(x)在[a,b]上连续。由于F(x) 

[a,b],x[a,b],则方程x=F(x)在[a,b]中至少有一根。如果方程x=F(x)在[a,b]中还有一个根,则由Lipschitz条件知:

||L|)(F)(F|||

由于0L<1,故必有,即根唯一。现仍取]b,a[x0,下证由 )x(Fxk1k产生的序列收敛于。

由于|x|L|)(F)x(F||x|kk1k0|x|L01k(k)

从而知)k(xk

再证(2-6)式,由于|)x(F)x(F||xx|2ik1ik1ikik

|xx|L2ik1ik

……

|xx|Li1i1k

从而知:||xx||xx||xx||xxi1i2in1in1ininiin

|xx|)1LL(i1i2n1n

<111iixxL|

令n,则得:

|xx|L11|x|i1ii

而(2—7)由上式继续递推即可得。

此定理告诉我们,如果L不是很接近于1的情况下,第i次迭代值ix与所求根间的误 13 差,可近似地用|i1ixx|来表示。由(2—7)还可预测要达到某一精度,需迭代的次数。

例:求92x-sinx-1=0在[0,1]内的一个实根。

解:令:f(x)=91xsinx2,由于f(x)=18x-cosx,故f(x) 在[0,+)先降而后升,因f(0)=-1<0,故可知f(x)在[0,+)只有一个零点,又因f(1)>0,故f(x)在[0,1]有且只有一个零点,现令:F (x)=1xsin31,则x=F(x)在[0,1]与原方程同解,易知F(x)满足定理的条件,从而令:

)x(Fxk1k,即:1xsin31xk1k

由于'cos()6sin1xFxx,所以.1()6Fx。因此可令L=16,如取0x=0.4,1x=0.392911969如要求误差不超过810,则由(2—7)可估计迭代次数i如下:810||101iiLxxxL

108ln10lnln(1)lnxxLiL=7.62025

而实际计算得如下结果:

=0.39186907 这与上面所分析的结果是一致的。

如果F (x)不满足定理条件就很难保证所得序列收敛。如取F (x)=arcsin(91x2), 0x 0.4 6x 0.391846948

1x 0.392911969 7x 0.391846912

2x 0.391986409 8x 0.391846907

3x

4x 0.391865185

0.391849302 9x 0.391846907

5x 0.391847220