牛顿迭代法求区间内的根python代码
时间: 2024-12-28 20:33:23 浏览: 11
牛顿迭代法是一种用于寻找函数零点的有效算法,它通过不断逼近函数图形的切线与x轴的交点来逼近解。以下是使用Python实现牛顿迭代法求解某个连续可导函数在给定区间的根的一个简单示例:
```python
def newton_raphson(f, f_prime, x0, tol=1e-6, max_iter=100):
"""
使用牛顿迭代法求解函数f的根
:param f: 函数f(x)
:param f_prime: f(x)的一阶导数f'(x)
:param x0: 初始猜测值
:param tol: 迭代精度,默认为1e-6
:param max_iter: 最大迭代次数,默认为100
:return: 根的近似值
"""
x = x0
for _ in range(max_iter):
if abs(f(x)) < tol: # 如果函数值接近0,则认为找到了近似根
return x
else:
x -= f(x) / f_prime(x) # 更新迭代点
print("未能达到指定精度或达到最大迭代次数,结果可能存在误差")
return x
# 示例:寻找方程f(x) = x**3 - 2 * x - 5的根
f = lambda x: x**3 - 2 * x - 5
f_prime = lambda x: 3 * x**2 - 2
root = newton_raphson(f, f_prime, x0=1) # 针对特定函数和初始点进行计算
print(f"找到的根大约是:{root}")
阅读全文