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