Python实现牛顿迭代法——求解方程根
牛顿迭代法是一种求解方程近似解的方法,通过不断迭代来逼近真实值,其基本思想是选取一个初始值,然后利用函数的局部线性化来不断接近函数的根。这里以求解方程根为例,展示如何使用Python实现牛顿迭代法。
示例:求解方程 f(x) = x^3 - 3x^2 + 3x - 1 = 0 的根
首先,我们需要定义方程 f(x):
def f(x):
return x3 - 3*x2 + 3*x - 1
然后,定义该方程的导数 f’(x):
def derivate_f(x):
return 3x**2 - 6x + 3
接下来,我们可以在Python中定义牛顿迭代法的函数,如下所示:
def newton_method(f, derivate_f, x0, max_iter=1000, tol=1e-8):
“”"
f: 待求解方程函数
derivate_f: f的一阶导数函数
x0: 初始点
max_iter: 最大迭代次数
tol: 相邻两次迭代之间余项的差值的绝对值小于tol时,退出循环,返回近似程度高的x_n值
return: 初值x0经过牛顿法迭代后得到的解"""
x_n = x0
for n in range(1, max_iter+1):
f_n = f(x_n)
dfdx_n = derivate_f(x_n)
if abs(f_n) < tol:
return x_n
x_n = x_n - f_