用牛顿-拉弗森迭代法求解平方根及其他
用牛顿-拉弗森迭代法求解平方根及其他
牛顿-拉弗森方法是个很有用的方法,在没有计算器需要手算一些式子的时候,其它的运算可能只是需要多花点时间,但对于开平方一类运算必须要有一个数学工具才能开始求解
即便这个方法如此重要,我还是总会忘记,我记得高中的时候受“卡马克魔数”的影响,明明用C写过一个迭代法开平方的程序,还专门和系统自带的sqrt()
函数比较过运行速度,但是如今又是全都忘了
今天就找资料,重新学一下这个东西。
核心的公式
手算开平方,核心的公式就一个:
选择一个接近平方根的值作为
几何过程,试着理解
过定点直线的方程
那么,
求出直线与x轴的交点,也就是直线对应的方程在
然后对
例如,对于
先将其转换成
猜想解在1附近,于是假设
然后根据直线与x轴的交点,代入
可以看到,随意取了一个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