利用python编程之牛顿法计算平方根

学习笔记,仅供参考,有错必纠


计算方程式


如果我们想计算 a a 的平方根,可以先任意取一个x的值,再将x带入如下方程,获得一个更好的估计值y:
y = x + ( a / x ) 2 y=\frac{x+(a/x)}{2}

得到估计值y后,我们将y赋值给x,再将x带入上述方程中,得到新的y值,再将新的y赋值给x,以此类推…最终得到"最好的"估计值y.


python实现


import random

def NewtonSqrt(a, epsilon = 0.0000001):
    x = random.uniform(1,100)
    print(x)
    
    while True:
        
        y = (x + a/x)/2
        print(y)
        if abs(y - x) < epsilon:
            return y
        else:
            x = y

a = 4
print('{}的平方根为'.format(a), NewtonSqrt(a))

输出:

33.34220698706773
16.731087525208068
8.485081718339828
4.4782486656931155
2.6857274916486946
2.0875409352335583
2.0018355125909686
2.0000008415043222
2.000000000000177
2.0
4的平方根为 2.0
原创文章 323 获赞 609 访问量 13万+

猜你喜欢

转载自blog.csdn.net/m0_37422217/article/details/106144382