解非线性方程的一种新的三步六阶迭代格式

2022-03-07 03:55黄丝引张思平余笑宇
江西科学 2022年1期
关键词:迭代法将式步数

黄丝引,曾 光,张思平,余笑宇,雷 莉

(东华理工大学理学院,330013,南昌)

0 引言

在工程与科学计算中会遇到大量的求解非线性方程的问题,对于一般的代数方程,当它的次数超过4次时无法用公式直接表示方程的根;对于更复杂的超越方程,解析法求方程的根有不少困难;因此研究数值方法计算非线性方程的根就显得尤为重要。迭代法是数值求解非线性方程根的重要方法,但是使用迭代法的困难在于计算量难以估计,有时迭代过程收敛,但收敛速度缓慢,此时迭代格式因为计算量变得很大而失去实用价值。与简单迭代法相比,Newton迭代法的收敛速度更快,它具有局部平方收敛的性质。因此得到了学者们的重视和广泛应用。

一直以来有很多学者提出了各种关于 Newton 迭代法的改进。A Y Özban[1]基于算术平均牛顿法,用调和平均数代替算术平均数而得到调和平均牛顿法,该方法的收敛阶为三阶;范倩楠和王晓峰[2]通过改造史蒂芬森迭代法,构造了一种新的具有最优阶的无导数两步迭代法,得到收敛阶为四阶的无需计算导数的迭代法;黄芳芳[3]等在经典牛顿迭代法和弦截法的基础上,构造了3种新的迭代法,这3种迭代法在一定程度上加快了收敛速度;张辉[4]等根据四点 Newton-Cotes求积公式提出了一种六阶的牛顿迭代法;吴江[5]在算术平均牛顿法的基础上提出了一种六阶收敛的迭代格式;王尧和陈豫眉[6]在Ostrowski[7]四阶收敛和Grau[8]的六阶收敛以及三步迭代法的基础上,构造了一种新的求解非线性方程单根的三步六阶迭代法;薛霜[9]在2013年基于2种三阶牛顿变形方法的基础上,通过线性插值和待定系数法得到了2种新的牛顿变形法,并且理论证明了这2种方法的收敛阶都能达到五阶。

本文以Newton迭代法为基础,结合两步迭代格式,通过组合迭代,构造收敛阶更高的迭代法,以进一步提高迭代法的计算效率。文章安排如下:第1节介绍迭代格式的具体形式;第2节给出收敛性的证明;第3节利用数值实验进一步验证理论方法的有效性。

1 新迭代格式的构造

定义1[10]: 设迭代序列xk收敛于点x*,所以误差为ek=xk-x*,若存在实数p≥1和非零常数C使得

此时,迭代序列xk的收敛阶是p,C为渐进误差系数。显然,收敛阶p越大收敛速度越快,当p=1时,迭代法称为线性收敛;当p>1时,迭代法称为超线性收敛;当p=2时,迭代法称为平方收敛。

定义2[11]:设迭代序列xk是p阶收敛于点x*,每次迭代中所需计算的函数值的次数为k次,则称EI为迭代序列中的效率指数,计算公式为

定义3[12]:设定义在开区间D⊂R→R上的函数f(x)足够光滑,a为方程f(x)=0的一个根,若满足

其中c是非零正常数,则称上式为误差方程。

Newton迭代法是求解非线性方程的重要方法之一,其迭代格式为

(1)

王小瑞[13]等人提出一种收敛阶为四阶的两步迭代,迭代格式为

(2)

为了提高迭代格式的收敛速度,同时又尽量减少迭代格式中对于函数值和导数值的求解,本文基于迭代格式(2)提出新的三步迭代格式,其构造过程如下:

首先,式(2)中的第一式保持不变

(3)

再用zk替代式(2)的第2式中的xk+1,即得到与xk,yk有关的zk

(4)

最后,添加一步牛顿迭代即得到新的三步六阶迭代格式

(5)

下面利用(xk,f′(xk)),(yk,f′(yk))对(f′(zk))进行插值估计

(6)

由上式可知

(7)

将式(5)中间的式子代入式(7)中,化简得

(8)

将式(5)的第1式代入式(8)中,化简得

(9)

将式(9)代入式(5)的第3式中,化简得

(10)

于是得到新的迭代格式为:

(11)

2 收敛性分析

定理1:设方程f(x)=0 的一个单根为a,函数f(x)在包含a的一个开区间I中充分光滑,当x0充分靠近a时,则由式(11)所定义的迭代法在开区间I中以六阶收敛速度收敛于a,且其误差方程为

证明:f(xk)在a处使用泰勒公式展开

(12)

(13)

由式(12)和式(13)得到

(14)

所以

(15)

利用式(15),将f′(yk)在a处使用泰勒公式展开

(16)

由式(13)和式(16)得到

(17)

(18)

(19)

利用式(19),将f(zk)和f′(zk)用泰勒公式在a处展开

f(zk)=f′(a)[(zk-a)+c2(zk-a)2+o(zk-a)3]

(20)

(21)

故本文迭代格式的误差估计为

(22)

将式(18)代入式(22)中,得到

(23)

3 数值实验

为了验证本文的迭代格式的有效性,将其应用于求解以下4个测试函数的零点,并将本文新的迭代格式(简称H6方法)与牛顿迭代法(简称NM方法)进行比较。文中的数值实验在 MATLAB R2017b中进行,digits = 1 024, 测试函数为:

测试函数的零点(此处仅考虑一个零点)分别为:

α1=1.365 230 013 414 10;

α2=0.739 085 133 215 16;

α3=0.567 143 290 409 78;

α4=2.174 952 447 083 43。

数值实验测试结果如下表所示,其中表1至表4分别是函数f1(x)至f4(x)用牛顿迭代法和本文的三步六阶迭代法求解的数值实验,x0表示迭代初值,k表示迭代步数,|xk-xk-1|表示误差,迭代终止的条件是|xk-xk-1|<10-14。

表1 NM方法与H6方法数值求解f1(x)的结果对比

表2 NM方法与H6方法数值求解f2(x)的结果对比

表3 NM方法与H6方法数值求解f3(x)的结果对比

表4 NM方法与H6方法数值求解f4(x)的结果对比

在表1中,在取3个不同的初始值时,H6迭代法均快于经典的牛顿迭代法,特别的,当初始值分别取-0.5、-0.3时,经典牛顿迭代法的迭代步数分别是132步、54步。本文H6方法的迭代步数分别是是58步、13步,H6方法大大提高了迭代速度;从表2可以看出,当取不同的迭代初始值时,相对于经典牛顿迭代法,H6方法都不同程度地减少了迭代的次数;对于函数f3(x)=xex-1, 迭代初值取-0.1和-0.2时,迭代法H6明显优于牛顿迭代法。同时,通过数值实验表明,迭代法的收敛速度与选取的初始值有关,不同的初始值在用相同迭代法计算时,其迭代步数也不相同;一般初始值越接近零点,迭代步数越少;但是在初始值相同的情况下,H6方法始终快于牛顿迭代法。

猜你喜欢
迭代法将式步数
求解大型广义绝对值方程的Picard-SS迭代法
迭代法求解一类函数方程的再研究
AKNS方程的三线性型及周期孤立波解
修正Jaulent-Miodek方程组的G′/G展开和精确解
楚国的探索之旅
因子von Neumann代数上非线性*-Lie导子的刻画
求解复对称线性系统的CRI变型迭代法
单自由度系统
微信运动步数识人指南
国人运动偏爱健走