第6章 非线性方程求根(1、二分法、迭代法)
合集下载
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
(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
2)中有 中有
例如K 在 (1, 2) 上可取任意 2 < K < 0 ,例如 = 0.5,则对 即产生收敛序列。 应 x = 3 x 1 ( x 3 + 1) 即产生收敛序列。
x1 + 1 = 2
3
ቤተ መጻሕፍቲ ባይዱ
什么形 式的迭 代法能 够收敛 呢?
定理 考虑方程 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]上的唯一不动点。并且有误差估计式: 上的唯一不动点。 敛于 上的唯一不动点 并且有误差估计式:
要求绝对误差不超过 0.5 × 10 2 解: f(1)=f(1)=-5<0 有根区间 f(2)=14>0 -(1,2)+ f(1.5)>0 (1,1.5) f(1.25)<0 (1.25,1.5) f(1.375)>0 (1.25,1.375) f(1.313)<0 (1.313,1.375) f(1.344)<0 (1.344,1.375) f(1.360)<0 (1.360,1.375) f(1.368)>0 (1.360,1.368)
x * x k +1 = g ′( x * ) ? x * xk
| ...... ≤ Lk | x 1 ≤ L | x k x L 1越≤小 收敛越快 x 0 | k
注:定理条件非必要条件,而且定理中的压缩条件不好验 定理条件非必要条件, 迭代函数g(x)∈C a,b] 一般来讲,若知道迭代函数 证,一般来讲,若知道迭代函数g(x)∈C1『a,b],并 且满足|g′(x)|≤ ≤1, x∈[a,b] 且满足|g′(x)|≤ α ≤1,对任意 的x∈[a,b], 则迭代法收敛。 则迭代法收敛。
改进、 改进、加速收敛 /* accelerating convergence */
待定参数法: 待定参数法: 若 | g’(x) | ≥ 1,则将 x = g(x) 等价地改造为 ,
x = x Kx + Kg ( x ) = (1 K ) x + Kg ( x ) = ( x ) 求K,使得 | ′ ( x ) | = | 1 K + K g ′ ( x ) | < 1 ,
| x * xk | ≤
| x * xk | ≤
1 | x k +1 x k | 1 L
L | x1 x 0 | 1 L
k
( k = 1, 2, … )
且存在极限
lim
k →∞
x * x k +1 = g ′( x * ) x * xk
证明: 上存在不动点? 证明:① g(x) 在[a, b]上存在不动点? 上存在不动点 令 f ( x) = g( x) x Q a ≤ g ( x ) ≤ b
∴ f (a ) = g( a ) a ≥ 0 , f ( b ) = g ( b ) b ≤ 0
f ( x ) 有根
不动点唯一? ② 不动点唯一?
~ ~ 反证:若不然,设还有 x = g ( x ),则 反证:若不然, ~ ~ ~ 之间。 ~ x* x = g ( x*) g ( x ) = g ′( ξ ) ( x * x ), ξ 在 x * 和 x 之间。 ~ ~ ( x* x )(1 g ′( ξ )) = 0 而 | g′( ξ ) | < 1 ∴ x* = x
1 g(x)= (lg( x ) + 7) 2 1 1 g ′( x ) = 2 ln10 x
3.5≤ x ≤ 4
max | g ′( x ) |≈ 0.063 < 1
由定理知,迭代格式x +7)/2在 由定理知,迭代格式xk+1=(lgxk+7)/2在[3.5,4] 内收敛。 内收敛。
在实际应用迭代法时通常在所求根的邻近 考察,研究所谓的局部收敛性 局部收敛性: 考察,研究所谓的局部收敛性:若在 x* 的某 δ 领域 Bδ = { x | | x x* | ≤ δ } 有 g∈C1[a, b] 且 | g’(x*) | < 1,则由x0∈Bδ 1,则由 ( 开始的迭代收敛。 开始的迭代收敛。
§3 迭代法 /* Fixed-Point Iteration */
等价变换
f (x) = 0 f (x) 的根
x = g (x) g (x) 的不动点
出发, 从一个初值 x0 出发,计算 x1 = g(x0), x2 = g(x1), …, ∞ 思 xk+1 = g(xk), … 若 { xk }k=0 收敛,即存在 x* 使得 收敛, 路 连续, lim xk = x *,且 g 连续,则由 lim x k + 1 = lim g ( x k ) 可 k→∞ k→∞ k →∞ 的不动点,也就是f 的根。 知 x* = g(x* ),即x* 是 g 的不动点,也就是 的根。 ,
1 又 f ′ (x)=1- > 0, x ∈ 2, ∞) ( x 因 此 方 程 f (x)=0 在 (2, ∞ ) 内 仅 有 一 个 根 x * ,
( 且 x * ∈ 2, ∞ )
将方程化为等价方程: 将方程化为等价方程:x=2+lnx ),x 因此, 因此, x0∈(2,∞),xk+1=2+lnxk产生的序 收敛于x 列{ xk }收敛于x*
x = 2 x3 1 (1) 如果将原方程化为等价方程
3 则迭代格式为: x k + 1 = 2 x k 1 则迭代格式为:
取初值
x0 = 0
3 x1 = 2 x 0 1 = 1
x 2 = 2 x 13 1 = 3
3 x 3 = 2 x 2 1 = 55
由此可见, 由此可见,这种迭代格式是发散的
已知方程2x 2x- lgx= 求方程的含根区间, 例:已知方程2x-7-lgx=0,求方程的含根区间,考 查用迭代法解此方程的收敛性。 查用迭代法解此方程的收敛性。
在这里我们考查在区间[3.5,4]的迭代法的收敛性 在这里我们考查在区间[3.5,4]的迭代法的收敛性 [3.5,4] 很容易验证:f(3.5)<0,f(4)>0 很容易验证: 将方程变形成等价形式:x=(lgx+7)/2 将方程变形成等价形式:
f ( x ) = x 3 3 x + 1 = 0 在 (1, 2) 的实根。 的实根。 例:求
如果用
x=
| g′( x ) | = | x 2 | > 1 K 现令 ( x ) = (1 K ) x + Kg ( x ) = (1 K ) x + ( x 3 + 1) 3 2 2 < K <0 希望 | ′( x ) | = | 1 K + Kx | < 1 ,即 2
HW: p.161 #1
x 3 + 4 x 2 10 = 0 在(1,2)内的根, (1,2)内的根 内的根, 例1 用二分法求
中点 x n
x 1 = 1 .5 x 2 = 1 .2 5 x 3 = 1 .3 7 5 x 4 ≈ 1 .3 1 3 x 5 = 1 .3 4 4 x 6 ≈ 1 .3 6 0 x 7 ≈ 1 .3 6 8 x 8 = 1 .3 6 4
有误差 |x k x*| ≤
ba 2k
[ln (b a ) ln ε ]
ln 2
①简单; 简单 要求不高(只要连续即可 只要连续即可) ② 对f (x) 要求不高 只要连续即可 . ①无法求复根及重根 ② 收敛慢 注:用二分法求根,最好先给出 f (x) 草图以确定根的大概位 用二分法求根, 或用搜索程序, 分为若干小区间, 置。或用搜索程序,将[a, b]分为若干小区间,对每一个满足 分为若干小区间 f (ak)f (bk) < 0 的区间调用二分法程序,可找出区间 b]内的 的区间调用二分法程序,可找出区间[a, 内的 多个根。 多个根。
第6章 非线性方程求根 章
求 f (x) = 0 的根
§1 逐步搜索法 §2 二分法 /* Bisection Method */
原理: 原理:若 f ∈C[a, b],且 f (a) f (b) < 0,则 f 在 (a, b) 上必 , , 有一根。 有一根。
When to stop?
a xk x* xk+1 b
④ | x * xk | ≤
| x k + 1 x k | = | g ( x k ) g ( x k 1 ) | = | g ′( ξ k )( x k x k 1 ) |
⑥ lim
k →∞
x * x k +1 g ′( ξ k )( x * x k ) lim = g ′( x *) = lim k→∞ x * x k →∞ x * xk k
xk +1 xk < ε1
或
f ( x ) < ε2
不能保证 x 的精 度
ε2
x* x
分析: 误差 分析: a+b ba x1 = |x1 x*|≤ 第1步产生的 步产生的 2 有误差 2 第 k 步产生的 xk 对于给定的精度 ε ,可估计二分法所需的步数 k : 可估计二分法所需的步数
ba < ε k 2 k >
③ 当k → ∞ 时, xk 收敛到 x* ?
| x * xk | = | g( x*) g( xk1 ) | = | g′(ξk1 ) | | x * xk1 |
≤ L | x * x k 1 | ≤ ...... ≤ Lk | x * x 0 | → 0
1 | xk +1 xk | ? 1 L | xk +1 xk | ≥ | x * xk | | x * xk +1 | ≥ | x * xk | L | x * xk | Lk 可用 | xk +1 xk | 来 | x1 x 0 | ? ⑤ | x * xk | ≤ 1 L 控制收敛精度
1 g(x) =2 + lnx , | g ′ (x)|=| |< 0.5 < 1, x ∈ 2, ( 4) x
取初值x 3.0,计算结果如下 计算结果如下: 取初值x0=3.0,计算结果如下: k 0 1 2 3 4 5 6 7 xi 3.000000000 3.098612289 3.130954362 3.141337866 3.144648781 3.145702209 3.146037143 3.146143611 8 9 10 11 12 13 14 3.146177452 3.146188209 3.146191628 3.146192714 3.146193060 3.146193169 3.146193204