非线性方程求根方法
- 格式:ppt
- 大小:1.27 MB
- 文档页数:49
非线性方程求根——牛顿迭代法一、牛顿迭代法的基本思想基本思想:将非线性方程逐步归结为某种线性方程求解。
设方程f (x )=0有近似根x k (f `(x k )≠0),将f (x )在x k 展开:(ξ在x 和x k 之间)2()()()()()()2!k k k k f f x f x f x x x x x ξ'''=+-+-()()()()k k k f x f x f x x x '≈+-可设记该线性方程的根为x k +1,则()()()0k k k f x f x x x '+-=1()()k k k k f x x x f x +=-'故f (x )=0可近似表示为即为Newton 法迭代格式。
(k =0,1,……)例:用Newton 迭代法求方程310x x --=在x 0=1.5附近的近似实根。
解:32()1,()31f x x x f x x '=--=-迭代公式为312131kk k k k x x x x x +--=--计算步骤如下:(1)取初值x 0=1.5;(2)按照迭代公式计算x 1;(3)若|x 1-x 0|<=0.00001,终止迭代;否则,x 0=x 1;转(2);(4)输出迭代次数和近似根.二、牛顿迭代法的实现MATLAB求解程序设计:方程及一阶导数函数:function[fun,dfun]=fun0(x)fun=x^3-x-1;%求原函数的值dfun=3*x^2-1;%求一阶导数的值计算主程序:clearx0=1.5;[fun,dfun]=fun0(x0);x1=x0-fun/dfun;i=1;while abs(x1-x0)>1e-5x0=x1;[fun,dfun]=fun0(x0);x1=x0-fun/dfun;i=i+1;enddisp('the solution is x1=')x1disp('the iter time is ')i计算结果为:the solution is x1=x1 =1.3247the iter time isi =4可见经过4次迭代即到达要求的精度,原方程的一个近似实数根为1.3247.三、牛顿迭代法的收敛性牛顿迭代法的迭代函数:)()()(x f x f x x '-=ϕ222)]([)()()]([)()()]([1)(x f x f x f x f x f x f x f x '''='''-'-='ϕ设f (x *)=0,f `(x *)≠0,则ϕ`(x *)=0,故Newton 迭代法在x *附近至少平方收敛。
计算方法非线性方程求根第十章非线性方程求根知识点:求根的基本概念,对分法,迭代法,误差,编程停机判断,算法说明1.概念(1)根的概念方程f(x)=0的解叫做方程的根或f(x)的零点。
例如x-cosx=0,x-e x=0求方程的根是数值计算的任务之一,当不易求得f(x)=0的解析解时,可以考虑求其近似根。
求实根问题包括:根的存在性;根的分布;根的精确化.(2)根的存在性如果f(x)是[a,b]上的连续函数,且f(a) f(b)<0,则f(x)=0在(a,b)至少有一个根;若单调,则f(x)=0在(a,b)有惟一根。
(3)根的分布若有根区间的根多于一个,为了得到根的数值解,可以将该有根区间分割若干个子区间,使每个子区间只包含f(x)=0的一个根,这个过程称根的隔离,每个子区间称为隔根区间。
一般情形下,隔根区间内任一点都可作为相应根的近似值,隔根区间越小,近似程度越好。
(4)根的精确化在隔根区间内得到方程f(x)=0相应根的初步近似值后,为使近似值程度更好、符合预先期望,通常应继续逐步精确化根的近似值,直到满足规定的精度要求为止。
精确化方法有很多,常见的有二分法,迭代法等。
2.二分法二分法是利用隔根区间的两个端点来逐步求得满足预先给定精度的近似根。
(1)基本思想对分有根区间,判断f(x)的符号,逐步将有根区间缩小,使得在足够小的区间内取得满足预先给定精度要求的近似值。
(2)具体做法设区间[a,b]为有根区间,记α是f(x)=0在(a,b)的惟一根,二等分区间[a,b]。
令x0=(a+b)/2,如果f(x0)=0,则求得实根α=(a+b)/2。
否则,若f(a)f(x0)<0,则α∈[a,x0],取a1=a,b1=x0;若f(b)f(x0)<0,则α∈[x0,b],取a1=x0,b1=b。
在新的有根区间上重复二等分过程,得有根区间套序列[a,b]? [a1,b1]? [a2,b2] ?…? [a k,b k] ?…b-a>b1-a1>b2-a2>…>b k-a k…,a k≤α≤b k其中每个区间为前一个区间的一半,经过k次二分后,有根区间的长度为如此无限二等分区间[a,b](k→∞)有b k- a k→0(k→∞)或lim a k=lim b k=α(k→∞)。
第7章 非线性方程求根本章主要内容:1.区间二分法. 2切线法. 3.弦位法. 4.一般迭代法.重点、难点一、区间二分法区间二分法是求方程f(x)=0根的近似值的常用方法。
基本思想:利用有根区间的判别方法确定方程根的区间[a,b] ,将有根区间平分为二;再利用有根区间的判别方法判断那一个区间是有根区间;重复上述步骤,直到小区间端点差的绝对值小于等于精度要求的数值,则用将上一区间的分半值作为方程的根的近似值。
区间二分法的计算步骤如下: 1.计算区间端点的函数值f(a) , f(b)(不妨设f(a)<0,f(b)>0);确定初始有根区间[a,b]. 2.二分有根区间[a,b],并计算)2(ba f + 取21b a x +=3.判断: 若0)(1=x f ,则方程的根为1x x =*;若 0)(1>x f ,则有根区间为[]1,x a x ∈*;令[]],[,111b a x a =若 0)(1<x f ,则有根区间为[]b x x ,1∈*;令 []],[,111b a b x =4. 如果│b-a │<ε(ε为误差限),则方程的根为2ba x +=*;否则转向步骤2,继续二分有根区间[a 1,b 1],并计算中点值,继续有根区间的判断,直到满足精度要求为止,即│b n -a n │<ε二分次数的确定:如果给定误差限ε,则需要二分的次数可由公式12ln ln )ln(---≥εa b n 确定应二分的次数。
例1 用区间二分法求方程0353=+-x x 在某区间内实根的近似值(精确到0.001)【思路】参见上述区间二分法的计算步骤解 ∵f(1.8)=-0.168<0, f(1.9)=0.359>0 ∴f(x)在区间[1.8 ,1.9]内有一个根。
由公式 644.512ln 001.0ln 1.0ln 12ln ln )ln(=--=---≥εa b n取n=6, 计算结果列表如下:则方程在区间[1.8,1.9]内所求近似值为x *≈ x = 1.8328125区间二分法的优点是计算程序简单,只要f (x )在区间[a,b]上连续,区间二分法就可使用,但区间二分法不能用来求偶次重根,由于区间二分法收敛比较慢,在实际计算中,区间二分法常用来求比较好的含根区间和初始近似值,以便进一步使用收敛更快的迭代法求出更精确的近似值。