在Python中用二分怎么实现求平方根
Admin 2022-07-15 群英技术资讯 698 次浏览
关于“在Python中用二分怎么实现求平方根”的知识有一些人不是很理解,对此小编给大家总结了相关内容,具有一定的参考借鉴价值,而且易于学习与理解,希望能对大家有所帮助,有这个方面学习需要的朋友就继续往下看吧。使用二分法(Bisection Method)求平方根。
def sqrtBI(x, epsilon):
assert x>0, 'X must be non-nagtive, not ' + str(x)
assert epsilon > 0, 'epsilon must be postive, not ' + str(epsilon)
low = 0
high = x
guess = (low + high)/2.0
counter = 1
while (abs(guess ** 2 - x) > epsilon) and (counter <= 100):
if guess ** 2 < x:
low = guess
else :
high = guess
guess = (low + high)/2.0
counter += 1
return guess
验证一下。
>>> sqrtBI(2,0.000001)
>>> 1.41421365738
上面的方法,如果 X<1 ,就会有问题。因为 X (X<1)的平方根不在 [0, x] 的范围内。例如,0.25,它的平方根——0.5 不在 [0, 0.25] 的区间内。
>>> sqrtBI(0.25,0.000001)
>>> 0.25
那如何求0.25的平方根呢?
只要略微改动上面的代码即可。注意6行和7行的代码。
def sqrtBI(x, epsilon):
assert x>0, 'X must be non-nagtive, not ' + str(x)
assert epsilon > 0, 'epsilon must be postive, not ' + str(epsilon)
low = 0
high = max(x, 1.0)
## high = x
guess = (low + high)/2.0
counter = 1
while (abs(guess ** 2 - x) > epsilon) and (counter <= 100):
if guess ** 2 < x:
low = guess
else :
high = guess
guess = (low + high)/2.0
counter += 1
return guess
验证一下:
>>> sqrtBI(0.25,0.000001)
>>> 0.5
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:mmqy2019@163.com进行举报,并提供相关证据,查实之后,将立刻删除涉嫌侵权内容。
猜你喜欢
Radiobutton组件用于实现多选一的问题,本文主要介绍了Tkinter组件实现Radiobutton的示例,文中通过示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
这篇文章主要介绍了Python常见异常处理总结,文章围绕主题展开详细的内容介绍,具有一定的参考价值,需要的朋友可以参考一下
这篇文章主要介绍了Python可视化神器pyecharts绘制折线图详情,折线图和柱状图一样是我们日常可视化最多的一个图例,当然它的优势和适用场景相信大家肯定不陌生,要想快速的得出趋势,抓住趋势二字,就会很快的想到要用折线图来表示了
Python模块化编程有何好处,有哪些知识?有不少朋友对此感兴趣,下面小编给大家整理和分享了相关知识和资料,易于大家学习和理解,有需要的朋友可以借鉴参考,下面我们一起来了解一下吧。
这篇文章主要介绍了解决tensorflow 与keras 混用之坑,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
成为群英会员,开启智能安全云计算之旅
立即注册Copyright © QY Network Company Ltd. All Rights Reserved. 2003-2020 群英 版权所有
增值电信经营许可证 : B1.B2-20140078 粤ICP备09006778号 域名注册商资质 粤 D3.1-20240008