数值计算方法
非线性方程的数值解法
张晓平
2019 年 11 月 4 日
武汉大学数学与统计学院
Table of contents
1. 二分法
2. 不动点迭代法
3. 牛顿迭代法
4. 弦截法
例
求代数方程
x4− 10x3+ 35x2− 50x + 24 = 0 及超越方程
e−x− sin( nπ 2
)= 0 的解。
定理
高于 4 次的代数方程无精确的求根公式。
例
求代数方程
x4− 10x3+ 35x2− 50x + 24 = 0 及超越方程
e−x− sin( nπ 2
)= 0 的解。
定理
高于 4 次的代数方程无精确的求根公式。
二分法
二分法
用数值方法求方程的根,必须知道方程的根所在的区间。
定义 : 隔根区间
对方程f (x)= 0,若在区间[a, b]内有且只有一个根,则称[a, b]为 它的一个隔根区间。
二分法
二分法的基本思想
通过计算隔根区间的中点,逐步将隔根区间缩小,从而可得方程 的近似根数列{xn}。
设f (x)= 0的隔根区间是[a, b],且f (a)< 0, f (b) > 0。
二分法
二分法的基本思想
通过计算隔根区间的中点,逐步将隔根区间缩小,从而可得方程 的近似根数列{xn}。
设f (x)= 0的隔根区间是[a, b],且f (a)< 0, f (b) > 0。
二分法
x y
x⋆
a0
f (a0)
b0 f (b0)
(1) 计算f (a0+b2 0):
二分法
x y
x⋆
a0
f (a0)
b0 f (b0)
a0+b0 2
(1) 计算f (a0+b2 0):
二分法
x y
x⋆
a0
f (a0)
b0 f (b0)
a0+b0 2 f (a0+b2 0)
(1) 计算f (a0+b2 0):
二分法
x y
x⋆
a0
f (a0)
b0 f (b0)
a0+b0 2 f (a0+b2 0)
(1) 计算f (a0+b2 0):
二分法
x y
x⋆
a1 f (a1)
b1 f (b1)
(2) 将新的隔根区间记为[a1, b1],计算f (a1+b1
2 ):
• f (a1+b1)= 0 =⇒ x∗=a1+b1就是f (x)= 0的根
二分法
x y
x⋆
a1 f (a1)
b1 f (b1)
(2) 将新的隔根区间记为[a1, b1],计算f (a1+b1
2 ):
• f (a1+b1)= 0 =⇒ x∗=a1+b1就是f (x)= 0的根
二分法
x y
x⋆
a1 f (a1)
b1 f (b1)
x y
x⋆
a1
f (a1)
b1 f (b1)
(2) 将新的隔根区间记为[a1, b1],计算f (a1+b1
2 ):
• f (a1+b1)= 0 =⇒ x∗=a1+b1就是f (x)= 0的根
二分法
x y
x⋆
a1 f (a1)
b1 f (b1)
x y
x⋆
a1
f (a1)
b1 f (b1) a1+b1
2
(2) 将新的隔根区间记为[a1, b1],计算f (a1+b1
2 ):
• f (a1+b1)= 0 =⇒ x∗=a1+b1就是f (x)= 0的根
二分法
x y
x⋆
a1 f (a1)
b1 f (b1)
x y
x⋆
a1
f (a1)
b1 f (b1) a1+b1
2 f (a1+b2 1)
(2) 将新的隔根区间记为[a1, b1],计算f (a1+b1
2 ):
• f (a1+b1)= 0 =⇒ x∗=a1+b1就是f (x)= 0的根
二分法
x y
x⋆
a1 f (a1)
b1 f (b1)
x y
x⋆
a1
f (a1)
b1 f (b1) a1+b1
2 f (a1+b2 1)
(2) 将新的隔根区间记为[a1, b1],计算f (a1+b1
2 ):
• f (a1+b1)= 0 =⇒ x∗=a1+b1就是f (x)= 0的根
二分法
x y
a2 f (a2) b2
f (b2)
(3) 将新的隔根区间记为[a2, b2],计算f (a2+b2
2 ): 1 f (a2+b2)= 0 =⇒ x∗=a2+b2就是f (x)= 0的根
二分法
x y
a2 f (a2) b2
f (b2)
(3) 将新的隔根区间记为[a2, b2],计算f (a2+b2
2 ): 1 f (a2+b2)= 0 =⇒ x∗=a2+b2就是f (x)= 0的根
二分法
x y
a2 f (a2) b2
f (b2)
x y
a2
f (a2) b2
f (b2)
(3) 将新的隔根区间记为[a2, b2],计算f (a2+b2
2 ): 1 f (a2+b2)= 0 =⇒ x∗=a2+b2就是f (x)= 0的根
二分法
x y
a2 f (a2) b2
f (b2)
x y
a2
f (a2) b2
f (b2)
a2+b2 2
(3) 将新的隔根区间记为[a2, b2],计算f (a2+b2
2 ): 1 f (a2+b2)= 0 =⇒ x∗=a2+b2就是f (x)= 0的根
二分法
x y
a2 f (a2) b2
f (b2)
x y
a2
f (a2) b2
f (b2)
a2+b2 2 f (a2+b2 2)
(3) 将新的隔根区间记为[a2, b2],计算f (a2+b2
2 ): 1 f (a2+b2)= 0 =⇒ x∗=a2+b2就是f (x)= 0的根
二分法
x y
a2 f (a2) b2
f (b2)
x y
a2
f (a2) b2
f (b2)
a2+b2 2 f (a2+b2 2)
(3) 将新的隔根区间记为[a2, b2],计算f (a2+b2
2 ): 1 f (a2+b2)= 0 =⇒ x∗=a2+b2就是f (x)= 0的根
二分法
重复上述过程,可得到一系列的隔根区间
[a0, b0] ⊃ [a1, b1] ⊃ ··· ⊃ [a2, b2] ⊃ ···
并有f (ak)· f (bk)< 0, x∗∈ (ak, bk),且后一区间的长度都是前一区间长 度的一半,即
bk− ak=bk−1− ak−1
2 = ··· =b0− a0
2k =b− a 2k
→ 0, k → ∞. 即这些区间最终收缩于一点x∗,显然x∗就是方程f (x)= 0的根。
二分法
重复上述过程,可得到一系列的隔根区间
[a0, b0] ⊃ [a1, b1] ⊃ ··· ⊃ [a2, b2] ⊃ ···
并有f (ak)· f (bk)< 0, x∗∈ (ak, bk),且后一区间的长度都是前一区间长 度的一半,即
bk− ak=bk−1− ak−1
2 = ··· =b0− a0
2k =b− a
2k → 0, k → ∞.
即这些区间最终收缩于一点x∗,显然x∗就是方程f (x)= 0的根。
二分法
重复上述过程,可得到一系列的隔根区间
[a0, b0] ⊃ [a1, b1] ⊃ ··· ⊃ [a2, b2] ⊃ ···
并有f (ak)· f (bk)< 0, x∗∈ (ak, bk),且后一区间的长度都是前一区间长 度的一半,即
bk− ak=bk−1− ak−1
2 = ··· =b0− a0
2k =b− a
2k → 0, k → ∞.
二分法
实际计算时,只要二分的次数n足够大,就可取最后区间的中点 xk=ak+b2 k 作为方程f (x)= 0的近似值,即
x∗≈ak+ bk
2 .
此时所产生的误差为
|xk− x∗| ≤bk− ak
2 =b− a 2k+1.
若事先给定的精度要求为ϵ,则只需
|xk− x∗| ≤b− a 2k+1 < ϵ 便可停止计算。
二分法
实际计算时,只要二分的次数n足够大,就可取最后区间的中点 xk=ak+b2 k 作为方程f (x)= 0的近似值,即
x∗≈ak+ bk
2 .
此时所产生的误差为
|xk− x∗| ≤bk− ak
2 =b− a 2k+1.
若事先给定的精度要求为ϵ,则只需
|xk− x∗| ≤b− a 2k+1 < ϵ 便可停止计算。
二分法
实际计算时,只要二分的次数n足够大,就可取最后区间的中点 xk=ak+b2 k 作为方程f (x)= 0的近似值,即
x∗≈ak+ bk
2 .
此时所产生的误差为
|xk− x∗| ≤bk− ak
2 =b− a 2k+1.
若事先给定的精度要求为ϵ,则只需
例
用二分法求方程 x3+ 4x2− 10 = 0 在[1, 2] 内的根的近似解,要求 绝对误差不超过 12× 10−2
解
在[1, 2]上,
f′(x)= 3x2+ 4x > 0,
故f (x)在[1, 2]上严格单调增加,且f (1)< 0,f (2)> 0,所以方程
在[1, 2]内有惟一实根。令 b−a
2k+1≤12× 10−2,则得 k+ 1 ≥ln 200
ln 2 , 所以至少对分 7 次。
例
用二分法求方程 x3+ 4x2− 10 = 0 在[1, 2] 内的根的近似解,要求 绝对误差不超过 12× 10−2
解
在[1, 2]上,
f′(x)= 3x2+ 4x > 0,
故f (x)在[1, 2]上严格单调增加,且f (1)< 0,f (2)> 0,所以方程
在[1, 2]内有惟一实根。
令 b−a
2k+1≤12× 10−2,则得 k+ 1 ≥ln 200
ln 2 , 所以至少对分 7 次。
例
用二分法求方程 x3+ 4x2− 10 = 0 在[1, 2] 内的根的近似解,要求 绝对误差不超过 12× 10−2
解
在[1, 2]上,
f′(x)= 3x2+ 4x > 0,
故f (x)在[1, 2]上严格单调增加,且f (1)< 0,f (2)> 0,所以方程
在[1, 2]内有惟一实根。令 b−a
2k+1≤12× 10−2,则得 k+ 1 ≥ln 200
,
二分法
表 1: 计算结果
k xk f (xk)符号 隔根区间
1 x1= 1.5 + [1, 1.5]
2 x2= 1.25 − [1.25, 1.5]
3 x3= 1.375 + [1.25, 1.375]
4 x4= 1.3125 − [1.3125, 1.375]
5 x5= 1.34375 − [1.34375, 1.375]
6 x = 1.359375 − [1.359375, 1.375]
二分法
计算步骤 (1) 准备
输入a, b, ϵ,计算f (a) (2) 循环
计算x=a+ b 2
若f (a)· f (x) < 0,则x→ b;否则x→ a (3) 控制
二分法
优点
• 运算简单,方法可靠,易于在计算机上实现
• 对函数f (x)的要求不高,只要求y= f (x)在区间[a, b]连续
缺点
• 不能用于求复根及偶数重根
• 收敛速度较慢 (因为每步误差是以1/2因子下降)
用途
常用该方法为其他求根方法提供较好的初始值,再用其他的求根 方法精确化。
二分法
优点
• 运算简单,方法可靠,易于在计算机上实现
• 对函数f (x)的要求不高,只要求y= f (x)在区间[a, b]连续
缺点
• 不能用于求复根及偶数重根
• 收敛速度较慢 (因为每步误差是以1/2因子下降)
用途
常用该方法为其他求根方法提供较好的初始值,再用其他的求根 方法精确化。
二分法
优点
• 运算简单,方法可靠,易于在计算机上实现
• 对函数f (x)的要求不高,只要求y= f (x)在区间[a, b]连续
缺点
• 不能用于求复根及偶数重根
• 收敛速度较慢 (因为每步误差是以1/2因子下降)
不动点迭代法
不动点迭代法
给定方程
f (x)= 0, (1)
其中f (x)在有根区间[a, b]上连续,并设x0 是方程的一个近似根。
将 (1) 改写成等价形式
x= φ(x). (2)
为了求得 (1) 的根,可由 (2) 构造迭代序列
x1 = φ(x0), x2 = φ(x1),
...
xk+1 = φ(xk), ...
该方法成为迭代法,φ(x)称为迭代函数。
不动点迭代法
给定方程
f (x)= 0, (1)
其中f (x)在有根区间[a, b]上连续,并设x0 是方程的一个近似根。
将 (1) 改写成等价形式
x= φ(x). (2)
为了求得 (1) 的根,可由 (2) 构造迭代序列
x1 = φ(x0), x2 = φ(x1),
...
xk+1 = φ(xk), ...
该方法成为迭代法,φ(x)称为迭代函数。
不动点迭代法
给定方程
f (x)= 0, (1)
其中f (x)在有根区间[a, b]上连续,并设x0 是方程的一个近似根。
将 (1) 改写成等价形式
x= φ(x). (2)
为了求得 (1) 的根,可由 (2) 构造迭代序列
x1 = φ(x0), x2 = φ(x1),
..
该方法成为迭代法,φ(x)称为迭代函数。
不动点迭代法
给定方程
f (x)= 0, (1)
其中f (x)在有根区间[a, b]上连续,并设x0 是方程的一个近似根。
将 (1) 改写成等价形式
x= φ(x). (2)
为了求得 (1) 的根,可由 (2) 构造迭代序列
x1 = φ(x0), x2 = φ(x1),
..
不动点迭代法
若由迭代法产生的序列{xk}的极限存在,即 lim
k→∞xk= x⋆, 则称迭代法收敛,否则称迭代法发散。
不动点迭代法
y
x y= φ(x) y= x
x⋆
不动点迭代法
y
x y= φ(x) y= x
x⋆ x0
p0
不动点迭代法
y
x y= φ(x) y= x
x⋆ x0
p0 q1
不动点迭代法
y
x y= φ(x) y= x
x⋆ x0
p0 q1
x1 p1
不动点迭代法
y
x y= φ(x) y= x
x⋆ x0
p0 q1
x1 p1 q2
不动点迭代法
y
x y= φ(x) y= x
x⋆ x0
p0 q1
x1 p1 q2
x2 p2
不动点迭代法
y
x y= φ(x) y= x
x⋆ x0
p0 q1
x1 p1 q2
x2 p2 q3
不动点迭代法
y
x y= φ(x) y= x
x⋆ x0
p0 q1
x1 p1 q2
x2 p2 q3
x3 p3
不动点迭代法
y
x y= φ(x) y= x
x⋆
不动点迭代法
y
x y= φ(x) y= x
x⋆ x0
p0
不动点迭代法
y
x y= φ(x) y= x
x⋆ x0
p0 q1
不动点迭代法
y
x y= φ(x) y= x
x⋆ x0
p0 q1
x1 p1
不动点迭代法
y
x y= φ(x) y= x
x⋆ x0
p0 q1
x1
p1 q2
不动点迭代法
y
x y= φ(x) y= x
x⋆ x0
p0 q1
x1
p1 q2
x2 p2
不动点迭代法
y
x y= φ(x) y= x
x⋆ x0
p0 q1
x1
p1 q2
x2 p2 q3
不动点迭代法
y
x y= φ(x) y= x
x⋆ x0
p0 q1
x1
p1 q2
x2 p2 q3
x3 p3
不动点迭代法
y
x y= φ(x) y= x
不动点迭代法
y
x y= φ(x) y= x
p0
不动点迭代法
y
x y= φ(x) y= x
p0 q1
不动点迭代法
y
x y= φ(x) y= x
p0 q1
p1
不动点迭代法
y
x y= φ(x) y= x
p0 q1
p1 q2
不动点迭代法
y
x y= φ(x) y= x
p0 q1
p1 q2
不动点迭代法
y
x y= φ(x) y= x
x⋆
不动点迭代法
y
x y= φ(x) y= x
x⋆ x0 p0
不动点迭代法
y
x y= φ(x) y= x
x⋆ x0 p0 q1
不动点迭代法
y
x y= φ(x) y= x
x⋆ x0 p0 q1
x1 p1
不动点迭代法
y
x y= φ(x) y= x
x⋆ x0 p0 q1
x1
p1 q2
不动点迭代法
y
x y= φ(x) y= x
x⋆ x0 p0 q1
x1
p1 q2
x2 p2
不动点迭代法
y
x y= φ(x) y= x
x⋆ x0 p0 q1
x1
p1 q2
x2 p2 q3
不动点迭代法
y
x y= φ(x) y= x
x⋆ x0 p0 q1
x1
p1 q2
x2 p2 q3
x3 p3
不动点迭代法
由图可看出,
• 当φ′(x)在x⋆处满足不同条件时,迭代过程的收敛情况也有所不 同。
• 迭代过程的收敛依赖于迭代函数的构造,为使迭代法有效,必须 保证其收敛性。
不动点迭代法
定义 : 不动点
设φ(x)为连续函数,则
klim→∞xk= x⋆ =⇒ x⋆= φ(x⋆) =⇒ x⋆是x= φ(x)的解, 称x⋆为迭代函数的不动点,简单迭代法又称为不动点迭代法。
将f (x)= 0转化为等价方程x= φ(x)的方法有多种,且不惟一。如
f (x)= x − sinx − 0.5 = 0 ⇐⇒
(1) x= φ1(x)= sinx + 0.5 (2) x= φ2(x)= arcsin(x − 0.5). 对于不动点迭代法,选择迭代函数非常重要。不同的迭代函数会产生 不同的迭代序列,且收敛情况也不一定相同,即使初始值选择相同。
不动点迭代法
定义 : 不动点
设φ(x)为连续函数,则
klim→∞xk= x⋆ =⇒ x⋆= φ(x⋆) =⇒ x⋆是x= φ(x)的解, 称x⋆为迭代函数的不动点,简单迭代法又称为不动点迭代法。
将f (x)= 0转化为等价方程x= φ(x)的方法有多种,且不惟一。如
f (x)= x − sinx − 0.5 = 0 ⇐⇒
(1) x= φ1(x)= sinx + 0.5
对于不动点迭代法,选择迭代函数非常重要。不同的迭代函数会产生 不同的迭代序列,且收敛情况也不一定相同,即使初始值选择相同。
不动点迭代法
定义 : 不动点
设φ(x)为连续函数,则
klim→∞xk= x⋆ =⇒ x⋆= φ(x⋆) =⇒ x⋆是x= φ(x)的解, 称x⋆为迭代函数的不动点,简单迭代法又称为不动点迭代法。
将f (x)= 0转化为等价方程x= φ(x)的方法有多种,且不惟一。如
f (x)= x − sinx − 0.5 = 0 ⇐⇒
(1) x= φ1(x)= sinx + 0.5
不动点迭代法
例
已知10x−x −2 = 0在[0.3, 0.4]内有一个根,用两种不同的迭代公
式,
(1) xk+1= 10xk− 2 (2) xk+1= log(xk+ 2)
表 2: 计算结果
k 迭代格式 (1) 迭代格式 (2) 0 x0= 0.3 x0= 0.3 1 x1= −0.0047 x1= 0.3617 2 x2= −1.0108 x2= 0.3732
3 x3= 0.3753
4 x4= 0.3757
不动点迭代法
例
已知10x−x −2 = 0在[0.3, 0.4]内有一个根,用两种不同的迭代公
式,
(1) xk+1= 10xk− 2 (2) xk+1= log(xk+ 2)
表 2: 计算结果
k 迭代格式 (1) 迭代格式 (2) 0 x0= 0.3 x0= 0.3
不动点迭代法
由迭代法的几何意义可知,为了保证迭代过程收敛,就要求迭代函数 φ(x)在区间[a, b]上变化不是很大,即φ′(x)的绝对值应较小。
不动点迭代法
定理
设有方程x= φ(x),若
(1) 当x∈ [a,b]时,φ(x) ∈ [a,b]
(2) φ(x)在[a, b]上可导,且有|φ′(x)| ≤ L < 1, x ∈ [a,b]
则
(1) x= φ(x)存在惟一解x⋆
(2) 对任意初值x0∈ [a,b],迭代公式
xk+1= φ(xk), k= 0,1,2,···
产生的数列{xk}收敛于方程的惟一根 x⋆,即limk→∞xk= x⋆ (3) 误差估计
|xk− x⋆| ≤ Lk
1− L|x1− x0|
|xk− x⋆| ≤ L
1− L|xk− xk−1|
不动点迭代法
定理
设有方程x= φ(x),若
(1) 当x∈ [a,b]时,φ(x) ∈ [a,b]
(2) φ(x)在[a, b]上可导,且有|φ′(x)| ≤ L < 1, x ∈ [a,b]
则
(1) x= φ(x)存在惟一解x⋆
(2) 对任意初值x0∈ [a,b],迭代公式
xk+1= φ(xk), k= 0,1,2,···
产生的数列 收敛于方程的惟一根 ⋆,即 = x⋆
不动点迭代法
利用
|xk− x⋆| ≤ Lk
1− L|x1− x0|, 可用于
• 估计迭代k 次时的误差
• 估计达到给定精度要求ϵ时,所需迭代的次数 k
若欲使|xk− x⋆| ≤ ϵ,只要 Lk
1− L|x1− x0| ≤ ϵ =⇒ k >ln|xϵ(1−L)
1−x0|
ln L
不动点迭代法
利用
|xk− x⋆| ≤ Lk
1− L|x1− x0|, 可用于
• 估计迭代k 次时的误差
• 估计达到给定精度要求ϵ时,所需迭代的次数 k 若欲使|xk− x⋆| ≤ ϵ,只要
k
=⇒ k >ln|xϵ(1−L)
1−x0|
ln L
不动点迭代法
利用
|xk− x⋆| ≤ Lk
1− L|x1− x0|, 可用于
• 估计迭代k 次时的误差
• 估计达到给定精度要求ϵ时,所需迭代的次数 k 若欲使|xk− x⋆| ≤ ϵ,只要
k lnϵ(1−L)
不动点迭代法
由
|xk− x⋆| ≤ L
1− L|xk− xk−1|, 可知:
• 0< L < 1越小,{xk}收敛越快。
• 只要相邻两次迭代的差|xk− xk−1|足够小,就可保证近似解xk 有 足够的精度
实际计算时,常采用条件
|xk− xk−1| ≤ ϵ 来控制迭代终止。
不动点迭代法
由
|xk− x⋆| ≤ L
1− L|xk− xk−1|, 可知:
• 0< L < 1越小,{xk}收敛越快。
• 只要相邻两次迭代的差|xk− xk−1|足够小,就可保证近似解xk 有 足够的精度
实际计算时,常采用条件
不动点迭代法
定理 : 局部收敛性
设 x⋆ 是方程 x= φ(x) 的根,φ′(x) 在 x⋆ 的某一邻域连续,且
|φ′(x⋆)| < 1,则存在 x⋆ 的一个邻域 S= {x : |x − x⋆| ≤ δ},使得
∀x0∈ S,由迭代公式
xk+1= φ(xk), k= 0,1,2,···
产生的数列{xk}收敛于方程的根x⋆。
证明
取[a, b]= [x⋆−δ,x⋆+δ],只需验证前面定理的条件 (1)。
设x∈ S, 即当|x − x⋆| ≤ δ时,由微分中值定理及|φ′(x)| < 1,有
|φ(x) − x⋆| = |φ(x) − φ(x⋆)| = |φ′(x− x⋆)| ≤ L|x − x⋆| < |x − x⋆| ≤ δ, 故φ(x) ∈ S。
不动点迭代法
定理 : 局部收敛性
设 x⋆ 是方程 x= φ(x) 的根,φ′(x) 在 x⋆ 的某一邻域连续,且
|φ′(x⋆)| < 1,则存在 x⋆ 的一个邻域 S= {x : |x − x⋆| ≤ δ},使得
∀x0∈ S,由迭代公式
xk+1= φ(xk), k= 0,1,2,···
产生的数列{xk}收敛于方程的根x⋆。
证明
取[a, b]= [x⋆−δ,x⋆+δ],只需验证前面定理的条件 (1)。设x∈ S, 即当|x − x⋆| ≤ δ时,由微分中值定理及|φ′(x)| < 1,有
不动点迭代法
例
求f (x)= 2x − logx − 7 = 0的最大根,要求精度为 10−4。
不动点迭代法
解
(1) 等价方程为
2x− 7 = logx
由以下示意图知方程的最大根在 [3.5, 4]内。
y
y= lgx y= 2x − 7
不动点迭代法
解 (续) :
(2) 建立迭代公式,判别收敛性 将方程等价变形为
x=1
2(log x+ 7) 迭代公式为
xk+1=1
2(log xk+ 7)
因φ′(x)= 1
2 ln 10·1x,故φ(x)在[3.5, 4]内可导。因φ(x)在 [3.5, 4]内为增函数,且
φ(3.5) ≈ 3.77, φ(4) ≈ 3.80 故当x∈ [3.5,4] 时,φ(x) ∈ [3.5,4]。因为
L= max|φ′(x)| ≈ φ′(3.5)≈ 0.06 < 1 故迭代法收敛。
不动点迭代法
解 (续) :
(2) 建立迭代公式,判别收敛性 将方程等价变形为
x=1
2(log x+ 7) 迭代公式为
xk+1=1
2(log xk+ 7) 因φ′(x)= 1
2 ln 10·1x,故φ(x)在[3.5, 4]内可导。因φ(x)在 [3.5, 4]内为增函数,且
φ(3.5) ≈ 3.77, φ(4) ≈ 3.80
不动点迭代法
解 (续) : (3) 计算
取x0= 3.5,有
x1=12(log x0+ 7) ≈ 3.78989, x2=12(log x1+ 7) ≈ 3.78931, x3=12(log x2+ 7) ≈ 3.78928.
因为|x3− x2| ≤ 10−4,故方程的最大根为
不动点迭代法
例
用迭代法求x3− x2− 1 = 0在隔根区间[1.4, 1.5]内的根,要求精确 到小数点后第 4 位。
解
(1) 构造迭代公式 方程的等价形式为
x= (x2+ 1)1/3= φ(x) 迭代公式为
xk+1= (x2k+ 1)1/3
不动点迭代法
例
用迭代法求x3− x2− 1 = 0在隔根区间[1.4, 1.5]内的根,要求精确 到小数点后第 4 位。
解
(1) 构造迭代公式 方程的等价形式为
x= (x2+ 1)1/3= φ(x)
不动点迭代法
解 (续) :
(2) 判断迭代法的收敛性
φ′(x)= 2x 3(x2+ 1)2/3 因φ(x)在区间[1.4, 1.5]内可导,且
|φ′(x)| ≤ 0.5 < 1
不动点迭代法
解 (续) : (3) 计算结果
k xk |xk+1− xk| ≤12× 10−4 0 x0= 1.5
1 x1= 1.4812480 |x1− x0| ≈ 0.02 2 x2= 1.4727057 |x2− x1| ≈ 0.009 3 x3= 1.4688173 |x2− x1| ≈ 0.004 4 x4= 1.4670480 |x2− x1| ≈ 0.002 5 x5= 1.4662430 |x2− x1| ≈ 0.0009 6 x = 1.4658786 |x − x | ≈ 0.0004
不动点迭代法
计算步骤 (1) 准备
选取初值x0,确定f (x)= 0的等价方程x= φ(x); (2) 迭代
依公式
x1= φ(x0) 迭代一次得新近似值 x1;
(3) 控制
若|x1− x0| < ϵ,则终止迭代,x1 即为所求的根;否则转(4);
准备迭代
不动点迭代法
优点
• 计算程序简单,可计算复根
• 若迭代公式收敛,只要迭代次数足够,可使结果达到指定精 度
• L越接近于零,收敛速度越快
缺点
• 需自行选取合适的迭代函数
• L接近于 1 时,收敛速度越很慢
不动点迭代法
优点
• 计算程序简单,可计算复根
• 若迭代公式收敛,只要迭代次数足够,可使结果达到指定精 度
• L越接近于零,收敛速度越快 缺点
• 需自行选取合适的迭代函数
牛顿迭代法
牛顿迭代法
牛顿法的条件
设x⋆为f (x)= 0在隔根区间[a, b]内的根,
• f (x)在[a, b]上可导
• ∀x ∈ [a,b]有f′(x)̸= 0。
牛顿迭代法
y
x⋆ x
(1) 任取初值x0∈ [a,b],过点(x0, f (x0))作切线,切线方程为
牛顿迭代法
y
x⋆ x
x0 f0
(1) 任取初值x0∈ [a,b],过点(x0, f (x0))作切线,切线方程为