問題描述
求出任乙個非負實數的平方根
思路分析
平方根是乙個數學概念,要找到計算平方根的過程性描述(算 法),也需要通過數學領域的
知識。基本算術課程中介紹過如何求任一正實數的平方 根,但在那個方法裡需要做試除,不
太適合機械進行(可以實現,但比較麻煩)。而求平方根 的另一種演算法稱為牛頓迭代法,描
述如下:
0.對給定正實數x和允許誤差e,令變數y取任意正實數值,如令y=x
1.如果y x y與x足夠接近,即|_y x y—x|具體實現
函式def sqrt(x):
y = 1.0
while abs(y*y - x) > 1e-6:
y = (y + x/y)/2
return y
其中變數y的初值為1.0,允許誤差為10的-6次方
測試
def sqrt(x):
y = 1.0
while abs(y*y - x) > 1e-6:
y = (y + x/y)/2
return y
print(sqrt(2))
小結
筆記------裘宗燕著《資料結構與演算法》
牛頓法求平方根步驟
牛頓法步驟 1.以y x 2 x 2 函式為例,先任意選取一點a,在曲線上做a點的切線,交x軸與b點,在b做x軸的垂線,交曲線於c點。2.在曲線上做c點的切線,交x軸與d點,在d點做x軸的垂線,交曲線於e點。我們可以看到d點比b點更加接近方程 x 2 x 2 0的根 x 2 3.在曲線上做e點的切線...
牛頓迭代法求平方根
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 ...