布谷鸟牛顿迭代算法求解非线性方程组
Cuckoo Newton Iterative Algorithm for Solving Nonlinear Equations
DOI: 10.12677/AAM.2021.106207, PDF, HTML, XML,  被引量 下载: 284  浏览: 459  科研立项经费支持
作者: 刘雨鑫, 张运章*, 田卫东, 袁赛宇, 张馨予, 王禹兴:河南科技大学数学院统计学院,河南 洛阳
关键词: 非线性方程组牛顿迭代布谷鸟算法收敛阶Nonlinear System of Equations Newton Iteration Cuckoo Search Algorithm Convergence Order
摘要: 近年来,非线性方程组问题越来越多的出现在科学与工程计算领域中。例如机器学习、人工智能、金融计算、石油地质探测、卫星轨道预测等各个领域都涉及到了非线性方程组求解的问题,如何有效快速的求解各类非线性方程组问题受到人们的普遍关注。其中牛顿迭代是求解非线性方程(组)的一个重要方法。本文首先利用布谷鸟搜索算法得到初值,然后利用牛顿迭代法求解非线性方程组。理论分析了这些格式的收敛阶。最后给出一些数值算例对三种迭代格式进行了分析比较,验证了理论并分析了结论。
Abstract: In recent years, the problem of nonlinear equations appears more and more in the field of science and engineering calculation. Such as, machine learning, artificial intelligence, financial computing, petroleum geological exploration, satellite orbit prediction and other fields are involved in nonlinear equations. How to effectively and quickly solve various nonlinear equations has been widely concerned by many researchers. Newton’s method is an important method for solving nonlinear equations. The method in this paper is to use the variation of Newton’s method to improve the order of convergence, and combine with cuckoo algorithm to find a better initial point, so as to achieve the purpose of solving the nonlinear equations. Finally, some numerical examples are used to analyze and compare the different iterative schemes, and support the method.
文章引用:刘雨鑫, 张运章, 田卫东, 袁赛宇, 张馨予, 王禹兴. 布谷鸟牛顿迭代算法求解非线性方程组[J]. 应用数学进展, 2021, 10(6): 1973-1980. https://doi.org/10.12677/AAM.2021.106207

1. 引言

非线性方程组问题 [1],在机器学习、人工智能、金融计算、石油地质勘探、电力系统计算、卫星轨道预测等各个领域都有着非常广泛的应用。非线性方程组问题是非线性问题中经常出现的问题之一,其具体表现形式如下所示

{ φ 1 ( x ) = φ 1 ( x 1 , x 2 , , x m ) = 0 φ 2 ( x ) = φ 2 ( x 1 , x 2 , , x m ) = 0 φ m ( x ) = φ m ( x 1 , x 2 , , x m ) = 0

用向量形式表示为

φ ( x ) = 0 ,

其中 x = ( x 1 , x 2 , , x m ) T φ = ( φ 1 , φ 2 , , φ m ) T φ i : R m R i = 1 , 2 , , m

非线性方程组在科学与工程计算中处于非常重要的地位。如何有效地利用计算机求解各类非线性问题一直以来都是困扰人们的一个难题。对于大多数非线性方程组而言,我们只能得到解的存在性,而解的形式推导过程相当困难甚至无法得到。因此,非线性方程组的数值求解具有很重要的实际意义。

牛顿迭代法是求解非线性方程(组)的经典方法,其最突出的优点是当初始点充分靠近问题的解时能得到很好的收敛效果。但该方法需要好的初始点。近年来,有无数的科学工作者在研究求解非线性方程及方程组,为该领域提供了很多的算法,杨新社等 [2] 提出一种布谷鸟搜索算法,也叫杜鹃搜索。赵鹏军 [3] 将求解非线性方程组的问题转化为优化问题进行求解。 [4] 提出了3种两步三阶收敛精度的牛顿迭代的变形形式。S. Weerakoon和T. G. I. Fernando [5] 同样提出了一种两步三阶收敛精度的牛顿迭代格式。

本文把杨新社等 [2] 提出一种布谷鸟搜索算法与 [4] 提出的两步三阶收敛的变形牛顿迭代法相结合,求解非线性方程组的数值解。

2. 相关算法描述

2.1. 布谷鸟算法 [2] 描述

基于布谷鸟的行为习惯,模拟布谷鸟寻找宿主鸟巢下蛋的行为,对非线性方程组的解在合理范围[c, d]内进行搜索,做出以下三个理想假设:

1) 每一个布谷鸟一次只下一个蛋,并将其下到随机的一个宿主鸟巢内;

2) 好的宿主鸟巢孵出的高质量的蛋会持续到下一代;

3) 宿主鸟巢的数量是固定的,并且宿主有一定概率 p a 发现布谷鸟的蛋,此时宿主会选择将蛋舍弃或舍弃鸟巢并在一个新的地方建立一个新鸟巢。

在以上3个假设条件下,当第 i 代布谷鸟 x i ( t + 1 ) 寻找新宿主鸟巢时由模拟莱维飞行产生新的宿主鸟巢的位置:

x i ( t + 1 ) = x i ( t ) + α L ( λ ) (2.1)

此处 α > 0 ,用来对新的宿主鸟巢的位置范围进行控制, 表示点对点乘法,在大多数情况下, α 取1,其中莱维飞行 L ( λ ) 表示为:

L ( λ ) u = t λ , ( 1 < λ 3 ) (2.2)

新的位置确定后,判断宿主是否发现布谷鸟的鸟蛋,将随机数 r [ 0 , 1 ] p a 进行比较,若 r < p a 则在范围 [ c , d ] 内随机产生新的鸟巢位置,反之不变。经过多代延续,找到最具适应性的鸟巢位置,作为结果。

2.2. 布谷鸟算法求解非线性方程组 [3]

设有m个方程形成的非线性方程组有唯一解:

{ φ 1 ( x ) = φ 1 ( x 1 , x 2 , , x m ) = 0 φ 2 ( x ) = φ 2 ( x 1 , x 2 , , x m ) = 0 φ m ( x ) = φ n ( x 1 , x 2 , , x m ) = 0 (2.3)

由布谷鸟算法找到的近似解 x = ( x 1 , x 2 , , x m ) 带入

S u m = i = 1 m | φ i ( x ) | (2.4)

作为鸟巢优劣的判断标准,即解优劣的标准,Sum越小,鸟巢的位置越合适,近似解 x = ( x 1 , x 2 , , x m ) 就越合适。

2.3. 两步三阶精度牛顿迭代法 [4]

经典牛顿迭代法求解非线性方程组(2.3)的格式如下:给定初始值 x 0

x n + 1 = x n F ( x n ) 1 F ( x n ) , n = 0 , 1 , 2 , (2.5)

下面给出三种经典牛顿迭代法(2.5)的变形形式

两步算术平均牛顿迭代法(arithmetic mean Newton’ (AN) method)

给定初始值 x 0

{ z n + 1 = x n F ( x n ) 1 F ( x n ) , x n + 1 = x n ( F ( x n ) + F ( z n + 1 ) 2 ) 1 F ( x n ) , n = 0 , 1 , 2 (2.6)

该格式可以看成取 F ( x n ) F ( z n + 1 ) 的算术平均 F ( x n ) + F ( z n + 1 ) 2 ,代替经典牛顿迭代法(2.5)中的 F ( x n ) ,因此称该格式为算术平均迭代格式(AN)。

两步调和平均牛顿迭代法(harmonic mean Newton’s method (HN))

给定初始值 x 0

{ z n + 1 = x n F ( x n ) 1 F ( x n ) , x n + 1 = x n ( 2 F ( x n ) F ( z n + 1 ) ) 1 ( F ( x n ) + F ( z n + 1 ) ) F ( x n ) , n = 0 , 1 , 2 (2.7)

该格式可以看成取 F ( x n ) F ( z n + 1 ) 的调和平均 2 F ( x n ) F ( z n + 1 ) F ( x n ) + F ( z n + 1 ) ,代替经典牛顿迭代法(2.5)中的 F ( x n ) ,因此称该格式为调和平均牛顿迭代(HN)。

两步中点牛顿迭代法(midpoint Newton’s method) (MN)

给定初始值 x 0

{ z n + 1 = x n F ( x n ) 1 F ( x n ) , x n + 1 = x n ( F ( 1 2 ( x n + z n + 1 ) ) ) 1 F ( x n ) , n = 0 , 1 , 2 (2.8)

该格式可以看做用 x n z n + 1 的平均 x n + z n + 1 2 的导数值 F ( x n + z n + 1 2 ) 代替经典牛顿迭代法(2.5)中的 F ( x n ) ,因此称该格式为两步中点牛顿迭代法(MN)。

下面将布谷鸟搜索算法(2.1)~(2.2)分别与两步牛顿迭代法(2.6),(2.7),(2.8)结合起来。

2.4. 布谷鸟搜索两步牛顿迭代法

2.4.1. 首先估计解的大致范围

通过调整解可能存在的区间范围[c, d],改变布谷鸟算法的搜索范围,使布谷鸟算法可以更快搜索出一个误差较小的解,记录下此时的区间范围[c, d],以便多次实验。

2.4.2 应用布谷鸟搜索算法求出一组近似解

使用调整好的区间范围[c, d],以及步长参数 α 和鸟巢数量,然后对非线性方程组的解进行搜索,根据方程组的复杂程度和实际需求对迭代次数或精度阈值进行调整,最终求出一个精度较高的近似解 X 0 = ( x 1 , x 2 , x 3 , , x m )

2.4.3. 应用两步牛顿迭代法进行计算

将上面利用布谷鸟搜索算法得到的近似解 X 0 = ( x 1 , x 2 , x 3 , , x m ) 作为两步牛顿迭代法(2.6),(2.7),(2.8)的初值,然后分别用(2.6),(2.7),(2.8)进行计算。例如代入两步算术平均牛顿迭代法(2.6)

{ Z 1 = X 0 F ( X 0 ) 1 F ( X 0 ) X 1 = X 0 2 ( F ( X 0 ) + F ( Z 1 ) ) 1 F ( X 0 ) (2.9)

得到 X 1 = ( x 1 , x 2 , x 3 , , x m ) ,再将 X 1 看做 X 0 代入(2.9)式中,求出 X 2 = ( x 1 , x 2 , x 3 , , x m ) ,如此反复循环计算,最后得到精度较高的数值解 X n = ( x 1 , x 2 , x 3 , , x m ) 。其它两个牛顿迭代方法(2.7),(2.8)与之类似。

下面给出两步牛顿法(2.6),(2.7),(2.8)的收敛性分析。

3. 收敛性分析

定义3.1. [4] 如果一个序列 { x n | n > 0 } 收敛于 x 满足:

lim x x x n + 1 x ( x n x ) p = C (3.1)

其中 C 0 ,且 p 1 ,则该序列的为 p 阶收敛。设 e n = x n x ,则

e n + 1 = C e n p + O ( e n p + 1 ) (3.2)

称为该迭代法的误差计算公式, p 为迭代法的收敛阶。

定义3.2. [6] 设 x 为方程组 F ( x ) 的一组解, x n 2 x n 1 x n x n + 1 为收敛于 x 的四个相邻迭代近似值,则该方法的收敛阶 p 可通过下式近似计算得到:

p = ln ( x n + 1 x n / x n x n 1 ) ln ( x n x n 1 / x n 1 x n 2 ) (3.3)

定理3.1. 设函数 F ( x ) : D n n ,非线性方程组 F ( x ) 在邻域 D 上连续可微,且存在一组解 x D 使得 F ( x ) = 0 F ( x ) 的雅可比矩阵 F ( x ) D 上是连续且非奇异,且 F ( x ) x 的某局部邻域内具有连续的三阶导数,则两步牛顿迭代法(2.6)是三阶收敛的,且满足误差方程:

e k + 1 = e k ( C 2 2 + 1 2 C 3 ) e k 3 + O ( e k 4 ) (3.4)

其中 e k = x k x F ( x ) = 0 C k = k ! F ( x ) 1 F ( k ) ( x ) k = 2 , , n ( C 1 = F ( x ) )

证 分别对 F ( x k ) F ( x k ) x 处做Taylor级数展开:

F ( x k ) = F ( x ) + F ( x ) e k + 1 2 ! F ( x ) e k 2 + 1 3 ! F ( x ) e k 3 + O ( e k 4 ) = F ( x ) [ e k + C 2 e k 2 + C 3 e k 3 ] + O ( e k 4 ) , (3.5)

F ( x k ) = F ( x ) [ I + 2 C 2 e k + 3 C 3 e k 2 ] + O ( e k 3 ) (3.6)

由(3.5)和(3.6)可得

F ( x k ) 1 F ( x k ) = e k C 2 e k 2 + 2 ( C 2 2 C 3 ) e k 3 + O ( e k 4 ) (3.7)

则由(2.6)和(3.7)可得

z k + 1 = x + C 2 e k 2 + 2 ( C 2 2 C 3 ) e k 3 + O ( e k 4 ) (3.8)

F ( z k + 1 ) 在点 x * 运用Taylor公式展开,整理可得

F ( z k + 1 ) = F ( x ) [ I + 2 C 2 2 e k 2 + 4 ( C 2 C 3 C 2 3 ) e k 3 ] + O ( e k 4 ) (3.9)

由(3.5)和(3.9)可得

F ( x k ) + F ( z k + 1 ) = 2 F ( x ) ( I + C 2 e k + ( C 2 2 + 3 2 C 3 ) e k 2 + 2 ( C 2 C 3 C 2 3 + C 4 ) e k 3 ) + O ( e k 4 ) (3.10)

对于两步算术平均牛顿迭代法AN:由于

( 1 2 ( F ( x k ) + F ( z k + 1 ) ) ) 1 F ( x k ) = e k ( C 2 2 + 1 2 C 3 ) e k 3 + O ( e k 4 )

所以

x k + 1 = x k 2 F ( x k ) F ( x k ) + F ( z k + 1 ) = x k ( e k ( C 2 2 + 1 2 C 3 ) e k 3 + O ( e k 4 ) )

e k + 1 = e k ( C 2 2 + 1 2 C 3 ) e k 3 + O ( e k 4 )

于是两步算术平均牛顿迭代法(2.6)具有三阶收敛精度。

类似的,可证明两步调和平均牛顿迭代法(2.7)和两步中点牛顿迭代法(2.8)具有三阶收敛精度。

4. 数值实验

本节通过3个数值算例来验证两步算术平均牛顿迭代法(2.6),两步调和平均牛顿迭代法(2.7)和两步中点牛顿迭代法(2.8)的3阶收敛。设定实验初始解的存在区间均为[−10, 10],给出实验迭代的终止条件为:

1) 迭代次数最大为100次,即迭代次数 n < 100

2) 相邻两次迭代 x n + 1 x n 差的2范数小于 1 × 10 5 ,即 x n + 1 x n 2 < 1 × 10 5

若迭代达到最大迭代次数100,且最后一次迭代结果与近似解相差过多,则认为该算法不收敛。

例4.1. 求非线性方程组

{ 3 x 1 5 + x 1 7 + x 2 4 + 20 = 0 x 1 3 + 2 x 2 2 + 2 e x 2 40 = 0 (4.1)

的近似值。其中近似值[−1.664274278843389, 2.706644847598123]T看作准确值。

例4.2. 求非线性方程组

{ x 1 2 10 x 1 + x 2 2 + 8 = 0 x 1 x 2 2 + x 1 10 x 2 + 8 = 0 (4.2)

已知其精确解是[1, 1]T

例4.3. 求非线性方程组

{ x 2 x 3 + x 2 x 4 + x 3 x 4 = 0 x 1 x 3 + x 1 x 4 + x 3 x 4 = 0 x 1 x 2 + x 1 x 4 + x 2 x 4 = 0 x 1 x 2 + x 1 x 3 + x 2 x 3 1 = 0 (4.3)

[0.5773502691896, 0.57735026918962, 0.57735026918962, −0.2886751345948]T认为是该方程组的准确值。

表1表2是算例4.1,算例4.2,算例4.3的数值结果。表1的第2列 X 0 是通过布谷鸟搜索算法(2.1)~(2.2)求出的初值。第3列AN,HN,MN分别表示两步算术平均牛顿迭代法(2.6),两步调和平均牛顿迭代法(2.7)和两步中点牛顿迭代法(2.8)。第4列是达到给定误差精度所需要的迭代次数n,以及在给定的迭代终止条件下收敛阶的近似值p,其中NC表示不收敛。第6列 x n + 1 x n 2 表示迭代终止时最后两次迭代结果差的2范数。从表1可以看出,对于例4.1和例4.2,HN方法计算效果不好。

Table 1. Results of numerical experiment

表1. 数值实验结果

表2给出了三种迭代格式在相同初值,达到相同迭代终止条件,所需要的计算机运算时间。(注:表1表2中初值 X 0 不相同)。从表2可以看出,MN方法用时最少,而HN方法用时最多。

Table 2. Computing time

表2. 运算时间

通过表1表2可以看出,由布谷鸟搜索算法提供的值是可以作为牛顿迭代法初始值使用。通过对比这三个方法在求解非线性方程组的数值结果,我们发现两步中点牛顿迭代法(2.8)无论在精度上,还是运算时间上都比另两个方法具有一定的优势。

5. 小结

本文首先用布谷鸟搜索算法得到非线性方程组的一个值,该值作为牛顿迭代的初值,然后分别用算术平均牛顿迭代法,几何平均牛顿迭代法,中点牛顿迭代法,进行计算得到非线性方程组三阶精度的近似值。该方法避免了牛顿迭代初值选取的影响。通过3个数值例子对这三个格式,进行了精度和运行效率(电脑计算时间)的比较。对这三个方法更详细的理论分析和数值比较是下一步的工作。

基金项目

河南省高等学校重点科研项目:21B110003;河南科技大学实验技术开发基金项目:SY2021033;河南科技大学大学生研究训练计划(SRTP):2020175;河南省自然科学基金面上项目:202300410156。

参考文献

NOTES

*通讯作者。

参考文献

[1] 武松. 非线性方程组的几类算法研究[D]: [硕士学位论文]. 徐州: 中国矿业大学, 2020.
[2] Yang, X.-H. and Deb, S. (2010) Engineering Optimisation by Cuckoo Search. International Journal of Mathematical Modelling and Numerical Optimisation, 1, 330-343.
https://doi.org/10.1504/IJMMNO.2010.035430
[3] 赵鹏军. 求解非线性方程组的智能新方法[J]. 商洛学院学报, 2012, 26(4): 18-20.
[4] Özban, A.Y. (2004) Some New Variants of Newton’s Method. Applied Mathematics Letters, 17, 677-682.
https://doi.org/10.1016/S0893-9659(04)90104-8
[5] Weerakoon, S. and Fernando, T.G.I. (2000) A Variant of Newton’s Method with Accelerated Third-Order Convergence. Applied Mathematics Letters, 13, 87-93.
https://doi.org/10.1016/S0893-9659(00)00100-2
[6] 张旭, 檀结庆, 艾列富. 一种求解非线性方程组的3p阶迭代方法[J]. 计算数学, 2017, 39(1): 14-22.