利用牛頓迭代公式開方

牛頓迭代公式

牛頓迭代法(Newton's method)又稱爲牛頓-拉夫遜(拉弗森)方法(Newton-Raphson method),它是牛頓在17世紀提出的一種在實數域和複數域上近似求解方程的方法。

 

 加入 f(x)=0 的根爲 r , 假設 \LARGE {\color{Red} }x_{0} 是 的近似根,過(\LARGE ^{x_{0}},f(\LARGE ^{x_{0}}))做切線,與x軸交於(\LARGE x_{1},0),則\LARGE x_{1}是比\LARGE x_{0}更接近r的近似值,

\LARGE \frac{f(x_0)}{x_0-x_1}=f^{`}(x_0)  換項爲,以此類推。。。

 

 爲r的n+1近似值。

用牛頓迭代公式開平法

\LARGE X_{n+1}=X_n-\frac{x_n^{2}-n}{2X_n}\rightarrow X_{n+1}=\frac{x_n^{2}+n}{2x_n}

public static double sqrt(int n){
    if(n < 0){
        return Double.NaN;
    }
    
    double err=1e-15;
    double t=n;
    //假設 t就是n的開平方,則t-n/t就是計算的誤差,這個誤差再除以t就是計算的誤差百分比,
    //這個誤差開始可能大於所要求的的精度,一旦小於所要求的的精度,t就是所求。
    while(Math.abs(t-n/t)> err*t){
        t=(t*t+n)/(2*t)
    }
    return t;
}

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章