牛顿迭代法求开 n 次方
牛顿迭代法本身是一种对于高次多项式数值解的一种方法。考研的时候,某个学校的题竟然要手动开n次方,虽然以前背过常见的开平方的值,比如 2=1.414,3=1.732,⋯,但对于高次的复杂的没啥意义。
于是就想到这个方法。基本上迭代个三四次精度就很不错了。
求根式 nA 的值,等同于求方程 xn−A=0 的解,或者说是求 f(x)=xn−A,求 f(x)=0 的根。
这实际上是牛顿迭代法的一个特例。形式上,计算上都要简单一些,也就为手算提供可能。
牛顿迭代法
首先,要找到一个初始值 x0,要尽量接近解(避免过多无效的迭代)。如果初始值 x0 不是解,则过(x0,f(x0))点作 f(x) 的切线与 x 轴交于点 x1。若 x1 不是解,则过(x1,f(x1))点作 f(x) 的切线与 x 轴交于点 x2,依次类推。直到 xn 是方程的解,或 xn 满足要求的精度。
通常用牛顿迭代法难以求到解析解,一般情况下,数值解也够了(例如:应对手动开n次方)
迭代关系式
令初始点为 (xi,f(xi)) ,切线方程为 f(x)=f(xi)+f′(xi)(x−xi),
其中,f′(xi) 为 f(xi) 的倒数,令切线方程为0,则有:
xi+1=xi−f′(xi)f(xi)
带入 f(x)=xn−A,则有:
xi+1=xi−nxin−1xin−A=xi−nxi+nxin−1A=n(n−1)xi+nxin−1A
例子
以 597.24=2.49786515707 ,求解的方程为 f(x)=x5−97.24
首先确定初始值,597.24 开五次方大概是 2 点多(25=32,35=243),那么 f(x)=x5−97.24 初始值就从 x0(2,−65.24) 开始,因为2,比3更接近零点。
则:x1=n(n−1)x0+nx0n−1A=5(5−1)2+5×25−197.42=2.8155,则 x1=2.8155
以此类推 x2=2.562,x3=2.501,x4=2.501,x5=2.49787
此时迭代了 5 次,精度就很可观了。