【Interview】拟牛顿求一个数的平方根

如何求一个数的平方根? - 一点点算法的文章 - 知乎

牛顿迭代法的思路是通过切线方程与x轴的 交点,逐渐迭代收敛到一个数的平方根。

我们要求m的平方根,构造函数

【Interview】拟牛顿求一个数的平方根_第1张图片

【Interview】拟牛顿求一个数的平方根_第2张图片

用图1进行简单说明

初始化选A点,求切线,与x轴交点 A′ ,改点横坐标 对应B点,再求切线,与x轴交点 B′ ,之后一直进行,会迭代到曲线与x轴的交点。

代码

def my_sqrt2(x):
    
    x0=x
    while abs(x0*x0-x)>0.0000000000001:
        x1=0.5*(x0+x/x0)
        x0=x1
    return x0

手解详情版

你可能感兴趣的:(Interview,机器学习,算法)