迭代法

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
xk 1
f ( x) 3x2 3
由简化Newton法 由弦截法
3 f ( xk ) xk 3 xk 1 xk xk 2 f ( x0 ) 3 x0 3
xk 1 xk
f ( xk ) ( xk xk 1 ) f ( xk ) f ( xk 1 )
(局部收敛性)
--------(6) --------(7)
牛顿迭代法的基本思想

设 X K 是f(x)=0的一个近似根,把f(x)在

若取前两项来近似代替f(x)(称为f(x)的线性化),则得近似的线
f ( xk ) f ( x) f ( xk ) f ( xk )( x xk ) ( x xk ) 2 2!
x0 1 3 1 2 2
0.7937
同样的方程 不同的迭代格式 有不同的结果
依此类推,得 x2 = 0.9644 x3 = 0.9940 x4 = 0.9990 x5 = 0.9998 x6 = 1.0000 x7 = 1.0000 已经收敛,故原方程的解为
迭代函数的构造有关
什么形式的迭代法
发散
Newton法的改进(III) : 牛顿下山法
一般地说,牛顿法的收敛性依赖于初值 x0 的选取,如果 * x x0偏离 较远,则牛顿法可能发散。 为了防止发散,通常对迭代过程再附加一项要求,即保证 函数值单调下降:
f xk 1 f xk
满足这项要求的算法称为下山法。 牛顿下山法采用以下迭代公式:x
xk 1 f ( xk ) xk ( xk xk 1 ) f ( xk ) f ( xk 1 )
这种格式称为弦截法
收敛阶约为1.618
例 用简化Newton法和弦截法解下面方程的根,并和
Newton 迭代法比较
x 3x 1 0
3
解:
设f ( x) x3 3x 1
3 f ( xk ) xk 3 xk 1 xk xk 2 f ( xk ) 3 xk 3
由Newton迭代法
xk 1
简化Newton法
x0= 0.5 x1= 0.3333333333 x2 = 0.3497942387 x3 = 0.3468683325 x4 = 0.3473702799 x5 = 0.3472836048 x6 = 0.3472985550 x7 = 0.3472959759 x8 = 0.3472964208 x9 = 0.3472963440 x10 = 0.3472963572 x11 = 0.3472963553
其中 0 1 称为下山因子。 1 1 1 的顺序 的选取方式按 1, , 2 , 3 , 2 2 2 直到 | f ( xk 1 )| | f ( xk )|成立为止
f xk k 1 xk f ' xk
牛顿下山法只有线性收敛.
例.
x3 求解方程f ( x) x 0, 取初值x0 0.99 3 |xn xn 1 | 105
| ( x )| L
--------(5)
则1o. 方程x ( x)在[a, b] 内有唯一解x *
2o.对于任意初值x0 [a, b], 迭代法xk 1 ( xk )均收敛于x *
3o .
4o .
L xk x * xk xk 1 1 L Lk xk x * x1 x0 1 L
称 ( x)为迭代函数, 称xk 为第k步迭代值
如果存在一点x*, 使得迭代序列{ xk }满足
lim xk x *
k
--------(4)
则称迭代法(3)收敛,否则称为发散
例1. 解:
用迭代法求解方程 2x x 1 0
3
(1) 将原方程化为等价方程
x 2x 1
3
如果取初值 x0 0,由迭代法 (3), 得
x ( x)
并且假设 ( x)为连续函数
--------(2)
任取一个初值 x0 , 代入(2)的右端, 得 x1 ( x0 ) 继续 x2 ( x1 )

--------(3) xk 1 ( xk ) (k 0,1,2 ,)
称(3)式为求解非线性方程(2)的简单迭代法
f ( xk ) xk 1 xk m ' f ( xk )
此时, 不实用: m往往不确定.
方法二. 取 F ( x )
f ( x) f ' ( x)
( x) x m
f ( x) f ' ( x)
, ' ( x* ) 0
, 至少2阶收敛.
,再对函数F(x)用Newton迭代:


y f ( xk ) f ( x k ) 与X轴的交点的横坐标也就是说,新 x xk
Newton迭代法又称切线法
y
牛顿迭代法的步骤


步一、准备。选定初始近似值 x 0 计算 f 0 f ( x0 ) f 0 f ( x0 ) f0 步二、迭代。按公式 x1 x0 迭代一次,得到新的近似 f 0 值 x1 ,计算 f1 f ( x1 ), f1 f ( x1 )
迭代法
在计算机数值程序设计中,迭代是一 个重要的基础算法。
一、迭代(关键在于确定迭代函数)
许多的实际问题都能转化为解方程 F(x)=0的实数解的问题。求根可以直接 从方程出发,逐步缩小根的存在区间, 把根的近似值逐步精确到要以满足具体 实际问题的需要为止,该算法称为迭代。
一、迭代法原理
将非线性方程 f (x) = 0 化为一个同解方程
牛顿迭代法流程图
例 用牛顿迭代法求方程 2x3-4x2+3x-6=0 在1.5附 近根。
#include <math.h> #include <stdio.h> main( ) { float x=1.5, x0, f,f1; do { ; f1=(6*x0-8)*x0+3; x=x0-f/f1; } while (fabs(x-x0)>=1e-5); printf("x=%6.2f\n",x); }
简化Newton法迭代11次 弦截法迭代5次
Newton迭代法迭代4次
迭代法的局部收敛性
无论哪种迭代法:Newton迭代法 简化Newton法 弦截法
是否收敛均与初值的位置有关.
例: f ( x ) arctan(x ) 0 , 精 确 解x * 0
用Newton迭代法求解:
若取初值 x0 1
x0 0
x1 2 x 1 1
3 0
x2 2 x 1 3
3 1
x3 2 x 1 55

x3
3 2
显然迭代法发散 (2) 如果将原方程化为等价方程
x1 2
仍取初值
x0 0
x1 3
x2
3
x1 1 3 1.7937 0.9644 2 2

x1作为所求的根;否则转步四。此处 1

步三、控制。如果x1满足 1 。
x1 x 0 , 当.. x1 c时; x1 x 0 ,当... x1 c时。 x 1
则终止迭代,以
是允许误差,
其中c是取绝对值或相对误差的控制常数,一般可取c=1。 修改。如果迭代次数达到预定指定的次数N,或者f1’=0则方法 失败,否则以(x1,f1,f1’) 代替(x0,f0,f0’) 转步二继续迭代。
f ( x)
2
在 的邻域R 内,对任意初值 x 0 ,应用由公式(1)来解方程的方
法就称为牛顿迭代法。它是解代数方程和超越方程的有效方法之一.
牛顿法的几何意义
由(1)式知 x k 1是点 ( x , f ( x )) 处 y f ( x) 的切线 k k 的近似值 x k 1是用代替曲线y=f(x)的切线与x 轴相交得 到的。继续取点 ( xk 1 , f ( xk 1 )) ,再做切线与x轴相交,又可 得 xk 2 , 。由图可见,只要初值取的充分靠近 ,这个 序列就会很快收敛于 。
'
F ( xk ) f ( xk ) f ( xk ) xk 1 xk ' xk ' F ( xk ) [ f ( xk )]2 f ( xk ) f '' ( xk )
此时,X*为F(x)的单根,所以是2阶收敛. 但要用到二阶导数.
Newton法的改进(II)
f ( xk ) xk 1 xk Newton迭代法 f ( xk ) 需要求每个迭代点处的导数 f ’(xk) 复杂!
由弦截法
x0=0.5; x1=0.4; x2 = 0.3430962343 x3 = 0.3473897274 x4 = 0.3472965093 x5 = 0.3472963553 x6 = 0.3472963553 要达到精度10-8
由Newton迭代法
x0 =0.5; x1 =0.3333333333 x2 =0.3472222222 x3 =0.3472963532 x4 =0.3472963553
XK
处作泰勒展开
性方程
f ( x) f ( xk ) f ( xk )( x xk ) 0

设 f ( xk ) 0 ,令其解为 xk 1 ,得 f ( xk ) x k 1 x k f ( x k ) 这称为f(x)=0的牛顿迭代格式。
(1)
它对应的迭代方程为 x x 故其迭代函数为
21
牛顿迭代法的改进
缺点克服: 1. 局部线性收敛------改进公式或加速 2.每步都要计算微商值-----简化Newton迭代法
或弦截法
3. 初值近似问题-------二分法求初值或”下山算法”
21
Newton法的改进(I)---重根情形
方法一. 若已知重数m(m>1),则利用m构造新的迭代公式:
2 xk 1 xk arctanxk (1 xk )
x0 =1 x1 = -0.5708 x2 = 0.1169 x3 = -0.0011 x4 = 7.963110-10 x5 = 0
若取初值 x0 2
收敛
x0 = 2 x1 = -3.54 x2 = 13.95 x3 = -279.34 x4 = 122017
O
x2
x1
x0 x *
( x)在x * 附近较陡峭
O
x3 x1 x * x0 x2
迭代过程的收敛性 设迭代函数 ( x )在[a, b]上连续, 且满足 (1) 当x [a, b]时, a ( x ) b;
(2) 存在一正数L, 满足0 L 1, 且x [a, b], 有
f ( x) 显然是f(x)=0的同解方程, f ( x)
f ( x) ( x) x ( f ( x) 0) f ( x) 在 f(x)=0的根 的某个邻域 R( x ) 内, f ( x) 0
( x) f ( x) f ( x) L 1
能够收敛呢?
x 1.0000
如果将(2)式表示为 y ( x ) 与方程(2)同解 yx y x
y ( x)

yx
收敛
y ( x)
O x * x2
x1
y ( x)
( x)在x * 附近较平缓
yx yx
x0
O
x1
x3 x * x2
x0
发散
y ( x)
牛顿迭代法的优缺点
优点: 在单根附近, 牛顿迭代法具有平方收敛的速 度,所以在迭代过程中只要迭代几次就会得到很精 确解。 缺点:1. 重根情形下为局部线性收敛; 2. 牛顿迭代法计算量比较大:因每次迭代除 计算函数值外还要计算微商值; 3. 选定的初值要接近方程的解,否则有可能得 不到收敛的结果;
用x0近似替代 f ( xk )中的xk , 得
xk 1
f ( xk ) xk f ( x0 )
精度稍低
这种格式称为简化Newton迭代法
如果用数值导数代替 f ( xk )
f ( xk ) f ( xk 1 ) f ( xk ) xk xk 1
则Newton迭代法变为
相关文档
最新文档