牛顿迭代法
设 n = x 2 n = x^2 n=x2,即要求的目标值为 x x x,设函数 f ( x ) = x 2 − n f(x) = x^2 - n f(x)=x2−n。
如下图,取
x
0
x_0
x0,如果
x
0
x_0
x0不是解,那么过
x
0
x_0
x0做切线,与
x
x
x轴交点为
x
1
x_1
x1.
重复上述过程,以这样的方式得到的
x
0
x_0
x0会无限趋近于
f
(
x
)
=
0
f(x)=0
f(x)=0 的解。
判断 x i xi xi是否是 f ( x ) = 0 f(x)=0 f(x)=0的解有两个步骤:
- 计算 f ( x i ) f(xi) f(xi) 的值,判断是否为 0
- 判断前后两个解 x i x_i xi 和 x i − 1 x_{i-1} xi−1 是否无限接近。
推理公式
通过斜率列等式,即
0 − f ( x n ) x n + 1 − x n = f ′ ( x n ) \frac{ 0 - f(x_{n} )}{x_{n+1} - x_{n} } = f'(x_n) xn+1−xn0−f(xn)=f′(xn)
因为
f
′
(
x
n
)
=
2
x
n
f'(x_n) = 2x_n
f′(xn)=2xn,通过化简以上公式可以得到
x
n
+
1
=
1
2
×
(
x
n
+
n
x
n
)
x_{n+1} = \frac{ 1}{2}\times(x_n + \frac{ n }{x_n})
xn+1=21×(xn+xnn)