收敛加速的方法

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

2. 利用迭代法计算满足一定精度的根的近似值.在隔 根区间找到一个(或者多个)出发值 x0 ,按某种方法产 生一个序列 x0 ,..., xn ,...此序列在某种条件下收敛于 方程的根 x .
2.1 二分法
设函数 f ( x )在区间[a , b]上连续,且 f (a ) f (b) 0 ,根据 连续函数的性质知 f ( x ) 0 在[a , b] 内有根 . 不妨设它在 此区间有唯一的根 x .
[a,b]称为有根区间.
二分算法
1 原理: 把区间[a , b]二等分 ,分点为 x0 (a b ) ,计算函 2 数值 f ( x0 ),则可能出现三种情况:
1 如果 f ( x0 ) 0,则 x0 是 f ( x )在区间[a , b]的零点.
ab x 2


2 如果 f ( x0 ) f (a ) 0 ,则 f ( x )在区间[a , x0 ]内有零点;
y
y=x y ( x)
p0
p*
p0
p1
p1
p2
x2 x1
o
x*
x0
x
如果 p1 , p2 ,, pk , 逐渐逼近p*,---迭代过程收敛
y
y ( x)
y=x
p0
p*
p0
p1
p1
p2
o
x2
x1
x0
x*
x
如果 p1 , p2 ,, pk , 逐渐远离p*,---迭代过程发散 (无意义)
1 ba 因此 x xk (bk ak ) k 1 . 2 2

因此,二分法产生的序列收敛.
利用二分法收敛定理 ,对于事先给定的精度要求 ,可以估 计出二分法结果满足要求的迭代次数.
对于预先给定的精度 0,只需要
k ln(b a ) ln 2 , ln 2
便有
据此有迭代公式
xk 1 x 1,
3 k
k 0,1,2,
x2 12.39
迭代初值仍取 x0 =1.5,则有
x1 2.375,
当 k增大时,xk随之增大而不趋于任何极限,此时迭 代过程发散。 通过此例说明,迭代过程只有在一定条件下才可能 收敛。一个发散的过程没有任何意义。
定理2.3 如果 ( x) C [a, b] ,满足条件:
此时区间[ak+1, bk+1]的长度为[ak,bk]的一半.
二分法计算过程中产生有根区间序列
[a, b] [a1 , b1 ] [a2 , b2 ] [ak , bk ]
有如下性质:
ba (1) bk a k k 2
(3) f(ak) f(bk)<0
(2) ak 1 ak , bk 1 bk
x0 , x1 ,, xk ,
3 判别收敛 如果迭代序列的极限存在,则迭代过程收敛,显然有
lim x k x *
k
如果迭代序列的极限不存在,则称迭代过程发散。 上述迭代过程也称不动点迭代法。
几何意义
方程 x ( x ) 求根,在几何上就是确定曲线 y ( x )
与直线 y x 的交点 p*
对任意 k 0 ,设第 k 个区间为[ak,bk],取中点 计算 f(xk). 若 f(xk)=0,则 xk 就是方程的根; 若 f(xk) f(ak)<0, 取 ak+1=ak, bk+1= xk; 若 f(xk) f(bk)<0, 取 ak+1= xk, bk+1= bk.
xk
1 (ak bk ) , 2
1
(1) a ( x) b ;
(2) | ( x) | L 1
则方程 x ( x ) 在 [a, b] 有唯一的不动点 x*。 证 若 (a) a 或 (b) b ,显然 ( x) 有不动点 设 (a) a , (b) b 则有 (a) a , (b) b 记 ( x) ( x) x 则有 (a) (b) 0 所以,存在x*,使得 ( x*) 0 即
3
4 5 6
1.3125
1.3125 1.3125 1.3203
1.375
1.3438 1.3281 1.3281
1.3438
1.3281 1.3203 1.3242
+
+ -
Leabharlann Baidu
x6 1.3242 x * x * x6 0.005
算法 2.1 (二分法求解非线性方程) 第一步:输入误差限 0 , 1 ,计算 y1 f (a ), y2 f (b);
3 2 作业:1、用二分法求方程 f ( x ) x 4 x 10 0
在区间[1,2]内的一个实根,要求误差不超过0.005。
2.2 迭代法 1 1 1 一种圆周率的计算方案: 4 1 3 5 7 初值: x0=1 ( 1)n ( n=1,2,3,· · · · · ·) 迭代格式: xn xn1
x0 , x1 ,, xk ,
由于
定理 2.2 设 x 为方程 f ( x ) 0 在区间 [a , b] 内的唯一根 ,
f ( x ) 满足 f (a ) f (b ) 0, 则二分法计算过程中第 k 个区间
[a , b]的中点 x k 满足不等式
1 1 x xk (bk ak ) k 1 (b a ) . 2 2
1 第二步:计算 x0 (a b), y0 f ( x0 ), 若 y0 0 , 则输 2 出 x0 ,结束否则转第三步;
第 三 步 : 若 y0 y1 0, 则 令 b x0 , y2 y0 ; 否 则
a x0 , y1 y0 ,转第四步;
第四步: 若 b a 1 ,则转第二步;否则输出 x0 ,结束.
f ( x0 ) 0 , 则 x0 就 是 方 程 的 根 ; 若 f ( x0 ) f (a ) 0 , 取 a1 a , b1 x0;若 f ( x0 ) f (b) 0 取 a1 x0 , b1 b .
ba 此时区间[a1 , b1 ]的长度为[a , b]的一半, b1 a1 2
例2.2 求方程 f (x)=x3 – x – 1 = 0
在x =1.5附近的根 x*。
解 设将方程改写成下列形式
x x 1
3
由此得迭代公式
xk 1 3 xk 1 ,
迭代结果如下表
k 0,1,2,
迭代初值取x0 =1.5,计算值用6位数字表示。
k 0
xk 1.5
k 5
xk 1.32476
(2) | ( x ) | L 1
| x x k |
x k ( x k 1 ) 证 * * x (x )
1 L | x k x * || ( x k 1 ) ( x * ) |
| ( ) || x k 1 x * |
*
证明 因为 ak x bk , 所以
1 x xk (ak bk ) x 2

1 1 ( a x ) ( b x ) = k k 2 2
1 ( ak x bk x ) 2 1 (( x ak ) bk x )), 2
x ( x)
(1)
若存在 x*,使得 x* ( x*) ,则称x*为不动点。
在根x*的附近取一点x0作为x*的预测值,也叫迭代初 值。
2 按迭代格式进行计算 把x0代入(1)的右端,得
* x x x x 如果 1 。 0 ,则 1 如果 x1 x0 ,把 x1作为根的新的预测值代入(1),得
第二章 非线性方程的求根方法
简单迭代法
不动点迭代的收敛性 迭代序列的收敛速度
收敛加速的方法
问 题的提 出 很多实 际问题 中 , 都 涉及 到解函 数方程
f ( x ) 0 ,这里 f ( x ) 可以是代数多项式 ,也可以是超越函
数.
一般情况下,用计算机求解非线性方程分两步进行: 1. 对方程 f ( x ) 0 的根进行隔离 .找出隔根区间(区间内 只有一个根).
x1 ( x0 )
x2 ( x1 )
如果 x2 x1 ,则 如果 x2 x1 ,把 x2作为根的新的预测值代入(1)...... 如此重复上述步骤,则有迭代公式
x2 x
*

xk 1 ( xk ) ( k = 0, 1, 2, · · ·)
( x ) :迭代函数,得到迭代序列 其中,
由此可见,如果二分过程无限地进行下去( k ),则有限区间必定缩为一点 x*,该点显然就是所 求的根。 实际上,我们不可能去完成这种无穷过程,也无必 要,只需得到满足一定精度的近似值就可以了。
如果令有根区间[an,bn]的中点 xk (ak bk ) 2 为 x*的近 似值,则在二分过程中,得到下列以 x*为极限的近 似根序列
1
2 3 4
1.35721
1.33086 1.32588 1.32494
6
7 8
1.32473
1.32472 1.32472
从表中可看到 x7与 x8完全相同,这时可认为x8已 满足方程, x8 即为所求根的近似值。
x* x8 1.32472
上述迭代过程是收敛的。
如果将方程改写成下列形式
x x3 1
[1, 1.5]内的一个实根,要求误差不超过0.005。 解 由公式估计所要 二分的次数
即只要二分6次,便能达到所要求的精度。
ln(1.5 1) ln 0.01 k 5.644 ln 2
计算结果
k 0 1 2
f (1) 1 0, f (1.5) 0
ak 1.0 1.25 1.25 bk 1.5 1.5 1.375 xk 1.25 1.375 1.3125 f(xk) + -
3 如果 f ( x0 ) f (b) 0 ,则 f ( x )在区间[ x0 , b]内有零点;
如果后两种情况之一发生 , 则意味着找到一个比原 来的区间长度小一半的有根区间 ,舍去无根区间,将有根 区间再次一分为二 ,如此周而复始,实际上就是将有根区 间缩小到充分的小,从而找到满足精度的近似根. 1 算 法 对 区 间 [ a , b ] 取 中 点 x 0 ( a b ) , 计 算 f ( x0 ) . 若 2
2n 1
将一个计算过程反复进行
一种常见常用的计算技术
构造有效的迭代格式
选取合适的迭代初值
对迭代格式进行收敛性分析
迭代原理 迭代是一种逐次逼近过程求解问题的方法. 已知方程 f ( x ) 0 的一个近似根后,通常使用某个固定公式反 复校正根的近似值
作法:迭代的三个主要部分
1 选取初值 把给定的方程 f ( x ) 0 改写成等价形式 f (x)= 0
| xk 1 xk |
| xk x | L | xk 1 x |
*
| xk x* | Lk | x0 x* |
( x*) x * , x*即为不动点.
唯一性: 设在[a, b] 上存在两个根x1*和x2*,则
( x1*) x1 * ( x1*) x1 *
由微分中值定理
| x x2 || ( x ) ( x2 ) |
* 1 * * 1 *
| ( ) || x x2 |
x xk
这时 xk 就是满足精度要求的近似值
二分法优点:是方程求根问题的一种直接搜索方法 ,算法简单、直观、实用,收敛性总能得到保证。
缺点(局限性):不能求重根;计算速度慢。 思考:为什么不能求重根?
3 例2.1 用二分法求方程 f ( x ) x x 1 0 在区间
* 1 *
L 1 ,必有
* 1 * 2
L | x x2 |
* 1 * 2 *
* 1
*
| x x | 0 即x x x
定理2.4 如果 ( x) C [a, b] ,满足条件:
1
(1) a ( x ) b ;
则对任意的 x0∈ [a, b] , 迭代格式 xk 1 ( xk ) 产生的序列 { xk }收敛到不动点x*,且有事后误 差估计式 1 *
相关文档
最新文档