当前位置:文档之家› 数值分析作业

数值分析作业

数值分析作业——非线性方程的求解方法与分析学院:学号:姓名:本文主要阐述了五种非线性方程的求解方法,分别为二分法、简易牛顿法、牛顿迭代法、牛顿下山法与弦截法。

并分别对五种求解方法的计算结果进行了相应地分析。

二分法运用函数有根区间中点与端点的函数值,缩小根区间,从而得到较快的收敛速度。

牛顿迭代法,是一种常见的求解具有单重零点的非线性方程的数值方法,具有局部二阶收敛性。

简易牛顿法便是简化的牛顿迭代法,将迭代点的导数值固定为初始值点的导数值,从而简化计算次数。

牛顿下山法,为避免初值选取不当而使得迭代不收敛而在牛顿迭代法改进的方法。

弦截法,克服了牛顿迭代法需求零点处函数导数的缺点,使用两次迭代点的差商替代了函数的导数值。

本文非线性方程的求解方法均运用MATLAB编程及实现。

关键词:非线性方程;二分法;牛顿迭代法;牛顿下山法;弦截法第一章非线性方程 (1)非线性方程简介 (1)非线性方程求解方法简介 (1)二分法 (1)牛顿迭代法 (2)牛顿下山法 (4)简易牛顿法 (4)弦截法 (5)第二章计算机配置 (7)处理器 (7)存储设备 (7)显卡 (8)显示屏 (8)操作系统 (8)第三章算法的MATLAB实现及结果分析 (9)二分法 (9)牛顿迭代法 (12)简易牛顿法 (15)牛顿下山法 (18)弦截法 (21)结论 (25)第一章 非线性方程非线性方程简介非线性方程,就是因变量与自变量之间的关系不是线性关系。

在永恒变化发展的自然界与人类社会中,在研究其内部规律的各个科学领域中,更深刻、更精确地描述其内部规律的数学工具之一,就是非线性方程。

非线性代数是研究大规模离散数据的运算处理与内在性状的数学科学。

科学技术离不开数据处理与数据分析,因此非线性代数具有非常广泛的应用,在力学、化学、生命科学、控制理论等众多科学领域中,非线性方程早已屡见不鲜。

因此,非线性方程的求解就显得愈加重要。

然而求解非线性方程有很多种方法,每种方法都有自己的优缺点。

非线性方程求解方法简介求函数零解作为数学研究领域的一个热点已经延续了几百余年,所以已经建立了许多种方法,拥有比较完备的求解体系。

本文中,主要介绍非线性方程求解方法中最常用也是比较简单的几种方法。

在解决实际问题的中,大都会遇到非线性方程或非线性方程组的数学模型,这类方程的求解用一般的代数方法求解是不可能实现的。

所以,在解决这类问题的时候,多是将求零解转化为求近似解。

二分法若)(x f 是区间[]b a ,上的连续函数,且0)()(<b f a f ,则)(x f 在),(b a 内必有一个零点。

因为0)()(<b f a f ,所以函数)(x f 在区间[]b a ,上改变符号,因此它在这个区间内至少存在一个零点。

二分法就是利用这一中值定理来求解非线性方程零解。

二分法求解的具体方法:若0)()(<b f a f ,则计算区间[]b a ,中点2/)(b a c +=,并且检验0)()(<c f a f 是否为真。

若为真,则)(x f 在[]c a ,内有零点。

因而把中点c 设为b 作为区间新的右极点。

若检验0)()(<c f a f 为假,则)(x f 在区间[]b c ,内有零点,因而把中点c 设为a 作为区间新的左极点。

这样新的区间[]b a ,的宽度就为原区间宽度的二分之一。

并在此区间中重复上述操作。

当然,若0)()(=c f a f ,则0)(=c f 从而求出一个零点。

然而由于舍入误差的存在,在计算机计算的过程中,)(c f 精确为0是完全不可能存在的。

因此,主卧室算法循环的停止判断准则不应该是0)(=c f 是否成立,而必须提供一个合理的允许误差。

当计算结果)(c f 的值在误差范围内,便可停止运算。

牛顿迭代法牛顿法迭代法是一种能在许多不同情况下应用的通用过程。

特别地,当用牛顿法来求实值变量函数零点时,常常被称为牛顿-拉弗森迭代。

通常,牛顿迭代法比二分法与弦截法获取答案的速度要快,这是因为它的收敛是二次的而不是线性或者超线性的。

一旦二次收敛变得有效时,即牛顿法序列的值充分地接近根时,其收敛是如此之快以致于仅仅再需要几个数值即可。

但是,牛顿迭代法并无法保证总是收敛的。

所以牛顿法经常与其他较慢的方法结合形成一种数值上整体收敛的混合方法。

若存在一个函数)(x f ,其零点由数值方法计算得出。

设r 是)(x f 的零点,而x 是r 的一个近似,若)(x f 的n 阶导数存在并且连续,则由泰勒定理将函数在零点处进行展开可得:)()()()()(02h x f h x f h x f r f ο+'+=+==其中x r h -=。

若h 较小(即x 在r 附近),则可以略去)(2h ο项,并且在余下的方程中求h 。

由此可得到结果是)(/)(x f x f h '-=。

若x 使r 的一个近似,则)(/)(x f x f x '-应该是r 的一个更好的近似。

牛顿迭代法从r 的一个估计0x 开始,则归纳出迭代的格式为)()(1n n n n x f x f x x '-=+ )0(≥n 下面叙述一下牛顿迭代法的几何意义。

r 是0)(=x f 的根,选取0x 作为r 的初始近似值,经过)(x f 上的点))((0,0x f x 做)(x f y =的切线方程L :))(()(00x x x f x f y -'+=,求出L 与横轴焦点的横坐标)()(0001x f x f x x '-=,则称1x 为r 的一次近似值。

将1x 作为下一次迭代的初值,重复上述过程可得到r 的二次近似值)()(1112x f x f x x '-=。

如此循环,可以获取r 的近似值序列。

下述三个定理分别讨论了牛顿法的收敛性质:定理1:对于方程0)(=x f ,设)(x f 在],[b a 上有二阶连续导数且满足下述条件:(1)0)()(<b f a f ;(2)0)(≠'x f ,0)(≠''x f ,对任意的],[b a x ∈;(3)选取],[0b a x ∈,满足0)()(00>''x f x f则牛顿法产生的序列{}K x 收敛于0)(=x f 在],[b a 内的唯一根*x 。

定理2:对于方程0)(=x f ,设)(x f 在],[b a 上连续可导。

若],[)(b a C x f ∈,0)(=x f 的根],[*b a x ∈,且0)(*≠'x f ,则存在*x 的一个邻域{}δ≤-=*|x x x R ,使任意初值R x ∈0,牛顿迭代收敛于*x ,且满足)(2)()(**2**1limx f x f x x x x k k k '''=--+∞→。

定理3:设*x 是方程0)(=x f 的根,在*x 的某个开区间内)(x f ''连续且0)(≠'x f ,则存在0>δ,当],[**0δδ+-∈x x x 时,由牛顿迭代法产生的近似值序列{}n x 是以不低于二阶的收敛速度收敛到*x 。

牛顿下山法牛顿下山法是牛顿迭代法的一种变形。

它是为了减弱牛顿迭代法对初始近似0x 的限制而提出的一种算法。

牛顿迭代法的收敛速度快,但初值不容易确定,往往由于初值选取不得当而使迭代不收敛。

但是,若能保证)()(1+>k k x f x f (下山条件),则有可能保证收敛。

把新求得的近似值看做初始值,会比最先取得的初始值0x ,更有可能落入局部收敛的邻域内。

下面简单叙述牛顿下山法的算法。

设下山因子为λ,则⎪⎩⎪⎨⎧-+='-=+++k k k k k k k x x x x f x f x x )1()()(111λλ 是以k x 与1+k x 的加权平均作为新的近似解的。

λ先取1,若已经满足)()(1+<k k x f x f ,实质上是原来的牛顿迭代法。

若不满足下山条件,取下山因子2λλ=,带入并判断是否满足下山条件。

若满足,则可以把1+k x 作为第1+k 次近似值。

若仍不满足条件,则将λ的值再进行对分,知道找到满足下山条件的初始值为止。

最后,再将得到的10+=k x x 带入到牛顿迭代法的公式)()(1x f x f x x n n '-=+中,最终求得方程的零解。

简易牛顿法简易牛顿法,又称平行弦法,就是将牛顿迭代法进行简化而得到的简易求解非线性方程零解的方法。

使用牛顿迭代法求解非线性方程根时,每一步的迭代都需要计算一次上次迭代点的一阶导数值。

为了避免在计算导数值的复杂性,选择使用初始值点的导数值代替迭代的导数值,则)()(0x f x f k '=',于是牛顿迭代公式转化为)()(01x f x f x x n n n '-=+ 很大程度上减少了计算机的计算量。

弦截法 弦截法是在牛顿迭代法的基础上得出的求解非线性方程0)(=x f 的一种十分重要的插值方法。

用牛顿迭代法求解非线性方程的根时,每一步迭代都要计算一次导数值。

当函数)(x f 较为复杂时,计算导数往往较为困难,并且,在计算机上,计算一次导数的近似值比计算函数的近似值要麻烦的多。

因此,为了避免求解函数的导数,选择使用差商近似代替微商:11)()()(----='k k k k k x x x f x f x f 于是,牛顿迭代公式转化为:)()()()(111--+---=k k k k k k k x x x f x f x f x x 下面研究弦截法的几何意义:经过点))(,(k k x f x 及点))(,(11--k k x f x 亮点做函数的割线,其点斜式方程为:)()()()(11k k k k k k x x x x x f x f x f y ----=--,其零点为)()()()(11-----=k k k k k k x x x f x f x f x X 。

把X 用1+k x 表示即得到迭代格式。

它又成为割线法,需要两个初始值,割线与X 轴交点的横坐标就是新的近似值1-k x 。

如图所示:下面两个定理为弦割法收敛定理:定理1:设)(x f 在其零点*x 的邻域],[),(***δδδ+-=x x x U )0(>δ内有二阶连续导数,0)(*≠'x f ,则当),(*0δx U x ∈时,由弦截法迭代公式产生的序列{}n x 收敛于*x ,且收敛的阶为。

定理2:设函数)(x f 在区间],[b a 上二阶连续可导,且满足下述三点:(1)0)()(<b f a f ;(2)对任意的],[b a x ∈,0)(≠'x f ,0)(≠''x f ;(3)a b a f a f -≤')()(,a b b f b f -≤')()( 则对于任意初始0x 、],[1b a x ∈,由弦截法产生的迭代序列{}n x 收敛于0)(=x f 的唯一的根*x 。

相关主题