在Python中用二分怎么实现求平方根
Admin 2022-07-15 群英技术资讯 282 次浏览
使用二分法(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进行举报,并提供相关证据,查实之后,将立刻删除涉嫌侵权内容。
猜你喜欢
本文给大家分享的是怎样使用python解析json对象,下面会给大家介绍JSON数据格式特点、常用处理json方法、系列化和反系列化等等内容,具有一定的参考借鉴价值。
这篇文章主要为大家介绍了Pytorch卷积神经网络迁移学习的目标实现代码及好处介绍,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
在本文中,我们将一起探索几种从图像中提取颜色、形状和纹理特征的方法,这些方法基于处理图像的经验,感兴趣的小伙伴可以了解一下
本文主要介绍了numpy中的converters和usecols用法详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
这篇文章主要为大家介绍了如何利用PyQt5制作一个简单的截图翻译工具,具有截图功能、翻译功能和文字识别OCR,需要的可以参考一下
成为群英会员,开启智能安全云计算之旅
立即注册Copyright © QY Network Company Ltd. All Rights Reserved. 2003-2020 群英 版权所有
增值电信经营许可证 : B1.B2-20140078 粤ICP备09006778号 域名注册商资质 粤 D3.1-20240008