第六章 非线性方程求解
6.1 二分法
过程
设 f ∈ C [ a , b ] f\in C[a,b] f∈C[a,b],且 [ a , b ] [a,b] [a,b]为有根区间,取中点 x 0 = a + b 2 x_0=\frac{a+b}{2} x0=2a+b
若 f ( a ) f ( x 0 ) > 0 f(a)f(x_0)>0 f(a)f(x0)>0,则取 a 1 = x 0 a_1=x_0 a1=x0
否则取 b 1 = x 0 b_1=x_0 b1=x0。
6.2 迭代法
将方程改写为等价形式:
x
=
φ
(
x
)
x=\varphi(x)\\
x=φ(x)
根据上式构造迭代法
x
k
+
1
=
φ
(
x
k
)
x_{k+1}=\varphi(x_k)
xk+1=φ(xk)
如果有
lim
k
→
∞
x
k
=
x
∗
\lim\limits_{k\rightarrow\infty}x_k=x^{*}
k→∞limxk=x∗,则
x
∗
x^*
x∗为该方程的解
6.3 收敛性、阶
定理6.1
设
φ
∈
C
[
a
,
b
]
\varphi\in C[a,b]
φ∈C[a,b],如果对
∀
x
∈
[
a
,
b
]
有
a
≤
φ
(
x
)
≤
b
\forall x \in [a,b]有a\leq \varphi(x) \leq b
∀x∈[a,b]有a≤φ(x)≤b,且存在常数
L
∈
(
0
,
1
)
L\in (0,1)
L∈(0,1)使
∣
φ
(
x
)
−
φ
(
y
)
∣
≤
L
∣
x
−
y
∣
,
∀
x
,
y
∈
[
a
,
b
]
|\varphi(x)-\varphi(y)|\leq L|x-y|,\forall x,y \in [a,b]
∣φ(x)−φ(y)∣≤L∣x−y∣,∀x,y∈[a,b]
则
φ
\varphi
φ在区间
[
a
,
b
]
[a,b]
[a,b]上存在唯一不动点
x
∗
x^{*}
x∗,且由上述式子产生的迭代序列
x
k
{x_k}
xk对任何
x
0
∈
[
a
,
b
]
x_0 \in [a,b]
x0∈[a,b]收敛于
x
∗
x^{*}
x∗,并有误差估计
∣
x
k
−
x
∗
∣
≤
L
k
1
−
L
∣
x
1
−
x
0
∣
|x_k-x^*| \leq \frac{L^k}{1-L}|x_1-x_0|
∣xk−x∗∣≤1−LLk∣x1−x0∣
推论
若
φ
∈
C
1
[
a
,
b
]
\varphi \in C^1[a,b]
φ∈C1[a,b],则定理中的条件式可以改成
max
a
≤
x
≤
b
∣
φ
′
(
x
)
∣
≤
L
<
1
\max\limits_{a\leq x \leq b}|\varphi^{\prime}(x)| \leq L < 1
a≤x≤bmax∣φ′(x)∣≤L<1
定义6.1
设 φ \varphi φ在某区间 I I I有不动点 x ∗ x^{*} x∗,若存在 x ∗ x^* x∗的一个领域 S = { ∣ x − x ∗ ∣ < δ } ⊂ I S=\left\{|x-x^*|<\delta\right\}\subset I S={∣x−x∗∣<δ}⊂I,对 ∀ x 0 ∈ S \forall x_0 \in S ∀x0∈S,迭代法生成的序列 { x k } ⊂ S \left\{x_k\right\}\subset S {xk}⊂S,且收敛于 x ∗ x^{*} x∗,则称迭代序列局部收敛。
定理6.2
设 x ∗ x^{*} x∗为 φ \varphi φ的不动点, φ ′ ( x ) \varphi^{\prime}(x) φ′(x)在 x ∗ x^{*} x∗的邻域 S S S连续,且 ∣ φ ′ ( x ∗ ) ∣ < 1 |\varphi^{\prime}(x^*)|<1 ∣φ′(x∗)∣<1,则迭代法局部收敛
定义6.2
设序列
{
x
k
}
\left\{x_k\right\}
{xk}收敛于
x
∗
x^{*}
x∗,记误差
ε
k
=
x
k
−
x
∗
\varepsilon_k=x_k-x^*
εk=xk−x∗,若存在实数
p
≥
1
p\geq 1
p≥1及
a
>
0
a >0
a>0,使
lim
k
→
∞
∣
ε
k
+
1
∣
∣
ε
k
∣
p
=
a
\lim\limits_{k\rightarrow\infty}\frac{|\varepsilon_{k+1}|}{|\varepsilon_k|^p}=a
k→∞lim∣εk∣p∣εk+1∣=a
则称序列
{
x
k
}
\left\{x_k\right\}
{xk}是
p
p
p阶收敛的,
a
a
a称为渐进误差常数,当
p
=
1
p=1
p=1时,
0
<
a
<
1
0<a<1
0<a<1,称为线性收敛。
p
=
2
p=2
p=2称为平方收敛
定理6.3
设
x
∗
x^{*}
x∗为
φ
\varphi
φ的不动点,整数
p
>
1
p>1
p>1,
φ
(
p
)
(
x
)
\varphi^{(p)}(x)
φ(p)(x)在
x
∗
x^*
x∗的邻域连续,且满足
φ
′
(
x
∗
)
=
.
.
.
=
φ
(
p
−
1
)
(
x
∗
)
=
0
,
而
φ
(
p
)
(
x
∗
)
≠
0
\varphi^{\prime}(x^{*})=...=\varphi^{(p-1)}(x^{*})=0,而\varphi^{(p)}(x^{*}) \neq 0
φ′(x∗)=...=φ(p−1)(x∗)=0,而φ(p)(x∗)=0
则有迭代法生成的序列
{
x
k
}
\left\{x_k\right\}
{xk}在
x
∗
x^*
x∗的邻域是
p
p
p阶收敛的,并有
lim
k
→
∞
ε
k
+
1
ε
k
p
=
φ
(
p
)
(
x
∗
)
p
!
\lim\limits_{k\rightarrow\infty}\frac{\varepsilon_{k+1}}{\varepsilon_{k}^p}=\frac{\varphi^{(p)}(x^*)}{p!}
k→∞limεkpεk+1=p!φ(p)(x∗)
6.4 Steffensen加速迭代法
思想来源
设
x
∗
=
φ
(
x
∗
)
x^{*}=\varphi(x^{*})
x∗=φ(x∗)是
φ
\varphi
φ的不动点,记
ε
k
=
x
k
−
x
∗
\varepsilon_k=x_k-x^*
εk=xk−x∗,利用中值定理有
ε
k
+
1
ε
k
=
x
k
+
1
−
x
∗
x
k
−
x
∗
=
φ
(
x
k
)
−
φ
(
x
∗
)
x
k
−
x
∗
=
φ
′
(
ξ
k
)
\frac{\varepsilon_{k+1}}{\varepsilon_k}=\frac{x_{k+1}-x^*}{x_k-x^*}=\frac{\varphi(x_k)-\varphi(x^*)}{x_k-x^*}=\varphi^{\prime}(\xi_k)
εkεk+1=xk−x∗xk+1−x∗=xk−x∗φ(xk)−φ(x∗)=φ′(ξk)
ξ
k
\xi_k
ξk在
x
∗
x^*
x∗与
x
k
x_k
xk之间,若
φ
′
(
x
)
\varphi^{\prime}(x)
φ′(x)变化不大,设
φ
′
(
ξ
k
)
≈
C
\varphi^{\prime}(\xi_k)\thickapprox C
φ′(ξk)≈C,于是有
x
k
+
1
−
x
∗
≈
C
(
x
k
−
x
∗
)
x
k
+
2
−
x
∗
≈
C
(
x
k
+
2
−
x
∗
)
x_{k+1}-x^* \thickapprox C(x_k-x^*)\\ x_{k+2}-x^* \thickapprox C(x_{k+2}-x^*)
xk+1−x∗≈C(xk−x∗)xk+2−x∗≈C(xk+2−x∗)
从上两式消去
C
C
C,则得
x
k
+
2
−
x
∗
x
k
+
1
−
x
∗
≈
x
k
+
1
−
x
∗
x
k
−
x
∗
\frac{x_{k+2}-x^*}{x_{k+1}-x^*} \thickapprox \frac{x_{k+1}-x^*}{x_k-x^*}
xk+1−x∗xk+2−x∗≈xk−x∗xk+1−x∗
解得
x
∗
=
x
k
+
2
x
k
−
x
k
2
x
k
+
2
−
2
x
k
+
1
+
x
k
=
x
k
−
(
x
k
+
1
−
x
k
)
2
x
k
+
2
−
2
x
k
+
1
+
x
k
x^*=\frac{x_{k+2}x_k-x_k^2}{x_{k+2}-2x_{k+1}+x_k}=x_k-\frac{(x_{k+1}-x_k)^2}{x_{k+2}-2x_{k+1}+x_k}
x∗=xk+2−2xk+1+xkxk+2xk−xk2=xk−xk+2−2xk+1+xk(xk+1−xk)2
特性
局部收敛,二阶收敛
6.5 Newton 迭代法
思想来源
求
x
∗
x^*
x∗,如果已知它的一个近似
x
k
x_k
xk,可利用Taylor展开式求出
f
(
x
)
f(x)
f(x)在
x
k
x_k
xk附近的线性近似,即
f
(
x
)
=
f
(
x
k
)
+
f
′
(
x
k
)
(
x
−
x
k
)
+
f
′
′
(
ξ
)
2
(
x
−
x
k
)
2
f(x)=f(x_k)+f^{\prime}(x_k)(x-x_k)+\frac{f^{\prime\prime}(\xi)}{2}(x-x_k)^2
f(x)=f(xk)+f′(xk)(x−xk)+2f′′(ξ)(x−xk)2
忽略余项,得到近似
f
(
x
)
≈
f
(
x
k
)
+
f
′
(
x
k
)
(
x
−
x
k
)
=
0
f(x) \thickapprox f(x_k)+f^{\prime}(x_k)(x-x_k)=0
f(x)≈f(xk)+f′(xk)(x−xk)=0
若
f
′
(
x
k
)
≠
0
f^{\prime}(x_k) \neq 0
f′(xk)=0,则
x
=
x
k
−
f
(
x
k
)
f
′
(
x
k
)
x = x_k - \frac{f(x_k)}{f^{\prime}(x_k)}
x=xk−f′(xk)f(xk)
特性
局部收敛,二阶收敛
6.6 Newton下山法
将Newton迭代改为:
x
k
+
1
=
x
k
−
λ
k
f
(
x
k
)
f
′
(
x
k
)
,
k
=
0
,
1
,
.
.
.
x_{k+1}=x_k-\lambda_k\frac{f(x_k)}{f^{\prime}(x_k)},k=0,1,...
xk+1=xk−λkf′(xk)f(xk),k=0,1,...
其中
0
<
λ
k
≤
1
0<\lambda_k \leq 1
0<λk≤1,称为下山因子。
选择 λ k \lambda_k λk使 ∣ f ( x k + 1 ) ∣ < ∣ f ( x k ) ∣ |f(x_{k+1})|<|f(x_k)| ∣f(xk+1)∣<∣f(xk)∣
6.7 重根情形
当
f
′
(
x
∗
)
=
0
f^{\prime}(x^{*})=0
f′(x∗)=0,且
x
∗
x^*
x∗为方程的m重根。此时
f
(
x
)
=
(
x
−
x
∗
)
m
g
(
x
)
,
g
(
x
∗
)
≠
0
f(x)=(x-x^*)^mg(x),g(x^*)\neq 0
f(x)=(x−x∗)mg(x),g(x∗)=0。将迭代函数改为
x
k
+
1
=
x
k
−
m
f
(
x
k
)
f
′
(
x
)
x_{k+1}=x_k-m\frac{f(x_k)}{f^{\prime}(x)}
xk+1=xk−mf′(x)f(xk)
具有二阶收敛
6.8 割线法
用割线斜率代替导数,即
f
′
(
x
k
)
=
f
(
x
k
)
−
f
(
x
k
−
1
)
x
k
−
x
k
−
1
f^{\prime}(x_k)=\frac{f(x_k)-f(x_{k-1})}{x_k-x_{k-1}}
f′(xk)=xk−xk−1f(xk)−f(xk−1)
则有新的迭代法
x
k
+
1
=
x
k
−
f
(
x
k
)
f
(
x
k
)
−
f
(
x
k
−
1
)
(
x
k
−
x
k
−
1
)
x_{k+1}=x_k - \frac{f(x_k)}{f(x_k)-f(x_{k-1})}(x_k-x_{k-1})
xk+1=xk−f(xk)−f(xk−1)f(xk)(xk−xk−1)