非线性方程求根的方法简介与例题

合集下载

牛顿法及基于牛顿算法下的Steffensen加速法求解非线性方程组方法例题及答案

牛顿法及基于牛顿算法下的Steffensen加速法求解非线性方程组方法例题及答案

1. 非线性方程组求解1.分别用牛顿法,及基于牛顿算法下的Steffensen 加速法。

(1) 求ln(sin )x x +的根。

初值0x 分别取0.1,1,1.5,2,4进行计算。

(2) 求sin =0x 的根。

初值0x 分别取1,1.4,1.6,1.8,3进行计算。

分析其中遇到的现象与问题。

(1)牛顿法牛顿法实质上是一种线性化方法,其基本思想是将非线性方程()0f x =逐步归结为某种线性方程来求解。

将已知方程()0f x =在近似值k x 附近展开,有()()()()'0k k k f x f x f x f x x ≈+-=,构造迭代公式,则1k x +的计算公式为:()()1',0,1,,k k k k f x x x k f x +=-= (1-1)根据Taylor 级数的几何意义我们可以从几何上形象的看牛顿迭代法的求解()0f x =的过程,第一次迭代()()'1000/x x f x f x =-,其中()()'00/f x f x 的几何意义很明显,就是0x 到1x 的线段长度(这可以从直角三角形的知识得到)。

第二次迭代()()'2111/x x f x f x =-,其中()()'11/f x f x 的几何意义很明显,就是1x 到2x 的线段长度。

同理可以进行第三次迭代第四次迭代,可以明显的看出x 的取值在不断逼近真实解*x 。

如图1-1所示:图1-1○1求ln(sin )=0x x +的根时,迭代公式为()1ln(sin )sin 1cos k k x x x x x x x+++=++,0示。

计算结果见附录1表F.1-1所示。

初值取1.5,2,4进行计算时结果不收敛。

表 1-1 牛顿法计算结果○2求sin =0x 的根时,迭代公式为1cos k k x x x+=+,初值0x 分别取1、1.4、1.6、1.8、3计算时结果收敛,误差小于510-时,近似解如表1-2所示。

计算方法第2章f(x)=0求根资料

计算方法第2章f(x)=0求根资料
1.如何选取初值和迭代公式. 2.如何停止迭代过程
y
y=x
p1 p0
y=g(x)

x
x0
x1 x*
y
y=x
y=g(x)
p0
p1
x x1 x0 x*
y p0
y=x

y=g(x) p1
x0
x*
y
y=g(x) p0
x x1
y=x
p1
x x0 x* x1
定理2.1:如果 g(x)满足下列条件 (1)当x[a, b]时,g(x)[a, b] (2)当任意x[a, b]时,存在0< L< 1,使
解法2:与原方程等价的方程为:
x x3 1
取 x0=1.5得迭代格式
xn1 xn3 1 n 0,1,2
计算得: x(1)=1.5; for k=2:4 x(k)=x(k-1)^3-1; end X x= 1.0e+003 *
0.0015 0.0024 0.0124 1.9040
发散。
2.迭代过程的收敛性 简单迭代法的两个基本问题:
第一步:求出与方程f(x)=0等价的方程x=g(x) 第二步:由迭代格式x0,xn+1=g(xn)n=0,1,2,… 产生一收敛的数列{xn} 设X*是{xn}的极限,若g(x)是连续的,再由第 一步可推出X*是f(x)=0的解.
xn+1是f(x)=0解的第n+1次近似; x0是解的初始近似; g(x)是迭代函数; xn+1=g(xn)是迭代格式.
再证解的唯一性
设另有f(x1)=0,那么根据微分中值定理有 x1- x*=g(x1)-g(x*)=g’(x2)(x1- x*)

第6章 非线性方程求根(1、二分法、迭代法)

第6章 非线性方程求根(1、二分法、迭代法)

(2) 如果将原方程化为等价方程 x = 仍取初值
x0 = 0
3
3
x+1 2
x1 =
x0 + 1 = 2
3
3
1 ≈ 0 .7937 2
1 .7937 ≈ 0 .9644 2
x2 =
依此类推,得 依此类推, x3 = 0.9940 同样的方程 x4 = 0.9990 不同的迭代格式 x5 = 0.9998 x6 = 1.0000 有不同的结果 x7 = 1.0000 已经收敛, 已经收敛,故原方程的解为 x = 1.0000
用一般迭代法求方程x lnx= 在区间( 例:用一般迭代法求方程x-lnx=2在区间(2,∞) 内的根,要求|x 内的根,要求|xk-xk-1|/|xk|<=10-8 f(x)=x-lnx解:令f(x)=x-lnx-2 f(2)<0,f(4)>0,故方程在 2,4) 故方程在( f(2)<0,f(4)>0,故方程在(2,4)内至少有一个根
y p1 p0
y=x y=g(x)
y p0
y=x
p1 x x0 y y=g(x) x1 x* y=x y y=g(x) p0 x0 x* x1
y=g(x)
x
y=x
p0 p1 x x1 x0 x* x0 x* x1 p1 x
f(x)=0化为等价方程x=g(x)的方式是不唯 f(x)=0化为等价方程x=g(x)的方式是不唯 化为等价方程x=g(x) 一的,有的收敛,有的发散. 一的,有的收敛,有的发散. example: For example:2x3-x-1=0
1 3 ( x + 1 ) = g ( x ) 进行迭代,则在 进行迭代,则在(1, 3

非线性方程求跟—不动点迭代法(新)

非线性方程求跟—不动点迭代法(新)

非线性方程求根——不动点迭代法一、迭代法的基本思想迭代法是一种逐次逼近的方法,用某个固定公式反复校正根的近似值,使之逐步精确化,最后得到满足精度要求的结果。

例:求方程x 3-x -1=0 在x =1.5 附近的一个根。

解:将所给方程改写成31x x =+假设初值x 0=1.5是其根,代入得33101 1.51 1.35721x x =+=+=x 1≠x 0,再将x 1代入得33211 1.357211 1.33086x x =+=+=x 2≠x 1,再将x 2代入得33321 1.330861 1.32588x x =+=+=如此继续下去,结果如下:k x kk x k 01234 1.51.357211.330861.325881.324945678 1.324761.324731.324721.32472仅取六位数字,x 7与x 8相同,即认为x 8是方程的根。

x *≈x 8=1.32472这种逐步校正的过程称为迭代过程。

这里用的公式称为迭代公式,即311k k x x +=+k =0,1,2,……若x *满足f (x*)=0,称x *为ϕ(x )的一个不动点。

将连续函数方程f (x )=0改写为等价形式:x=ϕ(x ),其中ϕ(x )也是连续函数。

1()k k x x ϕ+=(k =0,1,……)不动点迭代法就是指以迭代格式二、不动点迭代法进行迭代求解的方法。

其中ϕ(x )称为迭代函数。

三、不动点迭代法的实现——MATLAB程序function[root,n]=stablepoint_solver(phai,x0,tol) if(nargin==2)tol=1.0e-5;enderr=1;root=x0;n=0;while(err>tol)n=n+1; %迭代次数r1=root;root=feval(phai,r1); %计算函数值err=abs(root-r1);end程序应用示例:function testmain% x^3-x-1=0% =>x^3=1+x% =>x=(1+x)^(1/3)ph=inline(‘(1+x)^(1/3)’,’x’);[root,n]=stablepoint_solver(ph,1)运行结果:root=1.3247n=8若对任意x 0∈[a , b ],由不动点迭代格式lim *k k x x →∞=则称迭代过程收敛,且x *=ϕ(x *)即f (x*)=0,x *为不动点。

非线性方程求根—牛顿迭代法(新)

非线性方程求根—牛顿迭代法(新)

非线性方程求根——牛顿迭代法一、牛顿迭代法的基本思想基本思想:将非线性方程逐步归结为某种线性方程求解。

设方程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 *附近至少平方收敛。

非线性方程的求根方法

非线性方程的求根方法

取 x0=0,
3 xk xk 3 xk 1 xk 2 3 xk 1
(k = 0, 1, · · · · · )
y x1 x2 x3 x0 x
y=x3 – x – 3
Newton迭代法陷入死循环的另一个例子
f’<0, f”>0
f’>0, f”>0
f’>0, f”<0
f’<0, f”<0
牛顿迭代法的收敛域问题:
用牛顿迭代法求解复数方程 z3 – 1 = 0,该方程在复 平面上三个根分别是 z1 = 1
1 3 z2 i 2 2
1 3 z3 i 2 2
选择中心位于坐标原点,边长 为2的正方形内的任意点作初始 值,进行迭代,把收敛到三个 根的初值分为三类,并分别标 上不同颜色(例如红、黄、 蓝)。对充分多的初始点进行 实验,绘出牛顿迭代法对该方 程的收敛域彩色图。
牛顿法的计算步骤: 1)给出初始近似值x0,及精度 2)计算:按迭代公式
f ( x0 ) x0 x1 f ( x 0 )
计算出x1 3)若 x1 x0 ,则转向4);否则 x1 x0 转向2) 4)输出满足精度的根x1,结束
例2.5 用牛顿法解方程 x=e–x
在 x0=0.5 附近的根。
由定理2.5知牛顿迭代公式具有局部收敛性。
由定理2.6知 Newton迭代法至少平方收敛。因此用 Newton法求单根的收敛速度是较快的。
[ f ( x )]2 f ( x ) f ( x ) f ( x ) f ( x ) 2[ f ( x )]2 f ( x ) ( x ) [ f ( x )]3
x1 x*
f ( x1 ) x2 x1 ( x1 x0 ) f ( x1 ) f ( x0 ) xk 1 f ( xk ) xk ( x k x k 1 ) f ( x k ) f ( x k 1 ) ( k =1,2,· · · · · · ·)

第十章非线性方程及非线性方程组解法

第十章非线性方程及非线性方程组解法

(
x
)
n
lim
n
x
n

{x
}
n
收敛,即
lim xn x*,则:
n
x* (x*) f (x*) 0
迭代过程的几何表示
x (x) :
y x 交点即真根。
y (x)
yx
y
Q1
Q2
P* P2
O x* x2
P1
x1
y (x)
P0
x0
x
例:求方程 f (x) x3 x 1 0 在x0 1.5附近的根x*. 解:(1) 将方程改写为 x 3 x 1
第十章 方程求根
求解非线性方程
f (x) 0 f 是非线性函数,
例:代数方程
a x a x a x a f (x) n
n1 L
0, n 1。
n
n1
1
0
例: 超越方程
f (x) ex sin x 0
§1. 非线性方程实根的对分法(二分法)
设 f (x) 在[a,b] 上连续且 [a,b] 有且仅有一个根又
xn1 (xn ) (n 0,1,L )
均收敛于x*,并有
x* xn
Ln 1 L
x1 x0
收敛充分性定理(一、2)
证:由条件(2)知(x)在[a, b]上连续。 令 (x) x (x),则 (x)在[a,b]上连续,且
(a) a (a) 0, (b) b (b) 0 故存在 [a,b],使得() 0,即 (), 所以方程x (x)在[a,b]内有根。
可先用二分法或经验确定迭代初值x0 0.5,再按牛
顿公式进行迭代。
Newton法具有收敛快,稳定性好,精度高等优点,是求 解非线性方程的有效方法之一。但它每次迭代均需计算函 数值与导数值,故计算量较大。而且当导数值提供有困难 时, Newton法无法进行。

第4章非线性方程求根资料

第4章非线性方程求根资料

第4章 非线性方程求根问题的引入我们知道,在多项式方程中,求根公式有一、二、三、四次方程,当n 大于等于已经证明不能用公式计算,因此需要寻找另一种计算方法;同时在工程和科学技术中许多问题常常归结为求解非线性方程式的问题,非线性方程的解法也需要给出一种方法,本章来讨论这个问题。

例1 关于真实气体的状态方程为是气体常数)是绝对温度,是气体体积,是气体压力,(其中,R T V p RT b V Vap =-+))((2如果p 与T 都已知,则求体积V 的方程为b Va p RTV ++=)(2 这是一个非线性方程,如何求解呢? 通常,非线性方程的根不止一个,对于非线性方程一般用对分法与迭代法求解。

在用迭代法时,要给定初始值或求解范围。

4.1 实根的对分法设有非线性方程0)(=x f 为[a,b]上的连续函数,且0)()(<⋅b f a f (不妨设方程只有一个实根),二分法叙述如下:第1步:)(2/)(],[],[111111x f b a x b a b a 的函数值,计算区间中点记+==,如果 即为所求的根;如果,则110)(x x f = 0)()(11<⋅x f a f则根一定在区间内内,否则一定在区间],[],[],[],[22112211b a b x b a x a ≡≡。

于是我们得到长度缩小一半的含根区间],[22b a ,即 )(21)(21,0)()(112222a b a b a b b f a f -=-=-<⋅ 设已经完成了第1,第2,……,第k-1步,得到分半计算的含根区间],,[],[],[2211k k b a b a b a ⊃⊃⊃ 且满足: (1)],[,0)()(*k k k k b a x b f a f ∈<⋅(2))(21)(211111a b a b a b k k k k -=-=---,现我们看第k 步:。

如果即计算)(,2/)(k k k k x f b a x += 即为所求。

第六讲 非线性方程求根

第六讲 非线性方程求根

设方程f(x)=0有近似根xk(f `(xk)0),将f(x)在xk 展开: (在x和xk之间)
f ( ) 2 f ( x) f ( xk ) f ( xk )( x xk ) ( x xk ) 2!
可设
f ( x) f ( xk ) f ( xk )( x xk )
x
f (x ) x f ( x )
例:采用切线法求方程在区间[0.5,2]上的一个根。
x x 20
3
>> r=NewtonRoot('sqrt(x)-x^3+2',0.5,2)
r= 1.4759
弦截法(割线法) 在Newton迭代格式中,用差商近似导数,
f ( xk ) f ( xk 1 ) f ( xk ) xk xk 1
function r=FindRoots(f,a,b,eps) f_1=subs(sym(f),findsym(sym(f)),a); %两端点的函数值 f_2=subs(sym(f),findsym(sym(f)),b); mf=subs(sym(f),findsym(sym(f)),(a+b)/2); %中点函数值 if(f_1*mf>0) t=(a+b)/2; r=FindRoots(f,t,b,eps); %右递归 else if(f_1*mf==0) r=(a+b)/2; else if(abs(b-a)<=eps) r=(b+3*a)/4; else s=(a+b)/2; r=FindRoots(f,a,s,eps); %左递归 end end end 注:SUBS:Symbolic substitution. Also used to evaluate expressions numerically. SYM ; Construct symbolic numbers, variables and objects. FINDSYM:Finds the symbolic variables in a symbolic expression or matrix.

求根公式法

求根公式法

求根公式法
求根公式法是一种解决非线性方程组的数学方法,它利用函数f(x)和它的导数f'(x)来构造一个特殊的多项式P(x),使得P(x)=0时,x就是原方程所要求的根。

它是一种重要的数学工具,在数学建模中有广泛的应用。

求根公式法的基本思想是将原方程f(x)=0转化为一个比较容易求解的表达式:P(x)=0,这里P(x)是一个多项式,它的定义如下:
P(x) = f(x) + xf′(x)
即,把原方程的右端的常数项加上x乘以方程的导数,然后遍历x的每一个值,求出P(x),当P(x)=0时,x 即为原方程的根。

因此,求根公式法就是一种迭代法,我们只需要采用不同的初值,然后不断更新,最终求出一组方程的根。

当然,还需要考虑一些问题,比如收敛性,算法的精度等。

求根公式法的优势在于它的简单性,而它的缺点也非常明显:求根公式法虽然简单,但它的收敛性和精度都不能保证。

它的收敛性取决于初值的选择,如果初值不合适,那么迭代的结果可能会收敛到一个偏差很大的值,甚至不收敛。

而精度则取决于迭代次数,如果迭代次数太少,那么精度也会受到影响。

求根公式法是一种解决非线性方程组的有效方法,尤其是对于不容易直接求解的方程,它能够有效地求解出精确的结果。

此外,它也适用于解决更复杂的方程,比如常微分方程、积分方程等。

总之,求根公式法是一种简单易用的数学工具,它的应用范围很广,可以用来解决复杂的非线性方程组,是数学建模中的重要工具。

数学实验项目-使用二分法对非线性方程求根

数学实验项目-使用二分法对非线性方程求根

end 程序输出
n=01,当前有根区间是[0.000000,0.500000],近似根为 0.500000,wucha=0.500000 n=02,当前有根区间是[0.250000,0.500000],近似根为 0.250000,wucha=0.250000 n=03,当前有根区间是[0.250000,0.375000],近似根为 0.375000,wucha=0.125000 n=04,当前有根区间是[0.250000,0.312500],近似根为 0.312500,wucha=0.062500 n=05,当前有根区间是[0.250000,0.281250],近似根为 0.281250,wucha=0.031250 n=06,当前有根区间是[0.265625,0.281250],近似根为 0.265625,wucha=0.015625 n=07,当前有根区间是[0.265625,0.273438],近似根为 0.273438,wucha=0.007813 n=08,当前有根区间是[0.265625,0.269531],近似根为 0.269531,wucha=0.003906 n=09,当前有根区间是[0.265625,0.267578],近似根为 0.267578,wucha=0.001953 n=10,当前有根区间是[0.265625,0.266602],近似根为 0.266602,wucha=0.000977 n=11,当前有根区间是[0.266113,0.266602],近似根为 0.266113,wucha=0.000488 n=12,当前有根区间是[0.266113,0.266357],近似根为 0.266357,wucha=0.000244 n=13,当前有根区间是[0.266235,0.266357],近似根为 0.266235,wucha=0.000122 n=14,当前有根区间是[0.266235,0.266296],近似根为 0.266296,wucha=0.000061 n=15,当前有根区间是[0.266235,0.266266],近似根为 0.266266,wucha=0.000031 n=16,当前有根区间是[0.266235,0.266251],近似根为 0.266251,wucha=0.000015 n=17,当前有根区间是[0.266243,0.266251],近似根为 0.266243,wucha=0.000008 n=18,当前有根区间是[0.266247,0.266251],近似根为 0.266247,wucha=0.000004 n=19,当前有根区间是[0.266247,0.266249],近似根为 0.266249,wucha=0.000002 n=20,当前有根区间是[0.266248,0.266249],近似根为 0.266248,wucha=0.000001

计算方法非线性方程求根

计算方法非线性方程求根

计算方法非线性方程求根第十章非线性方程求根知识点:求根的基本概念,对分法,迭代法,误差,编程停机判断,算法说明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→∞)。

第2章非线性方程求根

第2章非线性方程求根

y
y=x
p1
x (x)
p0

y
x (x)
p0
y=x
p1
x
x0
x1
x
x0 x1
说明在根 附近,曲线的切线不能太陡! 17
例2.2.1 求方程 f (x) x3 x 1 0 在x0 1.5附近的根.
解 (1) 将方程改写为 x 3 x 1
由此建立迭代公式 xk1 3 xk 1 得
k0 1
(Lp1
Lp2
...1) |
xk 1
xk
|
1 1 L
|
xk 1
xk
|,
令p ,得
|
xk
|
1 1 L
|
xk 1
xk
|.
因而可通过检查 | xk1 xk | 来判断迭代过程应否终止。
24
例2.2.3 求 f (x) 9x2 sin x 1 0 在[0,1]内的一个根。
解 由于 f (0) 1 0,
(bk 1
ak1)
...
1 2k
(b
a).
因此,当
k
足够大时,我们可以用
xk
ak
bk 2
作为函数
f (x)的一个根 的近似值。
此时有误差估计:
xk
bk ak 2
ba. 2k 1
常用来估计k的值
9
四、算法的优点与缺点
优点:计算简单且必收敛,是一种可靠的算法;对函数性质要 求低,只要求函数f(x)连续就可以了。
(2). 若 f (x0 ) f (a) 0,则令a1 a,b1 x0; 若 f (x0 ) f (b) 0,则令a1 x0,b1 b.

第七章非线性方程求根

第七章非线性方程求根
求f(x)=0的根
一、对分区间法 原理:若 f(x) C[a, b],且 f (a) · (b) < f 0,则f(x) 在 (a, b) 上必有一根。
误差 分析: 第1步产生的
ab ba x1 有误差 |x1 x*| 2 2
| xk x*| ba 2k
第 k 步产生的 xk 有误差
有根区间 -(1,2)+ (1,1.5) (1.25,1.5) (1.25,1.375) (1.313,1.375) (1.344,1.375) (1.360,1.375) (1.360,1.368)
中点 x n
x 2 1.25 x 3 1.375 x4 1.313 x5 1.344 x6 1.360 x7 1.368 x8 1.364
f ( x0 ) x1 x0 作为第一次近似值 f ( x0 )
重复上述过程
xk 1
f ( xk ) xk f ( xk )
牛顿法的几何意义
Tangent line : y f ( x0 ) f ( x0 )( x x0 )
y
f ( x0 ) x1 x0 f ( x0 )


|x k-1-x*|

(|xk-xk-1|+|xk-x*|),
故有 |xk-x*| ≤
/(1-)|xk-xk-1|.
可用 | xk 1 xk | 来 控制收敛精度
这就证明了估计式(6).
(5) |xk-xk-1| = |g(xk-1)-g(xk-2)|


|x k-1-xk-2|≤…≤
收敛性分析
定义2 若存在常数(0≤ <1),使得对一切 x1,x2∈[a,b], 成立不等式 |g(x1)-g(x2)|≤ |x1-x2|, (5) 则称g(x)是[a,b]上的一个压缩映射, 称为压缩系数

第7章非线性方程求根

第7章非线性方程求根

第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]上连续,区间二分法就可使用,但区间二分法不能用来求偶次重根,由于区间二分法收敛比较慢,在实际计算中,区间二分法常用来求比较好的含根区间和初始近似值,以便进一步使用收敛更快的迭代法求出更精确的近似值。

第6章 非线性方程求根(2、newton法、迭代法的收敛阶)

第6章 非线性方程求根(2、newton法、迭代法的收敛阶)

定理 考虑方程 x = g(x), g(x)∈C[a, b], 若 ∈
( I ) 当 x∈[a, b] 时, g(x)∈[a, b]; ∈ ∈ ; ( II ) 0 ≤ L < 1 使得 | g’(x) | ≤ L < 1 对 x∈[a, b] 成立。 成立。 ∈ 则任取 x0∈[a, b],由 xk+1 = g(xk) 得到的序列 { x k }∞= 0 收 , k 敛于g(x) 在[a, b]上的唯一不动点。并且有误差估计式: 敛于 上的唯一不动点。并且有误差估计式: 上的唯一不动点 k 1 L | x * xk | ≤ | x k +1 x k | | x * xk | ≤ | x1 x 0 | 1 L 1 L 且存在极限
=
m 1 m
A3: 线性收敛
下山法 /* Descent Method */ ——Newton’s Method 局部微调: 局部微调: 原理: 减小, 原理:若由 xk 得到的 xk+1 不能使 | f | 减小,则在 xk 和 xk+1 之间找一个更好的点 x k + 1 ,使得 f ( xk+1 ) < f ( xk ) 。 xk xk+1
f ( xk ) x k +1 = λ [ x k ] + (1 λ ) xk f ′( xk ) = xk λ f ( xk ) f ′( xk )
λ xk +1 + (1 λ ) xk , λ ∈ [0, 1]
注:λ = 1 时就是Newton’s Method 公式。 时就是 公式。 代入效果不好时, 减半计算。 当 λ = 1 代入效果不好时,将 λ 减半计算。
x * x k +1 lim = g ′( x * ) k →∞ x * x k

第6章 - 非线性方程求根方法

第6章 - 非线性方程求根方法
1 2
② 计算:f0 = f (x0)(即中点函数值)
③ 生成含根区间 若 f (x0) = 0, 则x* = x0, 若f (x0) · (a0) > 0, 取 a1= x0, b1 = b0, f 若f (x0) · (a0) < 0, 取 a1= a0, b1 = x0 f
8
生成含根区间[a1, b1]满足:
二、 非线性方程(组)求解的特点
求解的特点:无求解公式,无直接解法,难求得精确解。 例: 超越方程 ex + cosx = 1 没有一定的解法。 又例如对于大于等于五次的代数方程,无解析根表 达公式,只能使用数值方法对于实际问题进行求解。
2
考虑非线性方程:
f (x) = 0
原理
如果
f ( x) C[a, b], f (a) f (b) 0
如果取初值 x0 = 1.9 ,计算得 k 0 1 2 3 4 5 xk 1.9 1.89453647 1.89352114 1.89333233 1.89329722 1.89329069 k 6 7 8 9 10 … xk 1.89328947 1.89328925 1.89328921 1.89328920 1.89328920 ……
1.6093750
1.6015625 1.5976562 1.5957031 1.5947266 1.5947266 1.5947266 1.5946045 1.5946046
1.6015625
1.5976562 1.5957031 1.5947266 1.5942383 1.5944824 1.5946045 1.5945435 1.5945741
(3.1)
(2) 从某初始值x0出发,作序列{xk}

第二节 非线性方程求根

第二节 非线性方程求根

8
2015/5/17
二分法——误差估计

每次根的估计值为
xr =
xl + xu 2
old x new − x r r
真实根落在长度为 的区间中, new old xu − xl
xr − xr = 2
xu − xl L = 2 2
x
old r
前一次迭代
x* xrnew
xl
x rnew − x* xrnew ×100%
v = 40.059
图解法不精确,但可以提供初始猜测值, 理解函数性质和预测数值方法缺陷。
2015/5/17
数值计算方法
4
非线性方程求根
二分法 试位法 不动点迭代 Newton-Raphson方法 割线法

划界法 Bracketing Methods
开方法 Open Methods
非线性方程求根
浙江大学控制系
非线性方程求根

方程
f ( x)= ax + bx + c= 0
2
− b ± b 2 − 4ac x= 2a

代数方程求根问题是一古老的数学问题,十六世纪人们找到了 求三次、四次方程根的公式,十九世纪证明了大于等于五次的 代数方程没有一般的求根公式。
ax 5 + bx 4 + cx 3 + dx 2 + ex + f = 0 ⇒ x = ? sin x + x = 0 ⇒ x = ?
2015/5/17
数值计算方法
20
试位法

使用试位法求解例2中方程的根,并与二分法进行对比。 解: xl=12, xu=16
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

非线性方程求根的方法简介与例题第一篇:非线性方程求根的方法简介与例题非线性方程f(x)=0求根主要可以采用下面三种方法,下面简单介绍下,并附例题,让解法更一目了然。

1)二分法简介:计算步骤如下:例题:2)不动点迭代,也叫简单迭代。

隐式化为显式,迭代法是一种逐次逼近法;其中f(x)'<1才能满足上述迭代格式。

继续迭代。

3)牛顿迭代法,实际上也叫切线法,是通过下面的方式推导出来的。

上述题目很简单,用牛顿法迭代就可以达到目的。

我们先设f(x)=x-cosx=0由公式得x=x0-x-cosx1+sinx0我们用二分法的原理,我们取x得x1=π,=x0-x0-cosx01+sinx0x1-cosx11+sinx1x2-cosx21+sinx2=π-π+11=1 x2=x1-=1-1-cos11+sin1=0.9998x3=x2-=1-1-cos0.99981+sin0.9998=0.9998x3=x2,并具有四位有效数字,所以只需迭代两次就可以达到题目所需的精度要求第二篇:非线性方程迭代上机作业总体要求:1. 2.开发语言可用任一种高级语言作业包括1)一份实验报告2)电子版作业的全套(压缩后提交在Webcc上),包括:⌝程序源代码;⌝可执行程序;⌝电子版实验报告(内容包括:一、实验目的二、模型建立三、模型求解 3.1 开发环境3.2 程序设计说明(要求设计为通用的)3.3 源代码 3.4 程序使用说明 3.5 模型的解四、小结(可含个人心得体会))第六章逐次逼近法§ 3 非线性方程的迭代解法上机实验题求 x5-3x3+x-1= 0 在区间[-8,8〕上的全部实根.试分别用:(1)二分法;(2)Newton法;(3)弦截法(割线法);(4)Newton下山法;求方程的根.准确到6位有效数字.要求:讨论求解的全过程,对所用算法的局部收敛性,优缺点等作分析及比较.以实验报告的形式提交.完成时间:5月18日第三篇:非线性方程的数值解法《计算方法》期末论文论文题目非线性方程的数值解法学院专业班级姓名学号指导教师日期目录摘要第1 章绪论1.1 问题的提出和研究目的和意义 1.2 国内外相关研究综述 1.3 论文的结构与研究方法第2 章非线性方程的数值解法2.1 二分法 2.2 迭代法2.3 迭代法的局部收敛性及收敛的阶 2.4 牛顿迭代法 2.5 牛顿法的改进 2.6 插值摘要数值计算方法,是一种研究解决数学问题的数值近似解方法,它的计算对象是那些。

在理论上有解而又无法用手工计算的数学问题。

在科学研究和工程技术中都要用到各种计算方法。

例如在地质勘探、汽车制造、桥梁设计、天气预报和汉字设计中都有计算方法的踪影。

本文讨论了非线性方程的数值解法:非线性方程的二分法、迭代法原理、牛顿迭代法,迭代法的收敛性条件及适合非线性方程的插值法等等。

第1 章绪论可以证明插值多项式L(x)n 存在并唯一。

拉格朗日插值多项式的算法step1.输入插值节点控制数n插值点序列i i x , y i=0,1,…,n要计算的函数点x。

step2.FOR i =0,1,…,n i 制拉格朗日基函数序列问题的提出和研究目的和意义非线性方程的问题在工程实践中有很多用途研究其数值解法是当前一个研究方向。

目前已有相当一部分算法在广泛使用于工程实践中。

非线性方程组和无约束最优化的数值解法一直是数值优化领域中热门的研究课题。

本文对传统的方法进行改进和提出新的算法该算法不仅有重要的论价值,而且有很高的实用价值。

例如在天体力学中,有如下Kepler开普勒方程x-t-sin x=0,0< <1,其中t 表示时间x 表示弧度,行星运动的轨道x 是t 的函数。

也就是说,对每个时刻i t 上述方程有唯一解i x,运动轨道位置。

国内外相关研究综述随着科学技术的高速发展和计算机的广泛应用求解形如F(x)=0 的非线性方程组问题越来越多的被提出来了其中F 是的连续可微函数。

例如非线性有限元问题、非线性断裂问题、弹塑性问题、电路问题、电子系统计算以及经济与非线性规划问题等都可转化为非线性方程组的求解问题。

只要包含有未知函数及其导函数的非线性项的微分方程,无论是用差分方法或有限元方法,离散化后得到的方程组都是非线性方程组。

与线性方程组相比,非线性方程组的求解问题无论在理论上还是在解法上都不如线性方程组成熟和有效.例如,非线性方程组是否有解,有多少解,理论上都没有很好的解法,而对于非线性方程组,除了形式极为特殊的小型方程组以外,直接解法几乎是不可能的.因而,我们主要考虑迭代解法.一般都是采用线性化的方法去构造各种形式的迭代系列.通常都要讨论以下几个基本问题:第一个问题是,迭代点列的适定性问题,即要求迭代点列是有意义的.例如对于牛顿法,Jacobi 矩阵必须是非奇异的.第二个问题,也是最基本的问题,生成的迭代点列的收敛性以及极限点是否为方程组的解.最后一个问题是,迭代点列的收敛速度问题.早在七十年代以前,许多学者在理论上和数值解法上都对非线性方程组做了大量的研究.Ortega Rheinboldt 系统的介绍了n 阶非线性方程组的基本理论成果,并对牛顿法,延拓法等几种主要迭代法作了详尽的分析.另外,也有一些学者把非线性方程组的求解问题转化为极小化问题, 得到一类称为极小化方法的迭代法, 如下降法, 共轭方向法,Gauss-Newton 法等,李,莫&祁详细介绍了一些适合在计算机上求解的有效算法,如Broyden 算法,以及近十几年来发展的新方法,如区间迭代法,单调迭代法和单纯形法等.论文的结构与研究方法1.欲解决的主要问题是:综合当前各类非线性方程的数值解法,通过比较分析,二分法,迭代法,牛顿——雷扶生方法,迭代法的收敛阶和加速收敛方法,解非线性方程的插值方法,这以上五种的算法应用对某个具体实际问题选择相应的数值解法。

2.比较各类数值算法分析其优缺点并应用到具体的实际问题中。

3.利用计算机MATLAB 语言对非线性方程的数值解法进行程序设计。

研究的基本思路是结合目标所提出的问题针对各种方法来具体分析比较(1)二分法起始区间[a,b]必须满足f(a)与f(b)符号相反的条件。

二分法的第一部是选择中点c=(a+b)/2,然后分析可能存在的三种情况如果f(a)和f(c)符号相反,则在区间[a,c]内存在零点。

如果f(c)和f(b)符号相反则在区间[c,b]内存在零点。

如果f(c)=0,则c是零点。

(2)迭代法迭代是指重复执行一个计算过程,直到找到答案。

首先需要有一个用于逐项计算的规划或函数g(x),并且有一个起始po。

然后通过迭代规则k 1 p =g(k p),可得到序列值{ k p }。

(3)牛顿——雷扶生法如果f(x)f ‘(x)和f “(x)在根p 附近连续则可将它作为f(x)的特性,用于开发产生收敛到根p 的序列{ k p }的算法。

而且这种算法产生序列{ k p }的速度比二分法快。

牛顿——雷扶生法依赖于f’(x)和f ”(x)的连续性,是这类方法中已知的最有用和最好的方法之一。

(4)迭代法的收敛阶和收敛方法、割线法只计算f(x)不计算f ’(x)而且在单根上的收敛阶R 1.618033989。

割线法比牛顿法收敛速度慢一些顿法的收敛阶为2。

当p 是一个M 阶根时要更好的求根技术以获得比线性收敛更快的速度。

最终结果显示过对牛顿法进行改进使其在重根的情况下的收敛阶为2。

加速收敛方法有Aitken 加速法和Steffensen 加速法。

Steffensen 算法是促使迭代加速收敛的有效算法,但该算法每算一步,需两次迭代,其效率不够高。

(5)解非线性方程的插值方法Lagrange 插值公式需要进行提高插值多项式次数的插值计算是不方便的。

这些方法它们各有优缺点二分法的优点是对函数f(x)的性态要求不高,只需连续即可,且计算程序简单,能保证收敛。

其缺点是收敛速度较慢只能求实函数的实零点重或奇数重零点。

该方法一般用于确定方程根或函数实零点的粗略位置,为快速收敛的算法提供初值。

Newton 法的主要优点是收敛速度快,缺点是其收敛性是局部收敛,要求初始值0 x 选在精确解* x 附近才能保证收敛。

割线法迭代一次仅需计算函数值f(k x)可保留作为下次迭代用,且避免了计算导数。

第2 章非线性方程的数值解法满足非线性方程f(x)=0 的解x ,称为方程的根或零点。

一般用迭代法求非线性方程的根。

通常,非线性方程的根不是唯一的,而任何一种方法一次只能算出一个根。

因此,在求解非线性方程时,要给定初始条件或求解范围。

根可为实数或复数,也称为实根或复根。

二分法二分法是求方程近似解的一种简单直观的方法。

设函数f(x)在[a,b]上连续,且f(a)f(b)<0,则f(x)在[a,b]上至少有一零点是微积分中的介值定理[1],也是使用二分法的前提条件。

计算中通过对分区间缩小区间范围的步骤搜索零点的位置。

二分法是对逐步搜索法的一种改进。

对于有根区间[ a, b ], 如果取x0=(a+ b)ˆ2,则0 x 将其分为两半;然后通过检查f(0 x)与f(a)是否同号来判断根的位置(见图1)。

如此反复二分, 即可得出一系列的有根区间;其中,每个区间都是前一个区间的一半。

当K→∞时, 该区间的大小趋近于零, 其值便为所求方程f(x)= 0 的根。

由此可见, 二分法算法简单, 在允许的误差范围内通过有限次的计算,总能求得方程在该有根区间的根。

二分法求根算法计算f(x)=0 的一般计算步骤如下step1入求根区间[a,b]和误差控制量ε义函数f(x)。

IFf(a)f(b)〈0 〉THEN 做step2 ELSE 退出选用其他求根方法 step 2WHILE |a-b|>ε计算中点x=(a+b)/2 以及f(x)的值;分情况处理 | f(x)|〈ε 止计算x =x,转向step4 f(a)f(x)<0正区间[a,x]->[a,b] f(x)f(b)<0: 修正区间[x,b]->[a,b] ENDWHILE step 3: x =(a+b)/2。

Step 4:输出近似根x。

二分法的算法简单而f(x)在[a,b]上有几个零点时能算出其中一个零点一方面使f(x)在[a,b]上有零点.也未必有f(a)f(b)<0。

这就限制了二分法的使用范围。

二分法只能计算方程f(x)=0 的实根。

迭代法迭代法的局部收敛性及收敛的阶一种迭代过程,只有具备了收敛性,才能表明其迭代的有效性,同时还需要考察其迭代过程的收敛速度[3],即其在接近收敛的过程中迭代误差的下降速度。

迭代计算过程不收敛,可能是因为迭代格式本身构造不成功,那么算法必须重新构造,也可能是初值选择不当这时往往可通过调整初值解决牛顿迭代法设r是f(x)= 0的根,选取x0作为r初始近似值,过点(x0,f(x0))做曲线y = f(x)的切线L,L的方程为y = f(x0)+f'(x0)(x-x0),求出L 与x轴交点的横坐标 x1 = x0-f(x0)/f'(x0),称x1为r的一次近似值。

相关文档
最新文档