牛顿迭代法python实习
时间: 2023-07-07 11:44:38 浏览: 52
下面是使用Python实现牛顿迭代法求解方程的示例代码:
```python
def newton_method(f, df, x0, tol=1e-6, max_iter=100):
"""
使用牛顿迭代法求解方程 f(x) = 0
:param f: 方程 f(x) 的函数
:param df: 方程 f(x) 的导数函数
:param x0: 初始值
:param tol: 容忍误差
:param max_iter: 最大迭代次数
:return: 迭代结果
"""
for i in range(max_iter):
fx = f(x0)
if abs(fx) < tol:
return x0
x0 = x0 - fx / df(x0)
raise ValueError("迭代失败")
# 示例:求解方程 x^3 - 2*x - 5 = 0 的根
def f(x):
return x**3 - 2*x - 5
def df(x):
return 3*x**2 - 2
x0 = 2.0
root = newton_method(f, df, x0)
print("方程的解为:", root)
```
在上述示例代码中,使用`newton_method()`函数实现了牛顿迭代法。函数中的参数`f`代表方程$f(x)$的函数,`df`代表方程$f(x)$的导数函数,`x0`为初始迭代值,`tol`为容忍误差,`max_iter`为最大迭代次数。函数中使用`for`循环进行迭代,通过计算$f(x_0)$和$f'(x_0)$来更新$x_0$的值,直到达到容忍误差或达到最大迭代次数。若迭代失败,则抛出异常。最后,使用示例方程$x^3 - 2*x - 5 = 0$来测试`newton_method()`函数的实现,并输出方程的解。