,输入任意实数a(a>=0),用迭代法求x=,要求计算的相对偏差小于为止.用python来求
发布网友
发布时间:2022-11-04 10:07
我来回答
共1个回答
热心网友
时间:2023-11-03 22:34
你这题写的有问题的,偏差值到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位。
'''