Knighthana
文章114
标签154
分类7

文章归档

用牛顿-拉弗森迭代法求解平方根及其他

用牛顿-拉弗森迭代法求解平方根及其他

用牛顿-拉弗森迭代法求解平方根及其他

牛顿-拉弗森方法是个很有用的方法,在没有计算器需要手算一些式子的时候,其它的运算可能只是需要多花点时间,但对于开平方一类运算必须要有一个数学工具才能开始求解

即便这个方法如此重要,我还是总会忘记,我记得高中的时候受“卡马克魔数”的影响,明明用C写过一个迭代法开平方的程序,还专门和系统自带的sqrt()函数比较过运行速度,但是如今又是全都忘了

今天就找资料,重新学一下这个东西。

核心的公式

手算开平方,核心的公式就一个:

选择一个接近平方根的值作为 代入 开始第一遍计算,获得等式左边 的值,将 代入右侧算式得到 的值,之后每次计算都会更接近 的解

几何过程,试着理解

是函数的图像, 对于 , 点是表示函数在 处取值的点

是斜率与函数图像在 点处斜率的相等的一条直线

过定点直线的方程

那么, 就是一条过函数图像上 处与函数图像相切的直线

求出直线与x轴的交点,也就是直线对应的方程在 时的解,这个值是

然后对 重复一遍上述过程得到

例如,对于 求x的平方根

先将其转换成 的形式

猜想解在1附近,于是假设 画一张图看看

fg1

然后根据直线与x轴的交点,代入 ,再画一张图

fg2

可以看到,随意取了一个1,仅仅经过两次迭代,就快速逼近了真正的解

这个方法既适合手算,也适合编程序去计算

其他

事实上,牛顿-拉弗森方法是用函数 的泰勒级数的前几项来寻找方程 的根

这个方法还可以用于其他方程的求解,式子是这样的

这个式子是有使用条件的

此外,这个方法还可以用于求极值点

Knighthana

2023/04/02

参考资料

[1] 如何通俗易懂地讲解牛顿迭代法? https://www.matongxue.com/madocs/205/

[2] 牛顿法 https://zh.wikipedia.org/wiki/%E7%89%9B%E9%A1%BF%E6%B3%95

[3] 有趣数学-Bilibili https://www.bilibili.com/video/BV1KT4y1N7Sq/

[3’] Newton-Raphson method | Animated and explained | Algorithm for finding roots of a function Youtube https://www.youtube.com/watch?v=qlNqPE_X4ME

Tag

Newton-Raphson; sqrt(); Carmack