数值分析(4):非线性方程和方程组的数值解法

1. 引言

对于n次多项式方程,必定有n个复数根(代数基本定理)。

判断一个根是几重根,可以用导数来判断,如果 f ( m − 1 ) ( x ∗ ) = 0 f^{(m-1)}(x^*) = 0 f(m1)(x)=0但是 f ( m ) ( x ∗ ) ≠ 0 f^{(m)}(x^*) \neq 0 f(m)(x)=0,那么 x ∗ x^* x f ( x ) = 0 f(x)=0 f(x)=0的m重根。

2. 二分法和割线法

2.1 二分法

基本原理就是《高等数学》中的 零点定理:只要连续函数在一个闭区间上端点的函数值异号,那么在这个闭区间内至少存在一个零点。

对这个区间进行二分,每次迭代都使区间长度缩小一半,始终保持两个端点函数值异号,当然这样能够求出一个解,所以为了保证在二分的过程中不漏解,需要保证区间内只存在唯一解。保证方法就是保证函数在区间内单调。

假设初始时区间为 [ a , b ] [a,b] [a,b],那么在第n次(初始算第一次)迭代后区间长度为:

b n − a n = 1 2 n − 1 ( b − a ) b_n-a_n=\frac{1}{2^{n-1}} (b-a) bnan=2n11(ba)

令区间 [ a n , b n ] [a_n,b_n] [an,bn]的中点为 x n x_n xn,而方程的精确解为 x ∗ x^* x,那么 绝对误差界 ϵ \epsilon ϵ 为:
∣ x n − x ∗ ∣ ≤ 1 2 n ( b − a ) = ϵ |x_n-x^*| \leq \frac{1}{2^{n}} (b-a) = \epsilon xnx2n1(ba)=ϵ

2.2 割线法

割线法的图像理解即为下图,即取区间端点构成的直线与x轴的交点作为新的区间长度。
在这里插入图片描述
割线法的公式可以由Newton迭代法推导出来。
在这里插入图片描述
上图中红线框的即为割线法迭代公式。

3. 不动点迭代法

3.1 不动点和不动点迭代法

f ( x ) f(x) f(x)是一元连续函数,要解的方程是:
f ( x ) = 0 f(x )= 0 f(x)=0

为进行迭代,上式变成等价形式
x = φ ( x ) x=\varphi(x) x=φ(x)
其中 φ ( x ) \varphi(x) φ(x)是连续函数。当然,这种等价形式有无穷多个。

构造迭代公式:
x k + 1 = φ ( x k ) x_{k+1}=\varphi(x_k) xk+1=φ(xk)

如果 lim ⁡ k → ∞ x k = x ∗ \underset{k\rightarrow \infty}{\lim}x_k=x^* klimxk=x,则: x ∗ = φ ( x ∗ ) x^*=\varphi(x^*) x=φ(x)。称 φ \varphi φ迭代函数 x ∗ x^* x为函数 φ \varphi φ的一个 不动点。 上述方法也称为 不动点迭代法

显然并不是任何迭代函数都能式 x k + 1 = φ ( x k ) x_{k+1}=\varphi(x_k) xk+1=φ(xk)收敛。

φ ( x ) \varphi(x) φ(x)满足以下两个条件时,迭代法必定收敛:
在这里插入图片描述
映内性 保证必定存在不动点。
压缩性 保证不动点在此区间内唯一,并且不动点迭代法必定收敛。

注意映内性和压缩性都是对区间 [ a , b ] [a,b] [a,b]上的任意一点成立。

对定理2.1的五个备注:
在这里插入图片描述
在这里插入图片描述

注意在第二备注中,Lipschitz 条件 并不容易判断,因为它要对区间 [ a , b ] [a,b] [a,b]上任意两点成立。没有导数判别法方便。

一些常见的不动点迭代的图像如下所示:
在这里插入图片描述

3.2 全局收敛性

满足上述定理2.1,就说明了在区间 [ a , b ] [a,b] [a,b]上的 全局收敛性。且有如下误差估计公式:
在这里插入图片描述

3.3 局部收敛性

通常全局收敛性因为对整个区间 [ a , b ] [a,b] [a,b]有要求,所以不易检验,为了缩小区间长度,引出了 局部收敛性 的定义和定理。

定义:
在这里插入图片描述
定理:
在这里插入图片描述
注意定义强调的是一个 δ \delta δ的小区间,而定理强调的是一个点 x ∗ x^* x

关于局部收敛定理,有两点需要注意:

  • 这个定理仍然说明了 映内性压缩性 ,“ x ∗ x^* x φ \varphi φ的不动点”就代替了映内性,并且比映内性还强,因为它说明了唯一性。可以证明 ∣ φ ′ ( x ∗ ) ∣ < 1 |\varphi'(x^*)| < 1 φ(x)<1与压缩性等价。

  • 在使用这个定理进行判别时需要注意,我们并不知道真解 x ∗ x^* x的值,因为要求解的就是 x ∗ x^* x,所以 ∣ φ ′ ( x ∗ ) ∣ < 1 |\varphi'(x^*)| < 1 φ(x)<1这个也判定不了。

局部收敛性的好处是,这个 x ∗ x^* x的邻域可以自己定,只要在这个邻域内的导数绝对值小于1,那么它就是局部收敛的。

为了说明 局部收敛的速度 ,有如下 收敛阶收敛速度)的定义:

在这里插入图片描述

通过定义可以推导如下定理:

在这里插入图片描述

上述定理有两点需要注意:

  • 真解 x ∗ x^* x仍然是不知道的
  • 上述定理只能判断2阶收敛及2阶收敛以上的局部收敛,无法判断1阶收敛。

总结:
判断收敛阶的步骤:

假设我们知道了真解 x ∗ x^* x,计算得到:

(1) ∣ φ ′ ( x ∗ ) ∣ > 1 |\varphi'(x^*)| > 1 φ(x)>1,那么不动点迭代法必定发散

(2) ∣ φ ′ ( x ∗ ) ∣ = 1 |\varphi'(x^*)| = 1 φ(x)=1,那么不动点迭代法可能收敛可能发散

(3) 0 < ∣ φ ′ ( x ∗ ) ∣ < 1 0<|\varphi'(x^*)| < 1 0<φ(x)<1,那么不动点迭代法收敛,且为1阶收敛。

(4) ∣ φ ′ ( x ∗ ) ∣ = 0 |\varphi'(x^*)|=0 φ(x)=0,那么继续计算导数,直到求导某一阶导数 ∣ φ ( m ) ( x ∗ ) ∣ ≠ 0 |\varphi^{(m)}(x^*)|\neq0 φ(m)(x)=0,那么不动点迭代法收敛,且为m阶收敛。

4. Newton迭代法

4.1 Newton迭代法思路

Newton迭代法的思路:
在这里插入图片描述
显然 x ∗ x^* x是公式(3.1)的解,即为 φ ( x ) = x − f ( x ) / f ′ ( x ) \varphi(x)=x-f(x)/f'(x) φ(x)=xf(x)/f(x)的不动点。Newton迭代法就是不动点迭代。

Newton迭代法的图像解释:
在这里插入图片描述

可以看到就是不断做曲线的切线,来逼近曲线与x轴的交点。

4.2 收敛性与收敛阶

对于Newton迭代法的收敛性与收敛阶,有如下定理:
在这里插入图片描述
注意定理中要求 x ∗ x^* x为单重根,即 f ′ ( x ∗ ) ≠ 0 f'(x^*)\neq0 f(x)=0。一旦 f ′ ( x ∗ ) = 0 f'(x^*)=0 f(x)=0,那么就说明 x ∗ x^* x为多重根,Newton迭代法仍然能够收敛,且为线性收敛(即一阶收敛)。

为了让Newton迭代法对重根仍然是平方收敛,有以下两种处理方式:
处理方式一:
在这里插入图片描述
但这个处理方式一需要知道 x ∗ x^* x f ( x ) f(x) f(x)的m重根,实际上 x ∗ x^* x就是我们要求解的,因此根本不可能知道m。因此处理方式一一般用不了。

处理方式二:
在这里插入图片描述

5. 迭代加速收敛的方法

5.1 Aitken加速方法

如果一个序列 { x k } \{x_k\} {xk}线性收敛,那么可以通过Aitken加速方法,构造一个新的序列 { x ˉ k } \{\bar{x}_k\} {xˉk}使得它更加快地收敛。

构造方法如下:
在这里插入图片描述

值得注意的是,这个构造方法的前提是序列 { x k } \{x_k\} {xk}线性收敛,如果序列 { x k } \{x_k\} {xk}发散,那么加速方法不成立。并且这个加速方法只是说比序列 { x k } \{x_k\} {xk}收敛更快,但是不知道快多少,即有以下定理:

在这里插入图片描述

5.2 steffensen迭代方法

steffensen迭代方法可以看做是从Aitken加速方法演化而来的,根据不动点的迭代公式
x k + 1 = φ ( x k ) x_{k+1} = \varphi(x_k) xk+1=φ(xk)
可以把 x k + 2 x_{k+2} xk+2看做 φ ( φ ( x k ) ) \varphi(\varphi(x_k)) φ(φ(xk)),可以把 x k + 1 x_{k+1} xk+1看做 φ ( x k ) \varphi(x_k) φ(xk),因此根据上式(4.1),可以构造迭代函数 ψ ( x ) \psi(x) ψ(x)为:
在这里插入图片描述

关于steffensen迭代方法有如下定理:
在这里插入图片描述
注意,定理没要求 φ ( x ) \varphi(x) φ(x)收敛,只要 x ∗ x^* x φ ( x ) \varphi(x) φ(x)的不动点即可,因此如果 φ ( x ) \varphi(x) φ(x)不收敛,最后构造出来的 ψ ( x ) \psi(x) ψ(x)能让它收敛到 x ∗ x^* x

6. 非线性方程组的数值解法

对于一个一元方程 f ( x ) = 0 f(x)=0 f(x)=0,我们可知其Newton迭代法为:

在这里插入图片描述

进一步改写一下,即为:
在这里插入图片描述

那么,对于二元方程组:
在这里插入图片描述

Newton迭代法的公式为:
在这里插入图片描述

其中:

在这里插入图片描述

那么对于n个n元非线性方程组,解法也与上面类似,求出雅可比矩阵后还需要对雅可比矩阵求逆。

参考文献:
关治,陆金甫《数值方法》

  • 6
    点赞
  • 39
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值