第六章非线性方程求根
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
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
§3. Fixed-Point Iteration
wenku.baidu.com
收敛于g(x) 在[a, b]上的唯一不动点,并且有误差估计式: 1 | x*x | | x x | 事后误差估计 1 L
k k 1 k
x k 0 则任取初值 x0[a, b],由 xk+1 = g(xk) 得到的序列 k
L | x1 x 0 | | x * xk | 1 L
k
( k = 1, 2, … )
事先误差估计
且存在极限
lim
k
x * x k 1 g x * x * xk
§3 Fixed-Point Iteration
证明:① g(x) 在[a, b]上存在不动点?
2. Bisection Method
2. 二分法 /* Bisection Method */(逐步搜索法的改进)
设f(x)的有根区间为[a,b]= [a0,b0], f(a)<0, f(b)>0.
将[a0,b0],对分,中点x0= ((a0+b0)/2),计算f(x0), 若f(x0) =0, x*=x0
x x0 y y=g(x) x1 x* y=x y y=g(x) p0 x0 x*
p1 y=g(x) x x1 y=x
p0 p1
x x0 x*
p1
x
x1 x0 x*
x1
§3. Fixed-Point Iteration
ex1. f ( x) x 2 2 x 3 0, x1 3, x2 1 x 2 x 3 g ( x), x0 4, xn 1 g ( xn ), n 0,1,..., xn 3 1 2 x ( x 3) g ( x), x0 4, x1 6.5, x2 19.625, 2 x3 191.0...., xn divergent.
误差分析
对于给定的精度 ,可估计二分法所需的步数 k :
ba ε k 2 k
ba |x1 x*| 第1步产生的 有误差 2 ba |xk x*| k 第 k 步产生的 xk 有误差 2
x1 ab 2
lnb a ln ε
ln 2
①简单,总收敛; ② 对f (x) 要求不高(只要连续即可) .
①无法求复根及偶重根 ② 收敛慢 注:用二分法求根,最好先给出 f (x) 草图以确定根的大概 位置。或用搜索程序,将[a, b]分为若干小区间,对每一个 满足 f (ak)· (bk) < 0 的区间调用二分法程序,可找出区间[a, f b]内的多个根,且不必要求 f (a)· (b) < 0 。 f
④ | x * xk |
1 | x k 1 x k | ? 1 L
| xk 1 xk | | x * xk | | x * xk 1 | | x * xk | L | x * xk | k 可用 | xk 1 xk | 来 L | x1 x0 | ? ⑤ | x * xk | 控制收敛精度 1 L
2. Bisection Method
取xk=(ak+bk)/2 ([ak,bk]的中点),显然有 limxk=x*. ——算法和收敛性说明。 When to stop?
a x1 x* x2 b
xk 1 xk ε1
或
f ( xk ) ε2
不能保证 xk的精度
2
x*
xk
2. Bisection Method
第六章 非线性方程求根
/* Solutions of Nonlinear Equations */ §1 Introduction
科学技术中常遇到高次代数方程或超越方程 的求根问题。大于4次的代数方程无求根公式。 因此需要研究函数方程求根问题的数值方法。
求 f (x) = 0 的根或零点x*
求根问题包括下面三个问题: • 根的存在性:即f(x)=0有没有根?若有,有
几个根?
• 哪儿有根?确定有根区间
• 根的精确化:已知一个根的近似值后,能否
将它精确到足够精度?
本章假设 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
| xk 1 xk | | g( xk ) g( xk 1 ) | | g( ξ k )( xk xk 1 ) | L | xk xL 1 | ...... Lk | x1 x0 | k 越 小 收敛越快
⑥ lim
k
lim
k
x * x k 1 g( ξ k )( x * xk ) lim g( x*) k x * xk x * xk
令 f ( x ) g( x ) x
f ( x ) 有根
a g( x ) b
f ( a ) g(a ) a 0 , f ( b ) g ( b ) b 0
② 不动点唯一?
~ ~ 反证:若不然,设还有 x g( x ),则
~ ~ ~ ~ x* x g( x*) g( x ) g( ξ ) ( x * x ), 在 x * 和 x 之间。 ~ ~ ( x* x )(1 g(ξ )) 0 而 | g(ξ ) | 1 x* x
3. Regula Falsi Method
xk xk 1
f ( xk 1 ) ( xk 1 b) f ( xk 1 ) f (b)
xk=(ak+bk)/2
注:1. 试位法每次迭代比二分法多算一次乘法,而且不 保证收敛。 2. 比例法不是通过使求根区间缩小到0来求根,而是 在一定条件下直接构造出一个点列(递推公式), 使该点列收敛到方程的根。——这正是迭代法的基 本思想。
§3. Fixed-Point Iteration
§3 迭代法 /* Fixed-Point Iteration */
等价变换
迭代函数
f (x) = 0 f (x) 的根
x = g (x),e.g., g(x)=f(x)+x g (x) 的不动点
可用§1中的方法
从一个初值 x0 出发,计算 x1 = g(x0), x2 = g(x1), …, xk 0 收敛,即存在 x* 使得 思 xk+1 = g(xk), … 若 k 路 lim x k x *,且 g 连续,则由 lim x k 1 lim g x k 可 k k k 知 x* = g(x* ),即x* 是 g 的不动点,也就是f 的根。
a x1 x*
x2 b
<0,有根区间: [a1,b1]=[x0,b]
>0,有根区间: [a1,b1]=[a, x0] 对[a1,b1]对分,如此反复进行,得到一系列有根区 间:
[a, b] [a1 , b1 ] [a2 , b2 ] [ak , bk ] bk 1 ak 1 ba bk ak k 0, k 2 2 f(ak)0, f(bk)0, f(x*)=lim f(ak)= lim f(bk) ak , bk , ak b, bk a, x , s.t. lim ak lim bk x , and f ( x ) 0.
[a, b] [a1 , b1 ] [a2 , b2 ] [ak , bk ] but it is not necessary bk ak 0, k
那么用什么来逼近解呢?
定理
设 f(a)f(b)<0,且f (x), f (x)在[a,b]内保号,则按 比例求根法确定的序列{xk}必收敛到根x*.
③ 当k 时, xk 收敛到 x* ?
| x * xk | | g( x*) g( xk 1 ) | | g(ξ k 1 ) | | x * xk 1 |
L | x * xk 1 | ...... Lk | x * x0 | 0
§3. Fixed-Point Iteration
x * x k 1 g x * ? x * xk
注:定理条件非必要条件,可将[a, b]缩小,定义局部收敛性 Def1.If there exists a neighborhood of x*, e.g., B = { x | | x x* | } ,s.t. x0 B , xk+1=g(xk) converges, then we say the iteration converges locally around x*.
f (ak ) xk ak (ak bk ) f (ak ) f (bk ) f (bk ) bk (ak bk ) f (ak ) f (bk )
3. Regula Falsi Method
if if
f ( xk ) f (ak ) 0, [ ak 1 , bk 1 ] [ ak , xk ] f ( xk ) f (bk ) 0, [ ak 1 , bk 1 ] [ xk , bk ]
1.逐步搜索法
设f (a) <0, f (b)> 0,有根区间 while ( b a ) do 为 (a, b),从x0=a出发, 按某个 预定步长(例如h=(b-a)/N)一步 { x0 a, h (b a ) / N , k 0 while f ( xk ) 0 一步向右跨,每跨一步进行一 { k k 1; xk xk h;} 次根的搜索,即判别 b xk ; a xk h( xk 1 ); f(xk)=f(a+kh)的符号,若 f(xk)>0(而f(xk-1)<0),则有根区间 } 缩小为[xk-1,xk] (若f(xk)=0,xk即 ①简单; 为所求根), 然后从xk-1出发,把 ② 对f (x) 要求不高 搜索步长再缩小,重复上面步 (只要连续即可) . 骤,直到满足精度:|xk-xk-1|< ①无法求复根及偶重根 为止,此时取x*≈(xk+xk-1)/2作 ② 计算量大,收敛慢 为近似根。
说明:①迭代函数不唯一,②迭代点列可能收敛,也可 能发散,迭代收敛与否不仅与迭代函数有关,还与初 始点有关。
定理1 (迭代收敛条件)
考虑方程 x = g(x), g(x)C[a, b], 若
( I ) x[a, b] , g(x)[a, b]; ( II ) 0 L < 1 , s.t. x[a, b], | g(x) | L.
§3. Fixed-Point Iteration
Th2.若在 x* 的某 领域 B = { x | | x x* | } 有 gC1[a, b] 且 | g'(x*) | < 1,则由x0B 开始的迭代收敛。即调整初值 可得到收敛的结果。
3. Regula Falsi Method
3. 比例法(试位法 /* Regula Falsi Method */)
(b, f (b))
(x, f (x))
a
x* x
b
(a+b)/2
(a, f (a))
f (a ) x a b a f (b) f (a )
一般地,设 [ak,bk]为有根区间,过(ak, f(ak))、 (bk, f(bk))作 直线,与x轴交于一点xk,
§3. Fixed-Point Iteration y p1 p0 y=x y=g(x) y p0 y=x
§3. Fixed-Point Iteration
wenku.baidu.com
收敛于g(x) 在[a, b]上的唯一不动点,并且有误差估计式: 1 | x*x | | x x | 事后误差估计 1 L
k k 1 k
x k 0 则任取初值 x0[a, b],由 xk+1 = g(xk) 得到的序列 k
L | x1 x 0 | | x * xk | 1 L
k
( k = 1, 2, … )
事先误差估计
且存在极限
lim
k
x * x k 1 g x * x * xk
§3 Fixed-Point Iteration
证明:① g(x) 在[a, b]上存在不动点?
2. Bisection Method
2. 二分法 /* Bisection Method */(逐步搜索法的改进)
设f(x)的有根区间为[a,b]= [a0,b0], f(a)<0, f(b)>0.
将[a0,b0],对分,中点x0= ((a0+b0)/2),计算f(x0), 若f(x0) =0, x*=x0
x x0 y y=g(x) x1 x* y=x y y=g(x) p0 x0 x*
p1 y=g(x) x x1 y=x
p0 p1
x x0 x*
p1
x
x1 x0 x*
x1
§3. Fixed-Point Iteration
ex1. f ( x) x 2 2 x 3 0, x1 3, x2 1 x 2 x 3 g ( x), x0 4, xn 1 g ( xn ), n 0,1,..., xn 3 1 2 x ( x 3) g ( x), x0 4, x1 6.5, x2 19.625, 2 x3 191.0...., xn divergent.
误差分析
对于给定的精度 ,可估计二分法所需的步数 k :
ba ε k 2 k
ba |x1 x*| 第1步产生的 有误差 2 ba |xk x*| k 第 k 步产生的 xk 有误差 2
x1 ab 2
lnb a ln ε
ln 2
①简单,总收敛; ② 对f (x) 要求不高(只要连续即可) .
①无法求复根及偶重根 ② 收敛慢 注:用二分法求根,最好先给出 f (x) 草图以确定根的大概 位置。或用搜索程序,将[a, b]分为若干小区间,对每一个 满足 f (ak)· (bk) < 0 的区间调用二分法程序,可找出区间[a, f b]内的多个根,且不必要求 f (a)· (b) < 0 。 f
④ | x * xk |
1 | x k 1 x k | ? 1 L
| xk 1 xk | | x * xk | | x * xk 1 | | x * xk | L | x * xk | k 可用 | xk 1 xk | 来 L | x1 x0 | ? ⑤ | x * xk | 控制收敛精度 1 L
2. Bisection Method
取xk=(ak+bk)/2 ([ak,bk]的中点),显然有 limxk=x*. ——算法和收敛性说明。 When to stop?
a x1 x* x2 b
xk 1 xk ε1
或
f ( xk ) ε2
不能保证 xk的精度
2
x*
xk
2. Bisection Method
第六章 非线性方程求根
/* Solutions of Nonlinear Equations */ §1 Introduction
科学技术中常遇到高次代数方程或超越方程 的求根问题。大于4次的代数方程无求根公式。 因此需要研究函数方程求根问题的数值方法。
求 f (x) = 0 的根或零点x*
求根问题包括下面三个问题: • 根的存在性:即f(x)=0有没有根?若有,有
几个根?
• 哪儿有根?确定有根区间
• 根的精确化:已知一个根的近似值后,能否
将它精确到足够精度?
本章假设 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
| xk 1 xk | | g( xk ) g( xk 1 ) | | g( ξ k )( xk xk 1 ) | L | xk xL 1 | ...... Lk | x1 x0 | k 越 小 收敛越快
⑥ lim
k
lim
k
x * x k 1 g( ξ k )( x * xk ) lim g( x*) k x * xk x * xk
令 f ( x ) g( x ) x
f ( x ) 有根
a g( x ) b
f ( a ) g(a ) a 0 , f ( b ) g ( b ) b 0
② 不动点唯一?
~ ~ 反证:若不然,设还有 x g( x ),则
~ ~ ~ ~ x* x g( x*) g( x ) g( ξ ) ( x * x ), 在 x * 和 x 之间。 ~ ~ ( x* x )(1 g(ξ )) 0 而 | g(ξ ) | 1 x* x
3. Regula Falsi Method
xk xk 1
f ( xk 1 ) ( xk 1 b) f ( xk 1 ) f (b)
xk=(ak+bk)/2
注:1. 试位法每次迭代比二分法多算一次乘法,而且不 保证收敛。 2. 比例法不是通过使求根区间缩小到0来求根,而是 在一定条件下直接构造出一个点列(递推公式), 使该点列收敛到方程的根。——这正是迭代法的基 本思想。
§3. Fixed-Point Iteration
§3 迭代法 /* Fixed-Point Iteration */
等价变换
迭代函数
f (x) = 0 f (x) 的根
x = g (x),e.g., g(x)=f(x)+x g (x) 的不动点
可用§1中的方法
从一个初值 x0 出发,计算 x1 = g(x0), x2 = g(x1), …, xk 0 收敛,即存在 x* 使得 思 xk+1 = g(xk), … 若 k 路 lim x k x *,且 g 连续,则由 lim x k 1 lim g x k 可 k k k 知 x* = g(x* ),即x* 是 g 的不动点,也就是f 的根。
a x1 x*
x2 b
<0,有根区间: [a1,b1]=[x0,b]
>0,有根区间: [a1,b1]=[a, x0] 对[a1,b1]对分,如此反复进行,得到一系列有根区 间:
[a, b] [a1 , b1 ] [a2 , b2 ] [ak , bk ] bk 1 ak 1 ba bk ak k 0, k 2 2 f(ak)0, f(bk)0, f(x*)=lim f(ak)= lim f(bk) ak , bk , ak b, bk a, x , s.t. lim ak lim bk x , and f ( x ) 0.
[a, b] [a1 , b1 ] [a2 , b2 ] [ak , bk ] but it is not necessary bk ak 0, k
那么用什么来逼近解呢?
定理
设 f(a)f(b)<0,且f (x), f (x)在[a,b]内保号,则按 比例求根法确定的序列{xk}必收敛到根x*.
③ 当k 时, xk 收敛到 x* ?
| x * xk | | g( x*) g( xk 1 ) | | g(ξ k 1 ) | | x * xk 1 |
L | x * xk 1 | ...... Lk | x * x0 | 0
§3. Fixed-Point Iteration
x * x k 1 g x * ? x * xk
注:定理条件非必要条件,可将[a, b]缩小,定义局部收敛性 Def1.If there exists a neighborhood of x*, e.g., B = { x | | x x* | } ,s.t. x0 B , xk+1=g(xk) converges, then we say the iteration converges locally around x*.
f (ak ) xk ak (ak bk ) f (ak ) f (bk ) f (bk ) bk (ak bk ) f (ak ) f (bk )
3. Regula Falsi Method
if if
f ( xk ) f (ak ) 0, [ ak 1 , bk 1 ] [ ak , xk ] f ( xk ) f (bk ) 0, [ ak 1 , bk 1 ] [ xk , bk ]
1.逐步搜索法
设f (a) <0, f (b)> 0,有根区间 while ( b a ) do 为 (a, b),从x0=a出发, 按某个 预定步长(例如h=(b-a)/N)一步 { x0 a, h (b a ) / N , k 0 while f ( xk ) 0 一步向右跨,每跨一步进行一 { k k 1; xk xk h;} 次根的搜索,即判别 b xk ; a xk h( xk 1 ); f(xk)=f(a+kh)的符号,若 f(xk)>0(而f(xk-1)<0),则有根区间 } 缩小为[xk-1,xk] (若f(xk)=0,xk即 ①简单; 为所求根), 然后从xk-1出发,把 ② 对f (x) 要求不高 搜索步长再缩小,重复上面步 (只要连续即可) . 骤,直到满足精度:|xk-xk-1|< ①无法求复根及偶重根 为止,此时取x*≈(xk+xk-1)/2作 ② 计算量大,收敛慢 为近似根。
说明:①迭代函数不唯一,②迭代点列可能收敛,也可 能发散,迭代收敛与否不仅与迭代函数有关,还与初 始点有关。
定理1 (迭代收敛条件)
考虑方程 x = g(x), g(x)C[a, b], 若
( I ) x[a, b] , g(x)[a, b]; ( II ) 0 L < 1 , s.t. x[a, b], | g(x) | L.
§3. Fixed-Point Iteration
Th2.若在 x* 的某 领域 B = { x | | x x* | } 有 gC1[a, b] 且 | g'(x*) | < 1,则由x0B 开始的迭代收敛。即调整初值 可得到收敛的结果。
3. Regula Falsi Method
3. 比例法(试位法 /* Regula Falsi Method */)
(b, f (b))
(x, f (x))
a
x* x
b
(a+b)/2
(a, f (a))
f (a ) x a b a f (b) f (a )
一般地,设 [ak,bk]为有根区间,过(ak, f(ak))、 (bk, f(bk))作 直线,与x轴交于一点xk,