python函数实现求非负实数平方根,在shell里调用
程序员文章站
2024-03-21 13:18:34
...
算法
牛顿迭代法
利用切线逼近曲线,求曲线零点,对于曲线 ,采用迭代的方法求其零点,在点处曲线切线方程:,其与x轴交点横坐标即为下一个,得到通用迭代公式:
对于求已知参数 的平方根,即求方程 的解,代入即可解得:
求平方根的迭代公式为:
描述如下
- 对给定正整数和允许误差,令变量取任意正整数值,如令 ;
- 如果 与 足够接近,即 ,计算结束并把 作为结果;
- 取 ;
- 将 作为 的新值,回到步骤1
函数代码
def sqrt(x):
y = 1.0
while abs(y * y - x) > 1e-6:
y = (y + x/y)/2
return y
调用函数
import sys
sys.path.append(r"D:\python")
import sqrt
y = sqrt.sqrt(5)
y