1.基本概念
牛顿迭代法是一种求函数零点的方法,它是利用函数f(x)的泰勒展式的前几项来寻找方程f(x)=0的根的近似值。牛顿迭代法的基本思想是:对于方程f(x)=0,给定一个初值x0,用其在该点处的切线与x轴交点为新的近似值,然后以新的近似值继续进行迭代,直到满足精度要求为止。
具体来说,对于函数f(x),可以将其在点xn处展开为二阶泰勒多项式:
其中ξ是x和xn之间的某个点,f'和f′′分别表示f(x)的一阶和二阶导数。令f(x)=0,则有:
这个公式称为牛顿迭代法的迭代公式。不断使用这个公式,即可得到逐步逼近方程f(x)=0根的近似值。
需要注意的是,牛顿迭代法对于初值的选取比较敏感,有时可能会导致不收敛或者收敛到错误的根上。此外,当函数f(x)的导数为0时,迭代公式中的分母会为0,也会导致收敛失败。
2.代码实现
下面是一个简单的Python实现,求解多项式
初始解为x=2,f'(x)=3x^2+4x+10
"""
@Time : 2023/10/14 0012 13:21
@Auth : yeqc
"""
def f(x):
return x**3+2*x**2+10*x-20
def df(x):
return 3*x**2+4*x+10
x = 2
eps = 1e-6
while abs(f(x)) > eps:
x = x - f(x)/df(x)
print(x)