牛顿迭代法python_python 牛顿迭代法
时间: 2023-10-12 10:10:58 浏览: 94
牛顿迭代法是一种用于求解方程的数值方法,它可以用于求解非线性方程。其基本思想是:从一个初始点开始,通过求解切线与 $x$ 轴的交点,来逼近函数的根。
下面是使用 Python 实现牛顿迭代法的代码:
```python
def newton(f, df, x0, tol=1e-6, maxiter=100):
"""
使用牛顿迭代法求解非线性方程 f(x)=0 的根。
:param f: 目标函数。
:param df: 目标函数的导数。
:param x0: 迭代的初始点。
:param tol: 迭代停止的精度。
:param maxiter: 最大迭代次数。
:return: 迭代得到的根。
"""
x = x0
for i in range(maxiter):
fx = f(x)
if abs(fx) < tol:
return x
dx = -fx / df(x)
x = x + dx
return x
```
其中,参数 `f` 表示目标函数,`df` 表示目标函数的导数,`x0` 表示迭代的初始点,`tol` 表示迭代停止的精度,`maxiter` 表示最大迭代次数。
下面是一个使用牛顿迭代法求解方程 $\sin(x)=0$ 的例子:
```python
import math
def f(x):
return math.sin(x)
def df(x):
return math.cos(x)
x0 = 3.0
root = newton(f, df, x0)
print("根为:", root)
```
输出结果为:
```
根为: 3.141592653589793
```
可以看到,该算法成功地求得了方程 $\sin(x)=0$ 的根,即 $\pi$。
阅读全文