二分查找法和牛顿法求根号的实现

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了二分查找法和牛顿法求根号的实现相关的知识,希望对你有一定的参考价值。

参考技术A emmmm

大学的时候微积分导数没学好,

以及小学初中高中的数学基本还给老师了【扶额

导致我现在对算法这种东西理解无力。

所以先从简单的开始吧。

用二分查找和牛顿法分别实现一个简单的求根号方法。

先用系统自带的 sqrt 方法做对照组

二分查找很简单

给定一个范围(1 和 目标数字),不断取中值,然后根据精度返回就行了。

牛顿法:
已知
f(x)=x^2
求当 f(x) = n 的时候 x 的值,即求这个函数与 x 轴的交点
f(x) = x^2 -n
先求导数
f'(x)=x^2-n
然后随机取一个点,比如 x0 ,他的 纵坐标为 x0^2 - n ,斜率为 2x0
过 (x0,x0^2 -b) 斜率为 2x0 的直线的方程为
f(x) = 2x0(x-x0) + x0^2 - n

f(x) = 2x0x - x0^2 -n
其与 x 轴的交点的横坐标为 0 = 2x0x - x0^2 -n

x = (x0^2 + n)/2x0
也就是说先随机取一个点,迭代一次以后得到上述值,检查一遍精度是否符合要求。如果符合,则直接返回,否则继续循环迭代,

这个点暂时就先取 1 吧



然后试一下看看输出和计算时间

以上是关于二分查找法和牛顿法求根号的实现的主要内容,如果未能解决你的问题,请参考以下文章

二分和牛顿法实现开根号

牛顿法和二分法精度上的区别

开根号(二分法牛顿法)

机器学习中梯度下降法和牛顿法的比较

GBDT与xgb区别,以及梯度下降法和牛顿法的数学推导

梯度下降法和牛顿法的总结与比较