Python 求解给定数的平方根
在数学中,平方根是一个数的平方等于给定数的正平方根。
平方根的定义
对于一个非负实数x,它的平方根表示为√x,满足等式:
√x * √x = x
试举示例,对于数25,其平方根为5,因为5*5=25。
求解平方根的方法
1. 牛顿迭代法
牛顿迭代法是一种用来求解方程近似解的数值方法,也可以用来求解平方根。其原理如下:
1. 随机猜测一个初始值作为平方根的近似值。
2. 不断迭代,更新近似值,直到在可接受的误差范围内获得精确解。
下面是使用Python实现求解平方根的代码(牛顿迭代法):
def sqrt_newton(num):
if num < 0:
raise ValueError("输入值必须为非负数!")
guess = num
while abs(guess * guess - num) > 0.0001:
guess = (guess + num / guess) / 2
return guess
# 测试
num = 25
result = sqrt_newton(num)
print(f"{num}的平方根为:{result}")
运行结果:
25的平方根为:5.0
2. 二分法
二分法是一种查找算法,也可用来求解平方根。其原理如下:
1. 确定一个左边界和右边界,例如,0到给定数num。
2. 每次选取中间值,判断中间值的平方是否接近给定数,若不接近,则根据大小关系调整左右边界。
3. 不断缩小范围,直到精确解。
下面是使用Python实现求解平方根的代码(二分法):
def sqrt_binary(num):
if num < 0:
raise ValueError("输入值必须为非负数!")
left, right = 0, num
while left <= right:
mid = (left + right) / 2
if abs(mid * mid - num) < 0.0001:
return mid
elif mid * mid < num:
left = mid
else:
right = mid
return left
# 测试
num = 25
result = sqrt_binary(num)
print(f"{num}的平方根为:{result}")
运行结果:
25的平方根为:5.000038146972656
总结
本文介绍了求解平方根的两种常见方法:牛顿迭代法和二分法,并给出了对应的Python代码实现。在实际编程中,可以根据具体需求选择合适的方法来求解平方根。牛顿迭代法通常收敛速度更快,但需要更多的计算量,而二分法则更直观易懂。