三非线性方程

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

第三章非线性方程在科学研究和工程实践中常常会遇到非线性方程或非线性方程组的问题。例如解方程024503510234xxxx,02sinxex。非线性方程求解在工程中有重要应用,例如草图中的几何约束系统可以转化为方程组:几何约束系统一般记非线性方程为0xf,f(x)是超越函数或高次多项式。非线性方程组的一般形式是:0,,,0,,,0,,,21212211nnnnxxxfxxxfxxxf。方程的解亦称方程的根或函数的零点。根可能是实数或复数。若,0,0'ff则称为单根;若01'kfff而0kf,则称为k重根。常见的求解问题有两种:(1)要求定出在给定范围内的某个解。(2)要求定出在给定范围内的全部解。3.1代数方程求根总结:1.利用求根公式进行求解,由于要进行多次平方根、立方根的求解,可造成相当大的误差。所以公式解法并不实用。2.非线性问题,除少数情况外,一般不能不利用公式求解。一元五次方程没有一般的求根公式。3.一般采用某种迭代解法。即构造出一近似值序列逼近真解。解非线性方程和方程组有很大区别。方程组要难得多。主要的区别在于一维情形可以找到一个根的范围,然后缩小,最终找到根。而多维情况则很难确定根的存在。3.2二分法定理:对于连续函数xf,如果在ax和bx处异号:0bfaf,则xf在ba,内至少有一个根。二分法的基本思想是将区间[a,b]逐步二等分,使得每次缩小的区间中始终有f(x)的根x*,区间套:(a0,b0)(a1,b1)…(ak,bk)…,(bk-ak)/2=(b-a)/2k,x*在区间[ak,bk]内。令xk=(ak+bk)/2,于是|x*-xk|(bk-ak)/2=(b-a)/2k。也就是说当k充分大后,xk收敛到x*。令(b-a)/2ke,则可以推出k。----------------------------------------------------------算法输入:函数f(x),区间[a,b],0bfaf,容差e,最大迭代次数MAXIT输出:根x*。步骤:for(i=0;iMAXIT;i++){x=a+(b-a)/2;如果f(x)=0或(b-a)/2e,那么输出x;如果f(a)*f(x)0那么a=x;否则b=x;}----------------------------------------------------------特点:1.收敛速度慢,收敛速度与以1/2为公比的等比级数相同,没有充分利用函数值,2.只要求函数连续就行,3.只能求一个解,缺点是不能求复根,5.一般为其它快速方法提供初值。sin(1/x)区间的确定。可以用等分区间法估计区间[a,b]。在f(x)的连续区间[a,b]内,选择一系列的x值x1,x2,x3,…,xn,观察f(x)在这些点处的函数值的符号变化情况,当出现两个相邻点上的函数值异号时,根据根的存在定理,此小区间上至少有一个实根。例确定01)(3xxxf的有根区间。设从x=0出发,取h=0.5为步长向右进行根的扫描,列表记录各个结点上函数值的符号,我们发现,在区间(1,1.5)内必有实根,因此可取x0=1或x0=1.5作为根的初始近似值。在具体运用上述方法时,步长的选择是个关键。若步长h足够小,就可以求得任意精度的根的近似值;但h过小,在区间长度大时,会使计算量增大,h过大,又可能出现漏根的现象。因此,这种根的隔离法,只适用于求根的初始近似。x00.51.01.5f(x)的符号---+例求方程01)(3xxxf,要求准确到小数点后第2位。kakbkxkf(xk)011.51.25-11.251.51.375+21.251.3751.3125-31.31251.3751.3438+41.31251.34381.3281+51.31251.32811.3203-61.32031.32811.3242-例求函数f(x)=x3-3x2+4x-1=0的有根区间。例求函数)sin(5.05.22xxxxf的有根区间。3.3定点迭代法迭代法是求方程近似根的基本方法。定点迭代法的思想是:将方程f(x)=0化为方程)(xx,构成,2,1,0),(1kxxkk。给定初值x0,可算得x1=(x0),x2=(x1),…。我们称{xk}为迭代序列,称(x)为迭代函数。如果{kx}收敛于x*,则x*就是方程的解。迭代格式不唯一,也不总是收敛的。例求方程0210)(xxxf的一个根。解:因为f(0)0,f(1)0,在[0,1]中必有根。将原方程改为210xx,)2lg(xx。由此得迭代格式)2lg(1kkxx,取初始值x0=1,可逐次算得x1=0.4771,x2=0.3939,…,x6=0.3758,x7=0.3758,所以取x7=0.3758为根。如改写成210xx,迭代序列不趋向于定值。收敛条件是什么?定理如果(x)满足下列条件(1)当x[a,b]时,(x)[a,b],(2)当任意x[a,b],存在0L1,使1)('Lx。则方程x=(x)在[a,b]上有唯一的根x*,且对任意初值x0[a,b]时,迭代序列xk+1=(xk)(k=0,1,…)收敛于x*。有根性:考虑f(x)=x-(x),f(a)=0,f(b)=0,f’(x)=1-)('x0,所以有根并且是唯一的。收敛性:1111)(')()(kkkkkkkkxxLxxxxxx,一般有11kkrrkrkxxLxx。对于任意正整数p,有12211)(kkpkpkpkpkpkpkkpkxxLLxxxxxxxx,11kkkpkxxLLxx。只要1kkxx充分小,就可以保证kpkxx足够小。根据柯西定理,{xk}极限x*存在!(柯西数列:{an}满足对任何e0,存在N,使对任何nN,mN,有|an-am|e。柯西定理:柯西数列收敛。(复习柯西证明))在求根过程中x*是不知道的,不可能用kxx*来作为迭代结束条件,可用1kkxx控制迭代次数。例求方程0133xx在[0,0.5]内的根,精确到10-5。解:将方程变形)()1(313xxx。0)('2xx,在[0,0.5]内为增函数,所以125.05.0)('max2xL满足收敛条件,取x0=0.25,x1=(0.25)=0.3385416,x2=(x1)=0.3462668,x3=(x2)=0.3471725,x4=(x3)=0.3472814,x5=(x4)=0.3472945,x6=(x5)=0.3472961,x7=(x6)=0.3472963。近似根为x*=0.347296。例求25的立方根。利用23325xxxx迭代。收敛速度:定义:设序列{xk}收敛于方程的根x*,如果存在正实数p,使得Cxxxxpkkk*1*lim(C为非零常数),则称序列{xk}收敛于x*的收敛速度是p阶的。当p=1时,称为线性收敛;当p=2时,称为二次收敛。若’(x)连续,且’(x*)0,则迭代格式xk+1=(xk)必为线性收敛。因为由kkkxxxxxx**1*)(')()(,可推出0)('lim**1*xxxxxkkk。加速法:迭代法的埃特金加速法。假设)(1kkxx是收敛的,因此有)(lim*'**1xxxxxkkk。当k充分大以后**1*1*2xxxxxxxxkkkk,解出kkkkkkxxxxxxx12212*2作为kx则收敛速度更快。几何意义见下图。3.4牛顿法牛顿法将非线性方程f(x)=0逐步线性化,是有效实用方法之一。已知方程f(x)=0的一个近似根x0,把f(x)在x0处作泰勒展开,200000)(!2)())((')()(xxxfxxxfxfxf。取前两项来近似代替f(x),则得近似的线性方程0))((')(000xxxfxf。设0)('0xf,解得)(')(000xfxfxx作为近似根x1。)(')(1kkkkxfxfxx称为求解f(x)=0的牛顿迭代公式。牛顿法几何意义。求得xk以后,过曲线y=f(x)上对应点(xk,f(xk))作切线,切线为))((')(kkkxxxfxfy。求切线和x轴交点,即得xk+1。牛顿法也称切线法。收敛性:牛顿法迭代格式是)(')()(xfxfxx。由于)()(')()('2xfxfxfx,若在根x*某个邻域R:xx*内,f’(x)0,f(x)有界,只要f(x)充分小,就能使1)('Lx,牛顿迭代法收敛于x*。定理设f(x)在[a,b]上二阶导数连续,满足下列条件:(1)f(a)f(b)0;(2)f‘(x)0;(3)f(x)保号;(4)abbfbfabafaf)(')(,)(')(。则对任意[a,b]内的x0牛顿迭代序列{xk}收敛于f(x)在[a,b]上的唯一根x*。条件(1)保证根的存在;(2)表示f(x)单调,所以根唯一;(3)保证曲线的凹向不变。平方收敛:牛顿法优点是平方收敛的。将f(x)在xk处按泰勒展开,x*代替x得0)(!2)())((')()(2***kkkkxxfxxxfxfxf,所以2**))((21))((')(kkkkxxfxxxfxf。用f’(xk)除两端得2**)()(')(21)(')(kkkkkxxxffxfxfxx,即2*1*)()(')(21kkkxxxffxx。)()(')()('2)(**2*1*kxfxfxffxxxxkkk,所以是二阶收敛的。例用牛顿法解方程f(x)=x(x+1)2-1=0在0.4附近的根。,)13)(1(1)1()(')(),13)(1()(21'kkkkkkkkkxxxxxxfxfxxxxxf取x*为0.4656。K0123xk0.40.470130.465390.46537例用牛顿迭代法建立求平方根c(c0)的迭代公式。设cxxf2)(,由为f’(x)=2x,得迭代公式kkkkxcxxx221,kkkxcxx211。例用以上公式求78265.0。取初值x=0.88,故取88468.078265.0。K0123xk0.880.884690.884680.884683.5牛顿下山法牛顿法对初始值x0要求很高。下山法:将公式修改为),2,1,0(,)(')(1kxfxfxxkkkk,其中是一个参数,的选取应使)()(1kkxfxf成立。当11)(kxf或21kkxx时(1为残量精度,2为根误差限),就停止迭代,且取x*xk+1,否则再减小继续迭代。按上述过程,得到以零为下界的单调下降的序列{f(xk)}。称为下山因子,要求满足10,为下山因子下界。为方便开始时可取,,21,21,12,且使)(()1kkxfxf。下山法放宽了初值x0的选取,有时用牛顿法不收敛,但用下山法收敛。算法步骤:(1)选取初始近似值x0,(2)取下山因子=1,(3)计算)(')(1kkkkxfxfxx,(4)计算f(xk+1),比较)(1kxf与)(kxf的大小,分以下二种情况:1)若)(()1kkxfxf,则当21kkxx时,取x*xk+1,计算过程结束;当21kkxx时,则把xk+

1 / 9
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功