资源描述:
《基于不同方式技巧解决非线性问题的分析》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库。
1、基于不同方法解决非线性问题的分析摘要:本文主要研究非线性方程的数值解法中的二分法,迭代法以及牛顿下山法对于解决非线性问题所体现出来的各自不同的特点.通过实例来比较,分析在求解非线性方程时各自的优缺点。借以研究这三种方法在求解非线性方程时各自的作用,方便学习及利用以上三种方法快速,准确地解决非线性问题.关键词:二分法,迭代法,牛顿下山法,优缺点.1.引言:代数方程求根问题是古老的数学问题,是在16世纪就找到了三次,四次方程的求根公式.但直到19世纪才证明n>二5次的一般代数方程式不能用代数公式求解.因此,需要研究用数值方法求得满足一定精度的代数方程式的近似解.在工程和科学技术中许多问题常常归
2、结为求解非线性方程式问题,例如在控制系统的设计领域,人口增长的研究等.在科学研究和工程设计中,经常会遇到的一大类问题是非线性方程f(x)=O的求根问题,其中f(x)为非线性函数。方程f(x)=O的根,亦称为函数f(x)的零点如果f(x)可以分解/(劝=(兀_兀*)加巩兀),其中m为正整数且g(f)HO•当m>l时称/是f(x)的ni重零点,或称方程f(x)=0的m重根;当m=l时称兀为单根.2.分析比较2・1二分法在非线性方程求解中的应用2.1.1问题的提出在无阻尼强迫震荡的研究屮会碰到函数h(x)=xsin(x).寻找在区间[0,2]内的值x,满足h(x)=l(函数sin(x)用弧度计算
3、)。⑴2.1.2二分法的思路求方程根的一种最直观,最简单的数值方法是二分法(Dichotomy).设函数f(x)在区间[a,b]上连续,且[a,b]为有根区间,不妨设f(a)<0,f(b)>0.首先将区间[a,b]二分,即取中点兀产仗+方)/?,若/(Xo)=0,则兀=鬲就是方程式f(x)=0的根.否则,若/(Xo)<0>方程的有根区间变为[(a+b)/2,b];若/(Xo)>0,方程的有根区间变为[a,(a+b)/2],将新的有根区间记为[0,厶],长度bra}=(b-a)/2为[a,b]的一半.重复上述过程,即取°2二(久+5)/2,将再二分,乂可得到新的有根区间长度一02=(0厂久)
4、/2为[©,山]的一半•通过侮次把f(x)的零点所在小区间收缩一半的方法,使区间的两个端点逐步迫近函数的零点,以求得零点的近似值,这种方法叫做二分法。其中每一个区间长度都是前一个区间长度的一半,因此,的长度为2.1.3问题的求解过程利用二分法寻找函数f(x)二xsin(x)-l的零点。初始值Q()=0,计算:f(O)=-l.000000和f(2)=0.818595,因此f(x)=0的一个根位于[0,2]内.在中点©广1,可发现f⑴二一0.158529.因此区间改变为匕,加也21接下来,从左边压缩使得Q产Co且bi=b()・中点Cr1-5且f(Cl)二°・496242.现在f(l)=-0.1
5、58529且f(1.5)二0.496242,这表示根位于区间[]=[1.0,1.5].下面从右边压缩使得°?=久且b2=C・按这样的方法,可得到序列{Q人它收敛到4L114157141.表一给出一个计算样本.表一用二分法求解xsin(x)-l=0k左端点,k中点,Ck右端点,b函数值f(Ck)OlCXJCO寸99卜01.01.001.0001.00001.000001.0000001.00000001.1.51.251.1251.06251.093751.1093751.11718752.2.01.501.2501.12501.125001.1250001.1250000-0.15852
6、90.4962420.1862310.015051-0.071827-0.028362-0.0066430.0042088•••1.00000000•••1.11328125•••1.11718750•••-0.001216•••2.1.4应用二分法解决非线性问题的优缺点二分法的优点是算法简便,且总是收敛的,缺点是收敛太慢,故一般不单独将其用于求根,只用其为根求得一个较好的近似值.2.2迭代法在非线性问题求解中的应用2.2.1问题的提出用迭代法求方程f(x)=x^3-x-l-0在兀。=1.5附近的实根。2.2.2迭代法思路迭代法是一种逐次逼近法,首先给定一个粗糙的初值,然后用同一个迭代公式
7、,反复校正这个初值,直到满足预先给出的精度要求为止.是求解代数方程、超越方程及方程组的一种基本方法。[2】将方程f(x)=O改写成等价的形式x=°(x)如要求/满足/(/)=0,贝q£=©(£);反之亦然,称X*为函数0(x)的一个不动点,求f(X)的零点就等价于求0(兀)的不动点,选择一个初始近似值兀。,将它代入乂=0(兀)的右端,即可求得X,=。(兀0)可以如此反复迭代计算X+1=(p(Xk)(k=0,1,2...)