# 二分法
区间 [ak,bk] 的长度为
bk−ak=2k1(b−a)
二分后取有根区间 [ak,bk] 的中点 xk=21(ak+bk) 作为 f(x)=0 的根的近似值
误差为
∣x∗−xk∣≤21(bk−ak)=bk+1−ak+1=2k+11(b−a)
# 迭代法
设迭代函数 φ(x) 连续,那么,当选取 x0 后,若产生的序列 {xn} 收敛,则一定收敛到 x∗ 上
证明
设 xn+1=φ(xn) ,且 n→∞limxn+1=xˉ,所以
n→∞limxn+1=n→∞limφ(xn)
又因为 φ(x) 连续,所以
n→∞limxn+1=φ(n→∞limxn)xˉ=φ(xˉ)
因此 xˉ 是方程 x=φ(x) 的根
设迭代函数 φ(x) 在 [a,b] 上具有连续的一阶导数,且
- 当 x∈[a,b],a≤φ(x)≤b
- 存在正数 L<1,对任意 x∈[a,b],有 ∣φ′(x)∣≤L<1 成立,则 φ(x) 在 [a,b] 上有唯一解 x∗,且对任意初始近似值 x0∈[a,b],迭代过程 xk+1=φ(xk)(0,1,2,...) 收敛,且 h→∞limxk=x∗
证明
证明 x∗ 存在性:
因为在 [a,b] 存在 φ′(x),所以 φ(x) 连续
作函数
g(x)=x−φ(x)
则 g(x) 在 [a,b] 上连续
因为
g(a)=a−φ(a)≤0g(b)=b−φ(b)≥0
所以必存在 x∗∈[a,b],使
g(x∗)=0
即
x∗=φ(x∗)
证明 x∗ 的唯一性:
若在 [a,b] 上另有 xˉ∗ 也满足 xˉ∗=φ(xˉ∗),则由微分中值定理
x∗−xˉ∗=φ(x∗)−φ(xˉ∗)=φ′(ξ)(x∗−xˉ∗)
即
(x∗−xˉ∗)[1−φ′(ξ)]=0
因为 φ(ξ)<1
所以只能是
x∗=xˉ∗
证明收敛性:
由中值定理
x∗−xk+1=φ(x∗)−φ(xk)=φ′(ξ)(x∗−xk)
因为
φ′(ξ)≤L
所以
∣x∗−xk+1∣≤L∣x∗−xk∣
由归纳法可知
∣x∗−xk∣≤Lk∣x∗−x0∣
因为 L<1
所以
k→∞lim∣x∗−xk∣≤k→∞limLk∣x∗−x0∣=0
即
k→∞limxk=x∗
在上述定理的条件下,由误差估计式
∣x∗−xk∣≤1−L1∣xk+1−xk∣−−①∣x∗−xk∣≤1−LLk∣x1−x0∣−−②
证明
证明①
∣xk+1−xk∣=∣x∗−xk−(x∗−xk+1)∣≥∣x∗−xk∣−∣x∗−xk+1∣≥(1−L)∣x∗−xk∣
∣x∗−xk∣≤1−L1∣xk+1−xk∣
证明②
∣xk+1−xk∣=∣φ(xk)−φ(xk−1)∣=∣φ′(ξ)(xk−xk−1)∣≤L∣xk−xk−1∣
所以递推可得
∣x∗−xk∣≤1−L1∣xk+1−xk∣≤1−LLk∣x1−x0∣
# 局部收敛性
如果存在领域 Δ:∣x−x∗∣≤δ,迭代过程对于任意初值 x0∈Δ 均收敛,那么这种在根的邻近具有的收敛性称为局部收敛性
设 φ(x) 在 x=φ(x) 的根 x∗ 邻近有连续的一阶导数,且
φ′(x∗)<1
则迭代过程 xk+1=φ(xk) 具有局部收敛性
# 迭代的收敛速度
设序列 {xk} 是收敛于方程 f(x)=0 的根 x∗ 的迭代序列,即 x∗=k→∞limxk。εk=xk−x∗(k=0,1,2,...,) 表示各步的迭代误差
若有某个实数 p 和非零常数 C,使得
k→∞limεkpεk+1=C,C=0
则称序列 {xk} 是 p 阶收敛的
对于迭代过程 xk+1=φ(xk),如果迭代函数 φ(x) 在所求根 x∗ 的邻近有连续的二阶导数,且
∣φ′(x∗)∣<1
则有
- 当 φ′(x∗)=0 时,迭代过程为线性收敛
- 当 φ′(x∗)=0,而 φ′′(x∗)=0 时,迭代过程为平方收敛
- 当 φ′(x∗)=0,φ′′(x∗)=0,...,φ(p−1)(x∗)=0,而 φ(p)=0 时,迭代过程为 p 阶收敛
证明
利用泰勒展开,因为一直到 φ(p−1)(x∗)=0,所以
φ(xk)=φ(x∗)+p!φ(p)(xk−x∗)p
化简可得
xk+1−x∗=p!φ(p)(xk−x∗)p⇒εkεk+1→p!φ(p)
# 收敛过程的加速
假定 φ′(x) 在求根范围内变化不大,令
∣φ′(x)∣≈∣a∣
如果仅用迭代法
x~k+1=φ(xk)
将误差加上之后
xk+1=x~k+1+1−aa(x~k+1−xk)
# Aitken 加速
因为上述方法要求 φ′(x) ,在实际操作中比较麻烦,所以引入 Atiken 加速方法
首先进行两次迭代
xn+1(1)=φ(xn)→x∗−xn+1(1)≈a(x∗−xn)−−①xn+1(2)=φ(xn+1(1))→x∗−xn+1(2)≈a(x∗−xn+1(1))−−②
用①式除以②式,整理可得
xk+1=xk+1(2)−xk+1(2)−2xk+1(1)+xk(xk+1(2)−xk+1(1))2
# 牛顿迭代法
根据一阶泰勒展开
f(x0)+f′(x0)(x−x0)=0
设 f′(x0)=0
那么方程的解为
x=x0−f′(x0)f(x0)
迭代方程是
φ(x)=x−f′(x0)f(x0)
# 牛顿法的收敛性
因为
φ′(x)=[f′(x)]2f(x)⋅f′′(x)
因为 f(x∗)=0,所以
φ′(x)=0
牛顿法至少是平方收敛
# 几何意义
过曲线 y=f(x) 上对应点 (xk,f(xk)) 作切线,其切线方程为
y−f(xk)=f′(xk)(x−xk)
此切线方程和 x 轴的交点,即 x∗ 新的近似值 xk+1 满足方程
f(xk)+f′(xk)(x−xk)=0
# 初值的选取
∣f′(x0)∣2>∣2f′′(x0)∣∣f(x0)∣
证明
因为牛顿迭代法只是要求局部收敛,所以对于初值的选取是有要求的
显然对于初值 x0 ,如果 f′(x0) 非常小,那么它是不能最终迭代到根节点的。例如,对于 f(x0)=0 显然就是不可取的
那么我们该如何量化这个初值的选取呢?
我们令 ε1=x1−x,ε0=x0−x,分别代表 x1 和 x2 的迭代误差
那么我们显然,需要要求 ∣ε1∣<∣ε0∣
x1=x0−f′(x0)f(x0)x1−x=x0−x−f′(x0)f(x0)ε1=ε0−f′(x0)f(x0)
所以
ε0ε1=f′(x0)(x0−x)x0+f′(x0)(x−x0)
f(x)=f(x0)+f′(x0)(x−x0)+21f′′(ξ)(x−x0)2f(x)=f(x0)+f′(η)(x−x0)
带入得
ε0ε1=2f′(x0)f′(η)f′′(ξ)f(x0)
近似可看成
ε0ε1=2f′(x0)2f′′(x0)f(x0)
因为要求 ∣ε1∣<∣ε0∣
所以
ε0ε1=2f′(x0)2f′′(x0)f(x0)<1