吳江
摘要:Newton迭代法和弦截法是對非線性方程求根問題的常用方法。Newton迭代法需要計算一階導數(shù)值,具有二階收斂速度。弦截法只需要計算函數(shù)值,但它的收斂速度沒有Newton迭代法快。本文將給出一個不需要計算導數(shù)值且具有二階收斂速度的迭代法(新迭代法),并用數(shù)值實驗來驗證其有效性。
關鍵詞:迭代法;非線性方程;收斂速度
0引言
Newton迭代法具有二階收斂速度.具有收斂速度快且形式簡單等特點,具體有關Newton迭代法的內容可以參考文獻。Helley迭代和Chebyshev迭代具有三階收斂速度.并且它們只需要計算一階導數(shù)值。而弦截法可以避免計算一階導數(shù)值,而它是超線性收斂的,所以它的收斂速度沒有Newton迭代法快。具體有關弦截法的內容可以參考文獻。文獻考慮到牛頓迭代法需要計算函數(shù)的導數(shù)值,而有些函數(shù)的導數(shù)值計算復雜,于是提出了一種可以避免計算導數(shù)值并且具有二階收斂速度的迭代算法。本文從牛頓迭代法和文獻的迭代算法出發(fā),構造一個簡單的迭代公式,該迭代法不必計算一階導數(shù)值,且與Newton迭代法一樣可以達到二階的收斂速度。
1新迭代法及證明
Newton迭代法是求解非線性方程最為經典的迭代法,許多專家和學者在構造新的迭代法時,都會以Newton迭代法為基礎。本文構造新的迭代法的依據(jù)是將Newton迭代法中用到的導數(shù)值用函數(shù)值的差商來替換,從而得到新的迭代法。Newton迭代公式為
從牛頓迭代公式可以看到.在迭代過程中.每一步迭代都需要計算函數(shù)值f(x)和導數(shù)值f(x),所以如果f(x)本身是較為復雜的函數(shù),那么計算f(x)的計算也會相當復雜。于是文獻為了避免計算函數(shù)的導數(shù)值,提出了下面的迭代公式。
文獻迭代公式為其中A,B為任意實數(shù)。從該迭代公式可以看出,它在迭代過程中不涉及到f(x)的導數(shù)值,而該迭代法在實際的使用中,需要確定A,B的值,而文獻[5]在最后說明當A取1,B取0時計算效果較好。
考慮到文獻[5]迭代公式有待定參數(shù),并且沒有一種方法可以確定最佳參數(shù)值,所以本考慮用不帶參數(shù)的來代替Newton迭代公式中的f(x)。這樣可以得到下面新的迭代公式。
本文新的迭代公式為
在迭代公式(1)中,只需要計算函數(shù)值,不需要計算導數(shù)值。
定理1方程f(x)=0的根為xo,函數(shù)f(x)在包含‰的某個開區(qū)間內有連續(xù)的二階導數(shù),且廣(x)=0,則迭代公式(1)在此開區(qū)間至少以二階收斂速度收斂于xo。
證明設迭代誤差en=xn-xo.用泰勒公式將f(xn)在xo處展開,并且注意到.f(xo)=0,得
2數(shù)值實驗
下面將給出兩個非線性方程求根的數(shù)值實驗,來驗證新的迭代法的有效性。首先大致確定非線性方程實數(shù)根所在的區(qū)間范圍.然后在這個已確定的區(qū)間中,任取一個值作為迭代的初始值。輸出的控制條件設定為[Xk-k-1]≤0(10-15)。
例1
求方程f(x)=e3-1=0在區(qū)間[-1,1]上的根(精確根xo=0)。例1的數(shù)值實驗結果如表1所示。
例2求方程g(x)=x-e2=0在區(qū)間[0,1]上的根(精確根xo=0.56714329…)。例2的數(shù)值實驗結果如表2所示。
運用新的迭代法,即式(1)迭代來求解非線性方程的根具有收斂速度快的特點。在例1中新的迭代法只需要5次迭代就達到了所要求的精度:例2中只需6次迭代就達到了所要求的精度。所以可以看出,新的迭代法快速穩(wěn)定地收斂到非線性方程的實數(shù)根.且在迭代過程中只需要計算函數(shù)值,不需要計算導數(shù)值,從上面兩個數(shù)值試驗結果可以看出新的代法是非常有效的。
3結束語
本文新的迭代法具有簡單有效的特點.從式(1)可以看出新的迭代法的迭代公式簡潔明了,而且沒有待定參數(shù).所以在使用時不需要考慮參數(shù)的選擇。另一方面,它具有和牛頓迭代法一樣的二階收斂速度.而且無需考慮導數(shù)值的計算.這就說明本文迭代法在計算復雜函數(shù)的根時.要明顯優(yōu)于牛頓迭代法。與此同時,迭代公式簡單且無需計算導數(shù)也大大提高了計算機的使用效率,降低了編程的復雜度,體現(xiàn)出快速、有效、使用方便的特點。