歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux編程 >> Linux編程 >> 求平方根的巴比倫方法和牛頓迭代法

求平方根的巴比倫方法和牛頓迭代法

日期:2017/3/1 9:11:07   编辑:Linux編程

今天在Python書上無意看到了巴比倫求平方根的算法,感覺很是有趣,就寫下來和大家分享一下。

巴比倫求平方根的算法實際上很簡單:(假設要求一個數N的平方根) (1)預測一個平方根x,初始另一個值y,且x*y=N (2)求預測值與初始值的均值:x=x=(x+y)/2 (3)比較x和y的差值是否達到精度,如果無,繼續步驟(2) 實際上,書上說的更簡單,也模糊一些,這裡我就加一些個人理解。但這裡的問題在於我們的第一個預測值的選取,如果選取得太離譜,效率就會很低,這裡我們舉一個例子: N=60,x=60,y=1,精度取位0.0001
這裡我們可以發現程序的效率很低,當我們選取x=30,y=2時,結果如下:

可見,預測值的選取很重要,那該如何選取這個值呢,這就要用到我們的快速平方根法,這種方法許多人都寫過博客,我就發一個鏈接吧,裡面的程序非常有意思,只要迭代一次就可以得到比較好的開方效果,其中涉及到的牛頓迭代我也發一個鏈接供大家參考: (1)快速平方根法

Copyright © Linux教程網 All Rights Reserved