第六讲 非线性方程求根

合集下载

第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

非线性方程求根

非线性方程求根
得到一个迭代序列: x0,x1,x2,. . . ,xn,. . .
几何含义:求曲线 y = (x) 与直线 y = x 的交点
18:28:03
Numerical Analysis
9
y p0 x0 y
18:28:03
y=x
p1
y= (x)

y p0
y=x

p1 y= (x)
x x1 x2 x*
x0
(x) ( y) L x y
则(x) 在 [a,b] 上存在唯一的不动点 x*
证明:P216
18:28:03
Numerical Analysis
12
收敛性分析
不动点迭代的收敛性
定理:设 (x) C[a,b] 且满足
(1) 对任意的 x[a,b] 有 (x)[a,b]
(2) 存在常数 0<L<1,使得任意的 x, y[a,b] 有
for k = 1 : n x = g(x); fprintf('k=%2d, x=%.7f\n',k,x); if abs(x-xt)<tol, break, end
end xt = fzero(f,[3,4]);
fprintf('True solution: x = %.7f\n', xt)
% Steffenson 加速
性质:若
lim
k
xk
x *,则不动点迭代收敛,且 x*
是 f(x)=0 的解;否则迭代法发散。
18:28:03
Numerical Analysis
11
解的存在唯一性
解的存在唯一性
定理:设 (x) C[a,b] 且满足

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

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

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

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

非线性方程求根方法

非线性方程求根方法
|b-a|< ε
0 y
输 出x 结束
n
x a
n
例2 证明方程 x3 2x 5 0 在区间[2, 3]内有一个根,
使用二分法求误差不超过0.5×10-3 的根要二分多少 次? 证明 令 f ( x) x3 2x 5则 f (2) 1 0, f (3) 16 0 且f(x)在[2, 3]上连续,故方程f(x) =0在[2,3]内至少有一
第六章 非线性方程的数值解法
6.1 引言
在科学研究和工程设计中, 经常会遇到的一大类 问题是非线性方程
f(x)=0
(6.1)
的求根问题,其中f(x)为非线性函数。
方程f(x)=0的根, 亦称为函数f(x)的零点.
如果f(x)是多项式函数,则称为代数方程,否则 称为超越方程(三角方程,指数、对数方程等)。一 般称n次多项式构成的方程
an xn an1xn1 L a1x a0 0 (an 0)
为n次代数方程,当n>1时,方程显然是非线性的 一般稍微复杂的3次以上的代数方程或超越方程,
很难甚至无法求得精确解。本章将介绍常用的求解 非线性方程的近似根的几种数值解法
通常方程根的数值解法大致分为三个步骤进行
① 判定根的存在性。即方程有没有根?如果有 根,有几个根?
满足不等式
|
xn
x*
|
ba 2n1
证 因为an x* bn , 所以
|xn
x
*|=|1 2
(an
bn )-x*|
=
1 2
|
(an
-x*
)
(bn
-x
*
)|
1 2
(|
(an
-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.

《应用数值分析》课件数值分析6非线性方程(组)求根

《应用数值分析》课件数值分析6非线性方程(组)求根

这种格式称为简化Newton迭代法
精度稍低
迭代法的局部收敛性
无论哪种迭代法:Newton迭代法 简化Newton法
是否收敛均与初值的位置有关.
例3 f (x) x3 x 3, 精确解x* 1.6717
用Newton迭代法求解: xk1 xk (xk3 xk 3) / (3xk2 1)
收敛
定理6.4.1假设 x* 是 f (x)的单根,f (x)在根
的邻域 :x x 内具有二阶连续导数,
且对任意 x 有 f x 0,又因初值x0 ,
则当邻域 充分小时,牛顿法具有2阶收敛速度.
改进的Newton迭代
• 简化Newton迭代 • 拟Newton法(Broyden方法) • 离散Newton法
6.6. 非线性方程组的迭代法 把非线性方程组改写成 x (x) (1(x),2 (x), ,n (x))T
并构造不动点迭代法 x(k1) (x(k) ), k 0,1,
给定初始点 x(0), 生成迭代序列 x(k)
若 lim x(k) x*, 且 (x) 是连续的, 则 x* 满足 x* (x*) k
与 x 轴的交点,作为下一个迭代点 xk1,
即x k 1
xk
f (xk ) f '(xk )
Newton法的改进
Newton迭代法
xk 1 xk
f ( xk ) f ( xk )
需要求每个迭代点处的导数 f (xk )
用x0近似替代f (xk )中的xk , 得
复杂!
xk 1 xk
f ( xk ) f ( x0 )

k0
x1(k )
0
x
(k 2
)
0

第六章非线性方程求根-席解析

第六章非线性方程求根-席解析
第六章 非线性方程求根
非线性方程 f (x) 0的解称为 f (x) 的根或零点。
本章主要研究单个非线性方程求根的一些方 法,如图解法、二分法、牛顿迭代法、割线法等, 另外简单介绍一下求解非线性方程组的逐次代换 法和牛顿迭代法。
MATLAB命令
例1:解方程 8x9 17x3 3x 1 解:在MATLAB里输入命令:
if ( abs(c-a)<=tolerance )
fprintf('Tolerance is satisfied. \n');break%终止for或
%while循环,在嵌套循环中,只跳出内层循环
end
if ( it>it_limit )
fprintf( 'Iteration limit exceeded.\n' ); break
else
while 1 %while后面为非零值时表示重复执行循环语句
it = it + 1;
b = (a + c)/2; Yb = feval(f_name, b );
fprintf('%3.0f %10.6f, %10.6f', it, a, b );
fprintf('%10.6f, %10.6f, %10.6f, %10.6f\n', c, Ya, Yb, Yc );
,
否则:若
f
a
2
b
0
,令
a1
a
2
b ,b1
b
反之
b1
a
2
b
,
a1 a.
2)对 [a1,b1] 重复 1)的计算,共产生[a2,b2], ,[an,bn] 3) 当区间小于给定的容许误差时,得到

数值分析课件 第六章非线性方程求根

数值分析课件 第六章非线性方程求根
OhSo basically we are yeah? Who tells done! the method you that I can’t believe it’s so simple! is convergent? What’s the problem?
§3. Fixed-Point Iteration y p1 p0 y=x y=g(x) y p0 y=x
几个根?
• 哪儿有根?确定有根区间
• 根的精确化:已知一个根的近似值后,能否
将它精确到足够精度?
本章假设 f C[a, b],且 f (a) · (b) < 0,则 f 在 (a, b) f 上至少有一根,(a,b)即为有根区间。问题1、2得到解 决。
1. 逐步搜索法
§2 根的搜索
x0=a xk-1 x* xk b
第六章 非线性方程求根
/* Solutions of Nonlinear Equations */ §1 Introduction
科学技术中常遇到高次代数方程或超越方程 的求根问题。大于4次的代数方程无求根公式。 因此需要研究函数方程求根问题的数值方法。
求 f (x) = 0 的根或零点x*
求根问题包括下面三个问题: • 根的存在性:即f(x)=0有没有根?若有,有

③ 当k 时, xk 收敛到 x* ?
| x * x k | | g ( x *) g ( x k 1 ) | | g ( ξ k 1 ) | | x * x k 1 |
L | x * x k 1 | ...... L | x * x 0 | 0
说明:①迭代函数不唯一,②迭代点列可能收敛,也可 能发散,迭代收敛与否不仅与迭代函数有关,还与初 始点有关。
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
ak bk 并取区间中点 xk 作为根的近似值,则有 2 1 1 x * xk (bk ak ) k+1 (b a) 2 2
1 -3 令 k+1 (b a) 10 k 10 2 2
1
6.4
一、基本思想与步骤 基本思想
简单迭代法
给定一个根的初始近似值,然后用同一个迭代 格式反复校正这个初值,直到得到满足精度要求的 根的近似值为止。 方法与步骤
用二分法求此方程的根,要求精确到小数点后面3位。
解: f (0) 1 0; f (1) e 8 0; f ( x)在[0,1]上连续;
f ( x) e x 10 0
f ( x) 0在(0,1)内有唯一实根 x *.
用二分法求此方程的根 ,设至少需要将 [0,1]区间对分k次,
第六讲 非线性方程求根问题
• 非线性是实际问题中经常出现的,而且地位越 来越突出。 • 我们熟悉的很多线性问题或模型,通常都是非 线性问题在一定条件下的一种近似。 • 非线性方程可以是单个的方程,更多的情况则 是多个方程联立的方程组。
例如:
x 2 x 6 x 13x 8 x 12 0
x *是函数 ( x)
,可见 由于 x *满足 x* ( x*) 的不动点。
因此简单迭代法又称为不动点迭代法。
例4:用简单迭代法求f ( x) x 2 x 3 0 在[2,4]内的根。
2
解:方法一
x 2 x 3 xk 1 2 xk 3 , k 0,1,2, 给定初值x0 4, 带入迭代格式,计算可得: x1 3.317, x2 3.104, x3 3.034, x4 3.011, lim xk 3
xk xk 1 或
xk xk 1 xk 1
r
来控制。
(2)当 ( x) 1 时,迭代发散 (3)该定理说明对在整个区间[a, b] 上任意选取的初值 迭代均收敛,故该定理称为迭代法的全局收敛性 定理。
收敛性图示
y=x
y ( x)
A0 P0
x0
A1 A 0 x* x2 x1
xk
为此,将原方程改写为 x ln(2 x), x [1,2] ( x) ln(2 x), ( x) [ln 3, ln 4] [1,2] 1 1 且 ( x) 1 , ( x [1,2]) 2 x 3 构造迭代格式 xk 1 ln(2 xk ) k 0,1,2, 该迭代格式是收敛的。
局部收敛性 (1)局部收敛概念
若迭代过程 xk 1 ( xk ) 对 x0 x x x * 均收敛,则称迭代格式在根 (2)局部收敛判定定理


x *附近具有局部收敛性。

( x) 在根的附近连续, x * 是方程 x ( x) 的根,
且 ( x*) 1 ,则迭代过程 xk 1 ( xk ) 在根的附近具有 局部收敛性。
k
迭代收敛!
方法二
1 2 1 2 x ( x 3) xk 1 ( xk 3), k 0,1,2, 2 2 给定初值x0 4, 带入迭代格式,计算可得: x1 6.5, x2 19.625, x3 191.070,
迭代发散! 问题:如何构造收敛的格式?如何估计误差? 如何提高收敛速度?
注意:
在实际应用中,只要迭代初值在根的附近,就可以用
( x0 ) 代替 ( x*) 加以判定是否局部收敛。
例6 已知方程
xe
x
考察用格式 在0.5附近有一个根,
xk 1 e
xk
求此根的局部收敛性。
解:这里 x0 0.5 因此有 ( x0 ) e0.5 0.61 1 所以该迭代格式具有局部收敛性。
2 2
( s x)
2 5

0 (3)
该方程的根为函数C(x)的驻点,将驻点和区间端点 x=a,x=s的函数值比较,就可以得到C(x)的最小 值点和最大值点。
6.2
基本概念
(1) 若 f ( x*) 0 则称 x *为方程 f ( x) 0 的根 或称为函数 f 的零点。 (2) 若 f ( x) 可以表示为
( p 1)
( x*) 0, ( p ) ( x*) 0
二、根的精确化——二分法 bisection method
应用前提
f ( x) C[a, b] ,且满足 f (a) f (b) 0,则方程
f ( x) 0在 [a, b]中至少有一个实根。
基本思想 通过隔根区间中点处函数值的符号,将隔根 区间逐次对分,使隔根区间的宽度逐步缩小,利 用宽度充分小的隔根区间内任何一点(通常用中 点)近似方程的根。
例7:设 ( x) x c( x 2 3) 应如何选取常数c, 才能使迭代格式 xk 1 ( xk ) 在方程 x ( x) 的根的附近具有局部收敛性? 解: 显然方程 x ( x) 的根为 x 3 ( x 3 ) 令 解得
( 3 ) 1 2c 3 1
lim
ek 1 ek
p
k
c0
成立,则称序列 xk 是p阶收敛的。
注: (1)当p=1且0<c<1时,称为线性收敛; (2)当p=2时,称为平方收敛; (3)当p=1,c=0时,称为超线性收敛; (4)p越大收敛越快。
2、收敛阶的判定
Th:给定方程 x ( x) ,x * 为方程的根,若满足 (1) ( x ) 在根的附近具有直到p阶的连续导数; (2) ( x*) ( x*)
二、迭代过程的收敛性与误差估计
Th1(全局收敛定理)
设函数 ( x )在[a, b]上满足: (1)x [a , b], ( x) [a , b] (2) 0 L 1, s.t.x [a, b], ( x) L 则方程 x ( x) 在[a , b] 上有唯一实根 均收敛到方程的根。
f ( x) ( x x*)m g ( x)
,则称 x *为方程 其中m为正整数,并且 g ( x*) 0
f ( x ) 0 的m重根或函数 f 的m重零点。
例如: f ( x) ( x 1)2 ( x 3)4 0
(3)方程的分类
若 f ( x) 是关于变量x的n次代数多项式,则称方程
图6.2
x 2 2 x 4 ln x 0
图6.3
2、数学分析法:零点定理+函数的单调性 例 2: 求方程 f ( x) x 3 3x 2 4 x 3 0 的一个隔根区间。 解:
f (0) 3 0 ,
2
f (2) 1 0 ,
2
f ( x) 3x 6 x 4 3( x 2) 1 0 f ( x)在[0, 2]内有且仅有一个根, [0, 2]就是方程的一个隔根区间
xk 1 xk ε1
f ( x) ε2
xk 1 xk xk
ε1
二分法的优点:计算简单,方法可靠; 缺点:不适合求偶数重根,也无法求复根,收敛速度 慢。通常用于为迭代法求方程的根提供一个较好的初 值。
例3:证明方程 f ( x) e x 10 x 2 0 存在唯一实根 x* (0,1)
P P2 sin 2 1 sin 1 I1 k , I2 k 2 2 r1 r2
(1)Biblioteka 其中k是量纲单位决定的比例系数,不妨记k=1.
同时还有
r h x
2 1
2 1
2
r2 h2 (s x)
2
2
2
h2 h2 h1 h1 sin 2 sin 1 2 2 2 2 r r1 2 h ( s x ) h1 x 2
P1 x0
y ( x)
A
y=x
A0
P0 P1
A1
A2
x2
P2 x1 x0 x*
例5:对方程 f ( x) e x x 2 0 用迭代格式
xk 1 e xk 2, k 0,1,2, 求根,是否收敛?
若不收敛,试构造一个收敛的迭代格式求此方程的根。
解: f (1) e 3 0, f (2) e 2 4 0; f ( x)在[1,2]上连续,从而 f ( x)在(1,2)内有零点。 ( x) e x-2, ( x) e x 1, ( x [1,2]) 迭代格式xk 1 e 2发散。
从而点Q的照度C应该为
C ( x ) I1 I 2
h
P 1h1
2
1
x
2 3


h
P2 h2
2
2
( s x)
2 3

(2)
于是,求路面上最暗点和最亮点的问题化为求函数 C(x)的最小值点和最大值点。为此,令
C ( x) 3
h
P 1h1 x
2
1
x
2 5

3
h
P2 h2 ( s x)
模型:建立如图6.1所示的坐标系,路面的宽度为s,两 只路灯的功率分别是P1和P2,高度分别是h1和h2.
P2 Y P1 h1 r1 r2 h2
O
1 Q 2
x 图6.1 路灯照明
s
X
设两路灯连线的路面上某点Q的坐标为(x,0),其中
0 x s 假设两个光源都可以看成点光源,它们在
点Q的照度分别为I1和I2。则
y
y f ( x)
x*
a
x1
图6.4
x0
二分法原理示意图
b
相关文档
最新文档