可以使用Newton-Raphson迭代法或者二分法进行求解,以下是使用二分法的示例代码:
import math
# 定义求解平方根的函数
def sqrt(x):
l, r = 0, x
eps = 1e-7
while r - l > eps:
mid = (l + r) / 2
if mid * mid < x:
l = mid
else:
r = mid
return l
# 定义逼近求解每个元素平方根的函数
def sqrt_array(arr):
n = len(arr)
res = [0] * n
for i in range(n):
res[i] = sqrt(arr[i])
return res
# 测试
arr = [1, 4, 9, 16, 25]
res = sqrt_array(arr)
print(res)
以上代码定义了一个求解平方根的函数sqrt(x)
,使用二分法进行求解。在逼近求解每个元素平方根的函数中,遍历每个元素,使用sqrt(x)
函数进行求解。运行测试后,输出结果为[1.0, 2.0, 3.0, 4.0, 5.0]
,符合预期。