牛顿迭代法python_python 牛顿迭代法
时间: 2023-10-12 11:11:33 浏览: 71
牛顿迭代法是一种求解方程的数值方法,主要用于解决非线性方程或优化问题。它的基本思想是:从一个初始点开始,通过不断地用函数的一阶导数和二阶导数的比值来逐步地逼近方程的根或极值点。
以下是Python实现牛顿迭代法的示例代码:
```python
def newton_method(f, df, x0, tol=1e-6, max_iter=100):
"""
使用牛顿迭代法求解方程f(x) = 0的根
:param f: 方程
:param df: 方程的一阶导数
:param x0: 初始点
:param tol: 容忍误差
:param max_iter: 最大迭代次数
:return: 根
"""
x = x0
for i in range(max_iter):
fx = f(x)
if abs(fx) < tol:
return x
dfx = df(x)
if dfx == 0:
return None
x = x - fx / dfx
return None
```
其中,f是方程,df是方程的一阶导数,x0是初始点,tol是容忍误差,max_iter是最大迭代次数。函数返回方程的根。
例如,求解方程x^3 - 2x - 5 = 0在x=2附近的根,可以这样调用:
```python
def f(x):
return x**3 - 2*x - 5
def df(x):
return 3*x**2 - 2
x0 = 2
root = newton_method(f, df, x0)
print(root)
```
输出为:
```
2.0945514815423265
```
可以看到,牛顿迭代法成功地求解了方程的根。
相关推荐
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)