怎么用牛顿法解平方根?

牛顿法求平方根的本质就是在抛物线上任取一点做切线,再把该切线与x轴的交点代入该抛物线方程又得到一根更逼近根的切线,如此迭代最终获得结果。但是牛顿法求函数根,需要该函数有二阶导数,否则牛顿法会在根附近抖动甚至越来越远。好在抛物线函数符合这个条件,所以可以安全使用牛顿迭代法。
以下是我找到的两篇讲解牛顿法的文章,第一篇通俗讲解了牛顿法的思想,第二篇推导了牛顿法求平方根的公式。都是很好的文章,但是都不完美,第一篇没讲怎么应用在求平方根上,第二篇排版混乱。下文对这两篇文章做了整理。
https://www.zhihu.com/question/20690553
http://www.voidcn.com/article/p-btcbtpcx-gk.html
(一)形象解释牛顿迭代法
请参考https://www.zhihu.com/question/20690553,标题为“如何通俗易懂地讲解牛顿迭代法求开方?”。此处截屏的目的是留档,避免链接丢失。

(二)计算机实现牛顿迭代法
1.设函数f(x)的根为r,我们任意选取x_0作为r的初值。
2.过点(x_0,f(x_0))做曲线的切线l,则l的方程为:y=f(x_0)+{f}'(x_0)(x-x_0)
lx轴的交点的x坐标为: x_1= x_0 - \frac{f(x_0)}{{f}'(x_0)}
3.计算 \left | x_0 - x_1 \right |的差值,若差值小于一定值,则可认为已经求得解,停止算法;否则以 x_1 为新的点重复第2步
计算过程中,x_{n+1}称为rn+1 次近似值,而 x_{n+1} = x_n - \frac{f(x_n)}{{f}'(x_n)} 即称为牛顿迭代公式。

(三)平方根函数
求数s的平方根x,则 s = x^{2}。可以定义函数 f(x) = x^2 - s ,最终问题转换为求方程 f(x) = 0 = x^2 - s的根。
{f}'(x) = 2x,代入牛顿迭代公式得到: x_{n+1} = x_n - \frac{x_n^2-s}{2x_n}
转换后得到x_{n+1} = \frac{x_n^2 + s}{2x_n}
以此替代上文牛顿迭代法第2步中的公式,迭代计算就得到了平方根。

猜你喜欢

转载自blog.csdn.net/tassardge/article/details/84929990
今日推荐