设有一个单变量的非线性方程 f ( x ) = 0 f(x) = 0 f(x)=0,往往这样的方程没有直接的求根公式,因此没有直接方法计算,只能使用迭代法来求数值解,二分法就是这样的一种方法,这里介绍一下其他的几种方法
不动点迭代法
我们可以将非线性方程 f ( x ) = 0 f(x) = 0 f(x)=0改写为 x = ϕ ( x ) x = \phi(x) x=ϕ(x),满足这样式子的x称作 ϕ ( x ) \phi(x) ϕ(x)的一个不动点,求 f ( x ) f(x) f(x)的零点就等价于求 ϕ ( x ) \phi(x) ϕ(x)的不动点,可以选定一个初始值 x 0 x_0 x0代入等式的右侧,然后一直以 x k + 1 = ϕ ( x k ) x_{k+1} = \phi(x_k) xk+1=ϕ(xk)的方式迭代下去,这样可以获得一个序列,如果序列 { x k } \{x_k\} {
xk}有极限: lim k − > ∞ x k = x ∗ \lim_{k->\infty}x_k = x^* k−>∞limxk=x∗则称该迭代法为不动点迭代法。
我们可以用几何图像来表达不动点迭代法的思想:
如图,选定了初始值 x 0 x_0 x0,然后计算出 ϕ ( x 0 ) \phi(x_0) ϕ(x0)得到了 P 0 P_0 P0,然后再过 ( x 0 , P 0 ) (x_0,P_0) (x0,P0)引一条与x轴平行的直线,它与直线 y = x y=x y=x交于点 Q 1 ( P 0 , P 0 ) Q_1(P_0,P_0) Q1(P0,P0),然令 x 1 = P 0 x_1 = P_0 x1=P0,沿着图上的路径继续走下去,可以发现最终点列 { P k } \{P_k\} {
Pk}会收敛到 P ∗ P^* P∗,也就是最终迭代的值 x k x_k xk会收敛到想要的 x ∗ x^* x∗。
尽管在这个图上最终的结果是收敛的,但是这并不意味着采用不动点迭代法一定是收敛的
例如在这个图上,用不动点迭代法就是不收敛的,点列 { P k } \{P_k\} {
Pk}会一直往偏离 P ∗ P^* P∗的方向移动。
不动点的存在性和迭代的收敛性
首先考虑 ϕ ( x ) \phi(x) ϕ(x)在 [ a , b ] [a,b] [a,b]上不动点的存在性和唯一性:
定理1:若 ϕ ( x ) \phi(x) ϕ(x)在 [ a , b ] [a,b] [a,b]上满足:
(1)对于任意的 x ∈ C [ a , b ] x∈C[a,b] x∈C[a,b],都有 a < = ϕ ( x ) < = b a<=\phi(x)<=b a<=ϕ(x)<=b
(2)存在正常数 L < 1 L < 1 L<1,使对任意的 x , y ∈ [ a , b ] x,y∈[a,b] x,y∈[a,b],都有 ∣ ϕ ( x ) − ϕ ( y ) ∣ < = L ∣ x − y ∣ |\phi(x)-\phi(y)|<=L|x-y| ∣ϕ(x)−ϕ(y)∣<=L∣x−y∣
那么 ϕ ( x ) \phi(x) ϕ(x)在 [ a , b ] [a,b] [a,b]上存在唯一的不动点 x ∗ x^* x∗
证:
若 ϕ ( a ) = a \phi(a) = a ϕ(a)=a或 ϕ ( b ) = b \phi(b) = b ϕ(b)=b 那么不动点显然存在
若 ϕ ( a ) > a \phi(a) > a ϕ(a)>a且 ϕ ( b ) < b \phi(b) < b ϕ(b)<b,则设函数 f ( x ) = ϕ ( x ) − x f(x) = \phi(x) - x f(x)=ϕ(x)−x
由已知有 f ( a ) = ϕ ( a ) − a > 0 f(a) = \phi(a) - a > 0 f(a)=ϕ(a)−a>0, f ( b ) = ϕ ( b ) − b < 0 f(b) = \phi(b) - b < 0 f(b)=ϕ(b)−b<0,由连续函数的性质可知,存在 x ∗ ∈ ( a , b ) x^*∈(a,b) x∗∈(a,b)使得 f ( x ∗ ) = 0 f(x^*) = 0 f(x∗)=0
因此不动点一定存在,下面证其唯一性:
设 x 1 ∗ , x 2 ∗ x_1^*,x_2^* x1∗,x2∗都是 ϕ ( x ) \phi(x) ϕ(x)在 ( a , b ) (a,b) (a,b)上的不动点,则由条件(2)可知: ∣ x 1 ∗ − x 2 ∗ ∣ = ∣ ϕ ( x 1 ∗ ) − ϕ ( x 2 ∗ ) ∣ < L ∣ x 1 ∗ − x 2 ∗ ∣ < ∣ x 1 ∗ − x 2 ∗ ∣ |x_1^*-x_2^*| = |\phi(x_1*) - \phi(x_2*)| < L|x_1^*-x_2^*| <|x_1^*-x_2^*| ∣x1∗−x2∗∣=∣ϕ(x1∗)−ϕ(x2∗)∣<L∣x1∗−x2∗∣<∣x1∗−x2∗∣ ,矛盾
因此不动点唯一。
定理2:
设 ϕ ( x ) ∈ C [ a , b ] \phi(x)∈C[a,b] ϕ(x)∈C[a,b]满足定理1中的两个条件,则对于任意选定的 x 0 ∈ [ a , b ] x_0∈[a,b]