码迷,mamicode.com
首页 > 其他好文 > 详细

X的平方根

时间:2015-06-15 16:31:05      阅读:161      评论:0      收藏:0      [点我收藏+]

标签:平方根   python   牛顿法   二分法   

方法一:二分查找

x = 24
epsilon = 0.01
numGuesses = 0
low = 0.0
high = max(1.0,x)
ans = (high + low)/2.0
while abs(ans*ans - x)>=epsilon:
    print 'low:',low,'high:',high,'ans =',ans
    numGuesses += 1
    if ans**2 <x:
        low = ans
    else:
        high = ans
    ans = (high + low)/2.0
print 'numGuesses =',numGuesses
print ans, 'is close to square root of',x


low: 0.0 high: 24 ans = 12.0
low: 0.0 high: 12.0 ans = 6.0
low: 0.0 high: 6.0 ans = 3.0
low: 3.0 high: 6.0 ans = 4.5
low: 4.5 high: 6.0 ans = 5.25
low: 4.5 high: 5.25 ans = 4.875
low: 4.875 high: 5.25 ans = 5.0625
low: 4.875 high: 5.0625 ans = 4.96875
low: 4.875 high: 4.96875 ans = 4.921875
numGuesses = 9
4.8984375 is close to square root of 24


方法二:艾萨克牛顿法

epsilon = 0.01
k = 24.0
guess = k/2.0
numGuesses = 0
while abs(guess*guess - k)>=epsilon:
    guess = guess - ((guess**2 -k)/(2*guess))
    numGuesses += 1
print 'numGuess =', numGuesses
print 'Square root of', k, 'is about', guess

numGuess = 4
Square root of 24.0 is about 4.89898874321


X的平方根

标签:平方根   python   牛顿法   二分法   

原文地址:http://blog.csdn.net/lionpku/article/details/46504149

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!