Python3 23 求平方根 牛頓迭代法

2021-09-25 14:06:28 字數 661 閱讀 1993

問題描述

求出任乙個非負實數的平方根

思路分析

平方根是乙個數學概念,要找到計算平方根的過程性描述(算 法),也需要通過數學領域的

知識。基本算術課程中介紹過如何求任一正實數的平方 根,但在那個方法裡需要做試除,不

太適合機械進行(可以實現,但比較麻煩)。而求平方根 的另一種演算法稱為牛頓迭代法,描

述如下:

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 ...