牛顿迭代法原理很简单,就是把在
处一阶泰勒展开,即
注意这里是近似相等。所以的解近似为
的解,即
,在这里先浅浅理解一下
和
的意义,我们首先猜测
的解是
,然后我们用上述近似得到了一个更接近真实解的解
,那么一个迭代公式便产生了:
,迭代到一定程度我们就认为我们求出了
的解。
下面是python代码,注意tol不能太小。
import math
def f(x):
return f(x)表达式
def df(x):
return dfx(x)表达式
def newton_solve(func, dif, x0):
tol = 1e-9
fx = func(x0)
dfx = dif(x0)
x1 = x0 - fx / dfx
while abs(x1 - x0) > tol:
x0 = x1
fx = func(x0)
dfx = dif(x0)
x1 = x0 - fx / dfx
return x1