,输入任意实数a(a>=0),用迭代法求x=,要求计算的相对偏差小于为止.用python来求

2025-02-25 19:40:11
推荐回答(1个)
回答1:

你这题写的有问题的,偏差值到10的-6次方以内就行,那就只能保留小数点后六位是准确的,你这举例求解后的小数点后起止是6位啊,我数了下小20位呢,而且你这后几位都不对,以哪个为准啊?我写了下,偏差值你自己写吧,就是代码第四行最后那个小数。

def my_sqrt(n):
    n1 = n/2
    n2 = (n1+n/n1)/2
    while abs(n1 - n2) > 0.00000001:
        n1 = n2
        n2 = (n1+n/n1)/2
    print("%.2f 的平方根是:%.20f" % (n, n2))


my_sqrt(2)

'''运行结果:
2.00 的平方根是:1.41421356237309492343
需要说明的是,python的浮点型精度默认只有小数点后16位是准确的,再往后就不准确了,
所以我写的保留20位只是看看,值只看小数点后16位。
'''