天天看點

牛頓疊代法

牛頓疊代法知識,以及求平方根的程式

1. 疊代公式建立

牛頓疊代法
牛頓疊代法
點的Taylor展開如下:
牛頓疊代法
一階泰勒多項式:
牛頓疊代法
牛頓疊代法
近似于
牛頓疊代法
解出x記為
牛頓疊代法
,則
牛頓疊代法
2. 牛頓疊代法的幾何解析
牛頓疊代法
處做曲線的切線,切線方程為:
牛頓疊代法
牛頓疊代法
得切線與x軸的交點坐标為
牛頓疊代法
,這就是牛頓疊代法的疊代公式。是以,牛頓法又稱“切線法”。
牛頓疊代法

Newton疊代法的特點是:

1. 對初值

牛頓疊代法
的選取要求較高。一般的,Newton疊代法隻有局部收斂性,當初值
牛頓疊代法
在收斂區間裡時,收斂速度很快(平方收斂)。但初值
牛頓疊代法
離方程根x*較遠時,不能保證Newton疊代法收斂。
牛頓疊代法
2. Newton疊代法求單根時,收斂速度很快(平方收斂)。但如果方程根
牛頓疊代法
是重根,則收斂速度較慢,且重數越高速度越慢。但當
牛頓疊代法
是m重根時,用下面的疊代格式:
牛頓疊代法

則至少能保持平方收斂。

3.應用:用有Newton疊代法求

牛頓疊代法
求解:設
牛頓疊代法
牛頓疊代法
牛頓疊代法
牛頓疊代法
程式實作:

#define ABS(VAL) (((VAL)>0)?(VAL):(-(VAL)))   
//用牛頓疊代法求浮點數的平方根   
double mysqrt(float x) {   
    double g0,g1;   
    if(x==0) 
        return 0;   
    g0=x/2;   //初值
    g1=(g0+x/g0)/2;   
    while(ABS(g1-g0)>0.01) //終止條件  
    {   
        g0=g1;   
        g1=(g0+(x/g0))/2;   //疊代規則
    }   
    return g1;   
}      

double sqr(double n) {
    double k=1.0;
    while(abs(k*k-n)>1e-9) {
        k=(k+n/k)/2;
    }
    return k;
}      

附加:

1. Newton下山法

由于當初值

牛頓疊代法

離方程根

牛頓疊代法

較遠時,不能保證Newton疊代法收斂,但一旦

牛頓疊代法

進入收斂區間,則收斂速度很快。為使

牛頓疊代法

盡快進入收斂區間,常采用Newton下山法:

牛頓疊代法
牛頓疊代法

稱為下山因子

具體做法如下:

1. 選取初值
牛頓疊代法
2. 取下山因子
牛頓疊代法

(可修改)

3. 計算

牛頓疊代法
4. 計算
牛頓疊代法
并比較
牛頓疊代法
牛頓疊代法

的大小:

牛頓疊代法
         1) 當
牛頓疊代法
時,取
牛頓疊代法

,結束;

         2) 當

牛頓疊代法
時,将
牛頓疊代法
作為新的
牛頓疊代法
值繼續計算;
牛頓疊代法
,則取
牛頓疊代法
,傳回3。

2. 弦截法(方程常用的求解方法)

将Newton切線法中的切線斜率

牛頓疊代法

用弦的斜率替換:

牛頓疊代法
牛頓疊代法
上一篇: URL解析

繼續閱讀