Python 求解给定数的平方根

Python 求解给定数的平方根

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代码实现。在实际编程中,可以根据具体需求选择合适的方法来求解平方根。牛顿迭代法通常收敛速度更快,但需要更多的计算量,而二分法则更直观易懂。

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程