python编写一个牛顿迭代法求平方根的函数,使该函数可以被其他程序导入调用。
时间: 2024-12-08 19:17:40 浏览: 15
Python编程实现二分法和牛顿迭代法求平方根代码
在Python中,我们可以利用牛顿迭代法(Newton's method)来计算一个正数的平方根。这是一种数值逼近的方法,通过不断迭代来逐步接近精确结果。以下是编写一个接受一个正实数并返回其平方根的函数:
```python
def sqrt_newton(number, precision=1e-6, max_iter=100):
"""
使用牛顿迭代法求解平方根
:param number: 要求平方根的正数
:param precision: 迭代停止的精度,默认为1e-6
:param max_iter: 最大迭代次数,默认为100次
:return: 平方根的近似值
"""
def newton_step(x):
return x - (x ** 2 - number) / (2 * x)
if number < 0:
raise ValueError("Cannot calculate square root of a negative number")
guess = number if number == 0 else number // 2 # 初始猜测值
for _ in range(max_iter):
next_guess = newton_step(guess)
if abs(next_guess - guess) < precision:
return next_guess
guess = next_guess
print(f"Warning: Maximum iterations ({max_iter}) reached without reaching the desired precision.")
return guess
# 示例
import math # 提供一个标准的math.sqrt进行比较
print(sqrt_newton(9)) # 应该输出 3.0
阅读全文