黃絲引,曾 光,張思平,余笑宇,雷 莉
(東華理工大學(xué)理學(xué)院,330013,南昌)
在工程與科學(xué)計(jì)算中會(huì)遇到大量的求解非線(xiàn)性方程的問(wèn)題,對(duì)于一般的代數(shù)方程,當(dāng)它的次數(shù)超過(guò)4次時(shí)無(wú)法用公式直接表示方程的根;對(duì)于更復(fù)雜的超越方程,解析法求方程的根有不少困難;因此研究數(shù)值方法計(jì)算非線(xiàn)性方程的根就顯得尤為重要。迭代法是數(shù)值求解非線(xiàn)性方程根的重要方法,但是使用迭代法的困難在于計(jì)算量難以估計(jì),有時(shí)迭代過(guò)程收斂,但收斂速度緩慢,此時(shí)迭代格式因?yàn)橛?jì)算量變得很大而失去實(shí)用價(jià)值。與簡(jiǎn)單迭代法相比,Newton迭代法的收斂速度更快,它具有局部平方收斂的性質(zhì)。因此得到了學(xué)者們的重視和廣泛應(yīng)用。
一直以來(lái)有很多學(xué)者提出了各種關(guān)于 Newton 迭代法的改進(jìn)。A Y ?zban[1]基于算術(shù)平均牛頓法,用調(diào)和平均數(shù)代替算術(shù)平均數(shù)而得到調(diào)和平均牛頓法,該方法的收斂階為三階;范倩楠和王曉峰[2]通過(guò)改造史蒂芬森迭代法,構(gòu)造了一種新的具有最優(yōu)階的無(wú)導(dǎo)數(shù)兩步迭代法,得到收斂階為四階的無(wú)需計(jì)算導(dǎo)數(shù)的迭代法;黃芳芳[3]等在經(jīng)典牛頓迭代法和弦截法的基礎(chǔ)上,構(gòu)造了3種新的迭代法,這3種迭代法在一定程度上加快了收斂速度;張輝[4]等根據(jù)四點(diǎn) Newton-Cotes求積公式提出了一種六階的牛頓迭代法;吳江[5]在算術(shù)平均牛頓法的基礎(chǔ)上提出了一種六階收斂的迭代格式;王堯和陳豫眉[6]在Ostrowski[7]四階收斂和Grau[8]的六階收斂以及三步迭代法的基礎(chǔ)上,構(gòu)造了一種新的求解非線(xiàn)性方程單根的三步六階迭代法;薛霜[9]在2013年基于2種三階牛頓變形方法的基礎(chǔ)上,通過(guò)線(xiàn)性插值和待定系數(shù)法得到了2種新的牛頓變形法,并且理論證明了這2種方法的收斂階都能達(dá)到五階。
本文以Newton迭代法為基礎(chǔ),結(jié)合兩步迭代格式,通過(guò)組合迭代,構(gòu)造收斂階更高的迭代法,以進(jìn)一步提高迭代法的計(jì)算效率。文章安排如下:第1節(jié)介紹迭代格式的具體形式;第2節(jié)給出收斂性的證明;第3節(jié)利用數(shù)值實(shí)驗(yàn)進(jìn)一步驗(yàn)證理論方法的有效性。
定義1[10]: 設(shè)迭代序列xk收斂于點(diǎn)x*,所以誤差為ek=xk-x*,若存在實(shí)數(shù)p≥1和非零常數(shù)C使得
此時(shí),迭代序列xk的收斂階是p,C為漸進(jìn)誤差系數(shù)。顯然,收斂階p越大收斂速度越快,當(dāng)p=1時(shí),迭代法稱(chēng)為線(xiàn)性收斂;當(dāng)p>1時(shí),迭代法稱(chēng)為超線(xiàn)性收斂;當(dāng)p=2時(shí),迭代法稱(chēng)為平方收斂。
定義2[11]:設(shè)迭代序列xk是p階收斂于點(diǎn)x*,每次迭代中所需計(jì)算的函數(shù)值的次數(shù)為k次,則稱(chēng)EI為迭代序列中的效率指數(shù),計(jì)算公式為
定義3[12]:設(shè)定義在開(kāi)區(qū)間D?R→R上的函數(shù)f(x)足夠光滑,a為方程f(x)=0的一個(gè)根,若滿(mǎn)足
其中c是非零正常數(shù),則稱(chēng)上式為誤差方程。
Newton迭代法是求解非線(xiàn)性方程的重要方法之一,其迭代格式為
(1)
王小瑞[13]等人提出一種收斂階為四階的兩步迭代,迭代格式為
(2)
為了提高迭代格式的收斂速度,同時(shí)又盡量減少迭代格式中對(duì)于函數(shù)值和導(dǎo)數(shù)值的求解,本文基于迭代格式(2)提出新的三步迭代格式,其構(gòu)造過(guò)程如下:
首先,式(2)中的第一式保持不變
(3)
再用zk替代式(2)的第2式中的xk+1,即得到與xk,yk有關(guān)的zk
(4)
最后,添加一步牛頓迭代即得到新的三步六階迭代格式
(5)
下面利用(xk,f′(xk)),(yk,f′(yk))對(duì)(f′(zk))進(jìn)行插值估計(jì)
(6)
由上式可知
(7)
將式(5)中間的式子代入式(7)中,化簡(jiǎn)得
(8)
將式(5)的第1式代入式(8)中,化簡(jiǎn)得
(9)
將式(9)代入式(5)的第3式中,化簡(jiǎn)得
(10)
于是得到新的迭代格式為:
(11)
定理1:設(shè)方程f(x)=0 的一個(gè)單根為a,函數(shù)f(x)在包含a的一個(gè)開(kāi)區(qū)間I中充分光滑,當(dāng)x0充分靠近a時(shí),則由式(11)所定義的迭代法在開(kāi)區(qū)間I中以六階收斂速度收斂于a,且其誤差方程為
證明:f(xk)在a處使用泰勒公式展開(kāi)
(12)
(13)
由式(12)和式(13)得到
(14)
所以
(15)
利用式(15),將f′(yk)在a處使用泰勒公式展開(kāi)
(16)
由式(13)和式(16)得到
(17)
(18)
(19)
利用式(19),將f(zk)和f′(zk)用泰勒公式在a處展開(kāi)
f(zk)=f′(a)[(zk-a)+c2(zk-a)2+o(zk-a)3]
(20)
故
(21)
故本文迭代格式的誤差估計(jì)為
(22)
將式(18)代入式(22)中,得到
(23)
為了驗(yàn)證本文的迭代格式的有效性,將其應(yīng)用于求解以下4個(gè)測(cè)試函數(shù)的零點(diǎn),并將本文新的迭代格式(簡(jiǎn)稱(chēng)H6方法)與牛頓迭代法(簡(jiǎn)稱(chēng)NM方法)進(jìn)行比較。文中的數(shù)值實(shí)驗(yàn)在 MATLAB R2017b中進(jìn)行,digits = 1 024, 測(cè)試函數(shù)為:
測(cè)試函數(shù)的零點(diǎn)(此處僅考慮一個(gè)零點(diǎn))分別為:
α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。
數(shù)值實(shí)驗(yàn)測(cè)試結(jié)果如下表所示,其中表1至表4分別是函數(shù)f1(x)至f4(x)用牛頓迭代法和本文的三步六階迭代法求解的數(shù)值實(shí)驗(yàn),x0表示迭代初值,k表示迭代步數(shù),|xk-xk-1|表示誤差,迭代終止的條件是|xk-xk-1|<10-14。
表1 NM方法與H6方法數(shù)值求解f1(x)的結(jié)果對(duì)比
表2 NM方法與H6方法數(shù)值求解f2(x)的結(jié)果對(duì)比
表3 NM方法與H6方法數(shù)值求解f3(x)的結(jié)果對(duì)比
表4 NM方法與H6方法數(shù)值求解f4(x)的結(jié)果對(duì)比
在表1中,在取3個(gè)不同的初始值時(shí),H6迭代法均快于經(jīng)典的牛頓迭代法,特別的,當(dāng)初始值分別取-0.5、-0.3時(shí),經(jīng)典牛頓迭代法的迭代步數(shù)分別是132步、54步。本文H6方法的迭代步數(shù)分別是是58步、13步,H6方法大大提高了迭代速度;從表2可以看出,當(dāng)取不同的迭代初始值時(shí),相對(duì)于經(jīng)典牛頓迭代法,H6方法都不同程度地減少了迭代的次數(shù);對(duì)于函數(shù)f3(x)=xex-1, 迭代初值取-0.1和-0.2時(shí),迭代法H6明顯優(yōu)于牛頓迭代法。同時(shí),通過(guò)數(shù)值實(shí)驗(yàn)表明,迭代法的收斂速度與選取的初始值有關(guān),不同的初始值在用相同迭代法計(jì)算時(shí),其迭代步數(shù)也不相同;一般初始值越接近零點(diǎn),迭代步數(shù)越少;但是在初始值相同的情況下,H6方法始終快于牛頓迭代法。