牛頓迭代法求n方根

2021-09-07 22:16:13 字數 778 閱讀 6166

借助上述公式,理論上可以求任意次方根,假設要求a(假設非負)的n次方根,則有xn=a,令f(x)=xn-a,則只需求f(x)=0時x的值即可。由上述簡單推導知,當f(x)=0時,xn+1=xn,因此把f(x)=xn-a 代入上述迭代式進行迭代直至xn+1=xn即可。

實際中xn+1=xn可能永遠達不到,可以根據給定精度△,當|xn+1-xn|

下面以算術平方根和立方根舉例。

設待求算術平方根的數為a,其算術平方根為x,則x2=a,令f(x)=x2-a,代入上面的遞推式有xn+1=xn-(xn

2-a)/(2xn),整理得xn+1=(1/2)(xn+a/xn)

**如下:

double sqrt(double

a)

return

x2;}

同理,令f(x)=x3-a,代入遞推式有xn+1=xn-(xn

3-a)/(3xn

2),整理得xn+1=(1/3)(2xn+a/xn

2)**如下:

double cubrt(double

a)

return

x2;}

順便提下,在網上看到了乙個手動列算式求解任意正整數算術平方根的方法,如下:

牛頓迭代法求n方根

借助上述公式,理論上可以求任意次方根,假設要求a 假設非負 的n次方根,則有xn a,令f x xn a,則只需求f x 0時x的值即可。由上述簡單推導知,當f x 0時,xn 1 xn,因此把f x xn a 代入上述迭代式進行迭代直至xn 1 xn即可。實際中xn 1 xn可能永遠達不到,可以根...

牛頓迭代法求平方根

sqrt 方法 public static double sqrt double c 什麼是牛頓迭代法 多數方程不存在求根公式,牛頓提出了一種用迭代來求方程近似根的方法。思路就是不斷取切線,用線性方程的根逼近非線性方程f x 0的根x 過程簡介 過點 xk,f xk 作函式的切線,切線方程是 切線與...

牛頓迭代法 求平方根

牛頓迭代法 求出根號a的近似值 首先隨便猜乙個近似值x,然後不斷令x等於x和a x的平均數,迭代個六七次後x的值就已經相當精確了。例如,我想求根號2等於多少。假如我猜測的結果為4,雖然錯的離譜,但你可以看到使用牛頓迭代法後這個值很快就趨近於根號2了 這種演算法的原理很簡單,我們僅僅是不斷用 x,f ...