二分法
def erfen(num):
e = 0.001
if num < 1:
up = 1
low = num
else:
up = num
low = 0
res = (up+low)/2
count = 1
while abs(num-res**2) > e:
if num-res**2 < 0:
up = res
else:
low = res
res = (up+low)/2
print(res, count)
count += 1
牛顿迭代法
import random
#牛顿迭代法求根
def sqrt_newton(num):
seed = random.random()
res = seed
e = 0.001
count = 1
while abs(num-res**2) > e:
res = (res+num/res)/2
print(count, res)
count += 1
print(res)
sqrt_newton(15)