牛顿迭代法求解非线性方程的python代码
时间: 2023-07-10 22:26:32 浏览: 108
以下是使用牛顿迭代法求解非线性方程的Python代码示例:
```python
def newton(func, dfunc, x0, eps=1e-6, max_iter=100):
"""
使用牛顿迭代法求解非线性方程
func: 非线性方程的函数
dfunc: 非线性方程的导函数
x0: 初始点
eps: 迭代精度
max_iter: 最大迭代次数
返回值: 近似解
"""
x = x0
for i in range(max_iter):
f = func(x)
df = dfunc(x)
if abs(f) < eps:
return x
x = x - f / df
return x
```
其中,`func`是非线性方程的函数,`dfunc`是非线性方程的导函数,`x0`是初始点,`eps`是迭代精度,`max_iter`是最大迭代次数。函数返回近似解。
例如,我们要求解方程 $x^3-2x-5=0$ 在 $1.5$ 附近的根,可以定义如下函数:
```python
def func(x):
return x ** 3 - 2 * x - 5
def dfunc(x):
return 3 * x ** 2 - 2
x0 = 1.5
root = newton(func, dfunc, x0)
print(root)
```
执行后输出近似解:`2.0945514815423265`。
阅读全文