?

基于中心差商的一類避免求導的非線性方程迭代算法

2024-04-18 09:43郭巧楊兵王偉昌

郭巧 楊兵 王偉昌

【摘? ?要】? ?非線性方程求解的迭代方法中比較經典的牛頓迭代法、改進牛頓法等,雖然能夠提高迭代效率,但因為需要對非線性方程求導并要求導數不能為零,使得其在實際應用中具有一定的局限性。文章基于開依沙爾·熱合曼等人提出的四階收斂迭代格式,利用中心差商近似代替一階導數,通過對加權因子進行賦值,得到一類避免求導的四階收斂的迭代算法。收斂性分析和數值實例證明該方法適用于大多數非線性方程的求根問題,在工程計算方面具有一定的實用價值。

【關鍵詞】? ?中心差商;非線性方程;避免求導;四階收斂

A Class of Iterative Algorithms for Nonlinear Equations Without Derivation Based on Central Difference

Guo Qiao1, Yang Bing1, Wang Weichang2

(1.Anhui Vocational and Technical College, Hefei 230611, China;

2.Anhui Gongbu Zhizao Industrial Technology Co., Ltd., Hefei 238000, China)

【Abstract】? ? The classical iterative methods for solving nonlinear equations, such as Newton′s iterative method and improved Newton′s method, can improve the efficiency of iteration but have limitations in practical applications because they require derivatives of nonlinear equations and the derivatives cannot be zero. Based on the fourth-order convergent iterative format proposed by Kaishal-Rehman et al, the article obtains a class of fourth-order convergent iterative algorithms that can avoid derivatives by using the central difference quotient approximation instead of the first-order derivatives and assigning weighting factors. convergence analysis and numerical examples demonstrates that the methods should be applied to most nonlinear equation in finding root problems, and that they have a certain practical value in engineering calculation.

【Key words】? ? ?central difference quotient; nonlinear equations; avoiding derivative; fourth-order convergence

〔中圖分類號〕? O241.3? ? ? ? ? ? ? ? ?〔文獻標識碼〕? A ? ? ? ? ? ? ?〔文章編號〕 1674 - 3229(2024)01- 0018 - 05

0? ? ?引言

非線性方程求根問題作為計算數學的一個重要分支,其廣泛應用于非線性軌跡優化、分數階時滯控制等各種工程計算領域,能夠有效實現路徑精準定位并控制指令滯后,在流體力學、半導體、現代光學、高層建筑、石油勘探、天氣預報等方面具有重要的應用價值和研究意義,比較經典的求非線性方程單根的方法為牛頓迭代[1]:

[xn+1=xn-f(xn)f'(xn),n=0,1,2…] (1)

在此基礎上,Traub引入算術平均牛頓法(AN)[2],收斂階數為三階,迭代算式為:

[yn=xn-f(xn)f′(xn),xn+1=xn-2f(xn)f′(xn)+f′(yn),n=0,1,2,…]? ? ? ? (2)

黃象鼎等提出調和平均牛頓法(HN)和中點牛頓法(MN)[3],收斂階數為三階,迭代算式為:

[yn=xn-f(xn)f′(xn),xn+1=xn-f(xn)(f′(xn)+f′(yn)2f′(xn)f′(yn),n=0,1,2,…] (3)

[yn=xn-f(xn)f′(xn),xn+1=xn-f(xn)f′(xn+yn2),n=0,1,2,…]? ? ? ? ? ? ? ? ?(4)

上述迭代算法及其變形雖然能夠提高迭代收斂階并減少計算量,但是卻無法避免求導。對于復雜的函數類型,利用現有的知識儲備往往難以求出其導數或者所求函數導數為零,這兩種情況限制了迭代算法適用的函數類型。文章基于導數的幾何意義,利用中心差商的方法,提出了一類避免求導的迭代算法,該算法適用于所有需要求導或者導數為零的迭代情況,能夠有效擴大迭代算法適用的函數范圍,收斂性分析和數值實例進一步驗證了該算法不僅收斂速度更快而且能夠有效避免重根附近發散,在非線性方程求根領域具有更廣泛的適用性和研究意義。

1? ? ?預備知識

定義1[4]? ? ?設非線性方程[f(x)=0]的解為[α],如果迭代序列[xn(n=1,2,3,…)]滿足[limn→∝xn=α],則迭代序列[xn(n=1,2,3,…)]收斂于[α]。

定義2[5]? ? 設非線性方程[f(x)=0]的精確解為[α],迭代序列為[xn(n=1,2,3,…)],記[en=xn-α]為迭代誤差,若存在常數C及[p],使得[en+1=Cepn+O(ep+1n),] 稱迭代序列為[p]階收斂。

定義3[6]? ? 設函數[y=f(x)]在點[x0]的某鄰域內有定義,若

[limΔx→0ΔyΔx=limΔx→0f(x+Δx)-f(x)Δx] 存在,則稱函數[y=f(x)]在點[x0]可導,此極限為[y=f(x)]在點[x0]的導數,記作:[f′(x0)]。

2? ? ?迭代算法

下面所寫的迭代算式中,統一記[n=0,1,2,3,…。]根據定義3,得到

[f′(xn)=limf(xn)→0f(xn+f(xn))-f(xn)f(xn)≈f(xn+f(xn))-f(xn)f(xn)]? ? ? ?(5)

[f′(xn)=limf(xn)→0f(xn)-f(xn-f(xn))f(xn)≈f(xn)-f(xn-f(xn))f(xn)]? ? ? ?(6)

公式(5)和公式(6)利用一階導數的中心差商計算,近似得

[f′(xn)≈f(xn+f(xn))-f(xn-f(xn))2f(xn)]? ? ? ? ? ? ? (7)

文獻[7]中的迭代算法為:

[xn+1=xn-ωf(xn)+f(x*n+1)f′(xn)-(1-ω)f(xn)+2f(x*n+1)f(xn)+f(x*n+1)f(xn)f′(xn)x*n+1=xn-f(xn)f′(xn)]? ? ? (8)

將公式(7)代入公式(8),得到如下迭代算式:

[xn+1=xn-ω2f2(xn)+2f(xn)f(x*n+1)f(xn+f(xn))-f(xn-f(xn))-(1-ω)f(xn)+2f(x*n+1)f(xn)+f(x*n+1)2f2(xn)f(xn+f(xn))-f(xn-f(xn))x*n+1=xn-2f2(xn)f(xn+f(xn))-f(xn-f(xn))]? ? (9)

公式(9)即為本文迭代算法。在權系數[ω=97]時,文獻[7]定義的迭代算式表示為:

[xn+1=xn-97f(xn)+f(x*n+1)f′(xn)+27f(xn)+2f(x*n+1)f(xn)+f(x*n+1)f(xn)f′(xn)x*n+1=xn-f(xn)f′(xn)]? ? ? ?(10)

公式(9)定義的迭代算式表示為:

[xn+1=xn-972f2(xn)+2f(xn)f(x*n+1)f(xn+f(xn))-f(xn-f(xn))+27f(xn)+2f(x*n+1)f(xn)+f(x*n+1)2f2(xn)f(xn+f(xn))-f(xn-f(xn))x*n+1=xn-2f2(xn)f(xn+f(xn))-f(xn-f(xn))]? ?(11)

3? ? ?收斂性分析

定理1? ?如果[α∈I]是函數[f:I?R→R]在開區間[I]上的一個單根,函數[f(x)]在[I]上連續可導(一階到四階導數都存在),在[α]的鄰域內給定初始值[x0],則公式(9)定義的迭代算法誤差方程表示為:

[en+1=(-7ωc22c21+9c22c21)e3n+1c31(33ω-42)c32+(10-13ω)c21c4+(10ω-3)c1c2c3+(4-ω)c31c2c3+(4-4ω)c41c4+(ω-1)c21c2c3+(4-4ω)c31c4+(5-5ω)c32c1e4n+O(e5n)]? (12)

其中[en=xn-α, ci=fi(α)i!,i≥1]。

證明:函數[f(x)]在[α]處進行Taylor展開,得

[f(xn)=c1en+c2e2n+c3e3n+c4e4n+O(e5n)]? ? ? ? ? ? ?(13)

于是

[2f2(xn)=2c21e2n+4c1c2e3n+(2c22+4c1c3)e4n+(4c1c4+4c2c3)e5n+O(e6n)]? ? ?(14)

[f(xn+f(xn))-f(xn-f(xn))=i=1∝ci[(en+f(xn))i-(en-f(xn))i]=2c21en+6c1c2e2n+(8c1c3+2c31c3+4c22)e3n+(10c1c4+10c2c3+6c21c2c3+8c31c4)e4n+O(e5n)] (15)

由公式(14)、公式(15)可知

[2f2(xn)f(xn+f(xn))-f(xn-f(xn))=en-c2c1e2n+2c22c21-2c3c1-c1c3e3n+-6c4c1+7c2c3c21+c2c3-4c1c4-4c32c31e4n+O(e5n)] (16)

將公式(16)代入(12)得

[x*n+1=α+c2c1e2n+2c3c1+c1c3-2c22c21e3n+6c4c1-7c2c3c21-c2c3+4c1c4+4c32c31e4n+O(e5n)]? ? ? ? ? ?(17)

[f(x*n+1)=c2e2n+2c3+c21c3-2c22c1e3n+6c4-7c2c3c1-c1c2c3+4c21c4+5c32c21e4n+O(e5n)]? ? ? ? ? ? (18)

由公式(13)、公式(18)可知

[2f(xn)f(x*n+1)=2c1c2e3n+2(c22+2c1c3+c31c3-2c22)e4n+(-8c2c3+6c32c1+12c1c4+8c31c4)e5n+O(e6n)]? ? ? ? ? ?(19)

由公式(14)、公式(19)有

[2f2(xn)+2f(xn)f(x*n+1)=2c21e2n+6c1c2e3n+(8c1c3+2c31c3)e4n+(-4c2c3+6c32c1+16c1c4+8c31c4)e5n+O(e6n)]? ? ?(20)

由公式(15)、公式(20)得

[2f2(xn)+2f(xn)f(x*n+1)f(xn+f(xn))-f(xn-f(xn))=en-2c22c21e3n+9c32c31+3c4c1-7c2c3c21-3c2c3e4n+O(e5n).]? ? ? ? ? ? ?(21)

由公式(13)、公式(14)、公式(18)得

[f(xn)+2f(x*n+1)=c1en+3c2e2n+5c3+2c21c3-4c22c1e3n+O(e4n)]? ? ? ?(22)

[(f(xn)+2f(x*n+1))?2f2(xn)=2c31e3n+10c21c2e4n+14c21c3-6c1c22+4c41c3e5n+4c21c4+36c1c2c3-10c32+8c31c2c3e6n+O(e7n)]? ?(23)

[f(xn)+f(x*n+1)=c1en+2c2e2n+3c3+c21c3-2c22c1e3n+7c4-7c2c3c1-c1c2c3+4c21c4+5c32c21e4n+O(e5n).]? ? ? (24)

由公式(15)、公式(24)得

[f(xn)+f(x*n+1)f(xn+f(xn))-f(xn-f(xn))=2c31e2n+10c21c2e3n+14c21c3+4c41c3+12c1c22e4n+24c21c4+30c1c2c3+16c31c2c3+8c41c4-4c32-2c21c2c3+8c31c4+10c32c1e5n+O(e6n)? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? (25)]

由公式(23)、公式(25)得

[f(xn)+2f(x*n+1)?2f2(xn)f(xn)+f(x*n+1)f(xn+f(xn))-f(xn-f(xn))=en-9c22c21e3n+1c3142c32-10c21c4+3c1c2c3-4c31c2c3-4c41c4+c21c2c3-4c31c4-5c32c1e4n+O(e5n)? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? (26)]? ? ? ? ?將公式(21)、公式(26)代入公式(9),于是得

[en+1=-7ωc22c21+9c22c21e3n+1c31(33ω-42)c32+(10-13ω)c21c4+(10ω-3)c1c2c3+(4-ω)c31c2c3+(4-4ω)c41c4+(ω-1)c21c2c3+(4-4ω)c31c4+(5-5ω)c32c1e4n+O(e5n)]

定理1得證。

當[ω=97]時,公式(9)定義的迭代算法誤差方程表示為

[en+1=3c327c31-47c47c1+69c2c37c21+197c2c3-8c1c47+2c2c37c1-8c47-10c327c41e4n+O(e5n)]

4? ? ?數值實例

例1? ?求方程[f(x)=x3-ex-3x+2=0]的根,取初始值[x0=10]。反復利用公式(2)、公式(3)、公式(4)、公式(10)和本文迭代算法(公式(11),令[xn-xn+1≤10-13]時迭代終止,在Python語言環境下,計算結果如表1所示。

通過例1,在函數類型、初始值、計算環境相同的情況下,公式(2)、公式(3)、公式(4)需要進行14次迭代(其中經歷3次發散)達到精度要求,公式(10)需要進行10次迭代(其中經歷2次發散)達到精度要求,但是本文迭代算法只需要進行5次迭代經歷0次發散就可以達到精度要求。由此證明本文迭代算法遠優于三階以及四階收斂速度的Newton迭代算法的變型形式,并且能夠有效控制重根附近發散,對于非線性方程求根中函數類型難以求導和導數不存在的情況都有較好的適用效果,在非線性軌跡優化、分數階時滯控制等工程計算領域具有重要的研究意義。

[參考文獻]

[1]? 管慧瑩. 求解非線性方程的兩種迭代算法[D].哈爾濱:哈爾濱理工大學,2020.

[2] Muhammed K S, Krishnendu R, Santhosh G, et al.Local Convergence of Traub′s Method and Its Extensions[J].Fractal and Fractional,2023,7(1):98.

[3]? 黃象鼎,曾鐘鋼,馬亞南.非線性數值分析的理論與方法[M].武漢:武漢大學出版社,2004.

[4] 范倩楠,王曉鋒.求解非線性方程的4階收斂的無導數迭代法[J].哈爾濱師范大學自然科學學報,2020,36(4):1-4.

[5] Vanhille Christian. A note on the convergence of the irrational Halleys iterative algorithm for solving nonlinear equations[J]. International Journal of Computer Mathematics,2020,97(9):235-246.

[6]? 譚俊鍵,楊敏.調和映射的Schwarz導數與對數導數的新定義及其范數[J].貴州師范大學學報(自然科學版),2022,40(3):13-17.

[7]? 開依沙爾·熱合曼,熱合買提江·依明江,買買提明·艾尼.求解非線性方程根四階收斂的迭代格式[J].數學的實踐與認識,2013,43(7):236-240.

91香蕉高清国产线观看免费-97夜夜澡人人爽人人喊a-99久久久无码国产精品9-国产亚洲日韩欧美综合