摘要:本文基于計算機MATLAB和C語言編程去分析兩者的計算復雜性,并深入探討了兩種方法的優缺點。最后,通過將兩種方法結合起來解決非線性方程的求解問題,取得了顯著地效果。同時,這也再次證明了方法組合解決問題的高效性。
關鍵詞:二分法;牛頓迭代法;非線性方程
中圖分類號:O242 文獻標志碼:B 文章編號:1674-9324(2013)25-0139-01
求解方程的近似根,一般需要解決兩個問題:
1.根的隔離。即找出有根區域,使得在一些小區間中方程只有一根(或一對共軛復根)以便獲取各根的較粗糙的近似值。
2.近似根的精確化。即用求根的數值方法,使求得的近似根逐步精確化,直到獲得一定精度的近似根。
一、二分法和牛頓迭代法的基本思想
1.二分法。一般地,對于函數f(x),如果存在實數c,當x=c時,若f(c)=0,那么把x=c叫做函數f(x)的零點。解方程即要求f(x)的所有零點。假定f(x)在區間(x,y)上連續,先找到a、b屬于區間(x,y),使f(a),f(b)異號,說明在區間(a,b)內一定有零點,然后求[f(a+b)/2],現在假設f(a)<0,f(b)>0,a=a,從①開始繼續使用中點函數值判斷。如果[f(a+b)/2]>0,則在區間(a,(a+b)/2)內有零點,注:(a+b)/2<=b,從①開始繼續使用中點函數值判斷。這樣就可以不斷接近零點。通過每次把f(x)的零點所在小區間收縮一半的方法,使區間的兩個端點逐步迫近函數的零點,以求得零點的近似值,這種方法叫做二分法。從以上可以看出,每次運算后,區間長度減少一半,是線形收斂。另外,二分法不能計算復根和重根。
2.牛頓迭代法。設r是f(x)=0的根,選取x0作為r初始近似值,過點(x0,f(x0))做曲線y=f(x)的切線L,L的方程為y=f(x0)+f'(x0)(x-x0),求出L與x軸交點的橫坐標x1=x0-f(x0)/f'(x0),稱x1為r的一次近似值。過點(x1,f(x1))作曲線y=f(x)的切線,并求該切線與x軸交點的橫坐標x2=x1-f(x1)/f'(x1),稱x2為r的二次近似值。重復以上過程,得r的近似值序列,其中x(n+1)=x(n)-f(x(n))/f'(x(n)),稱為r的n+1次近似值,上式稱為牛頓迭代公式。解非線性方程f(x)=0的牛頓法是把非線性方程線性化的一種近似方法。把f(x)在x0點附近展開成泰勒級數f(x)=f(x0)+(x-x0)f'(x0)+(x-x0)^2*f''(x0)/2!+…取其線性部分,作為非線性方程f(x)=0的近似方程,即泰勒展開的前兩項,則有f(x0)+f'(x0)(x-x0)=0設f'(x0)≠0則其解為x1=x0-f(x0)/f'(x0)這樣,得到牛頓法的一個迭代序列:x(n+1)=x(n)-f(x(n))/f'(x(n)),記為:{x(n)}。此時,當n趨于無窮大時,x(n)就會逐漸逼近f(x)=0的根。
二、例證分析
1.對此非線性方程x3-50x2-6610=0在單獨用二分法和牛頓迭代法時的效果都不顯著。
實驗的結果分析:
由此可見,牛頓迭代法是一種特殊的迭代法,用于求非線性方程單根時具有二階收斂速度。但是,牛頓法也有自己的缺點。如對初值要求苛刻,而且還要求函數的導數。
綜上所述,顯然,通過將兩種方法結合起來解決非線性方程的求解問題,取得了顯著地效果。迭代次數大大減少,極大降低了計算的復雜性,收到了很好的效果。
如何針對不同的方程構造不同的迭代公式,如何降低對初值的依賴性和提高收斂的速度,都是非線性方程求根問題中經??紤]的問題。本文通過對比兩種算法的優劣,得出了牛頓迭代法和二分法各自的特點,并把兩種方法結合起來,先通過二分法找到合適的初始值,然后再用牛頓法進行迭代運算,大大節約了時間,降低了計算復雜性。這也證實了把各種方法的長處結合起來,來解決問題往往收到不錯的結果。
作者簡介:張曉勇(1987-),男,河南民權人,在讀研究生,研究方向:計算數學中的系統建模與仿真。