二分查找法和牛顿法求根号的实现
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 吧
即
然后试一下看看输出和计算时间
以上是关于二分查找法和牛顿法求根号的实现的主要内容,如果未能解决你的问题,请参考以下文章