牛顿迭代法快速求平方根
2017-02-25 09:51
141 查看
求出根号a的近似值:首先随便猜一个近似值x,然后不断令x等于x和a/x的平均数,迭代个六七次后x的值就已经相当精确了。
例如,我想求根号2等于多少。假如我猜测的结果为4,虽然错的离谱,但你可以看到使用牛顿迭代法后这个值很快就趋近于根号2了:
( 4 + 2/4 ) / 2 = 2.25
( 2.25 + 2/2.25 ) / 2 = 1.56944..
( 1.56944..+ 2/1.56944..) / 2 = 1.42189..
( 1.42189..+ 2/1.42189..) / 2 = 1.41423..
float SqrtByNewton(float x)
{
float val = x;//最终
float last;//保存上一个计算的值
do
{
last = val;
val =(val + x/val) / 2;
}while(abs(val-last) > eps);
return val;
}
....
例如,我想求根号2等于多少。假如我猜测的结果为4,虽然错的离谱,但你可以看到使用牛顿迭代法后这个值很快就趋近于根号2了:
( 4 + 2/4 ) / 2 = 2.25
( 2.25 + 2/2.25 ) / 2 = 1.56944..
( 1.56944..+ 2/1.56944..) / 2 = 1.42189..
( 1.42189..+ 2/1.42189..) / 2 = 1.41423..
float SqrtByNewton(float x)
{
float val = x;//最终
float last;//保存上一个计算的值
do
{
last = val;
val =(val + x/val) / 2;
}while(abs(val-last) > eps);
return val;
}
....
相关文章推荐
- 牛顿迭代法快速寻找平方根
- 快速求平方根的算法
- J2ME快速开平方根
- 完全平方数的判定及整数平方根的快速求解
- 牛顿迭代法应用——求数的平方根和立方根
- 牛顿迭代法求一个数的立方根、平方根
- 快速计算一个数的平方根及其倒数
- 用牛顿迭代法求某正数n的平方根
- 整数快速开平方算法
- 卡马克快速平方根
- 迭代快速算平方根的c++程序(Carmack的QUAKE3)
- 用牛顿迭代法求浮点数的平方根
- 不用sqrt库函数求一个整数的平方根(牛顿迭代法)
- "反复平方"——快速计算一个数的平方
- 整数快速开平方算法
- 快速求平方根的算法
- J2ME快速开平方根
- 牛顿迭代法快速寻找平方根
- 利用牛顿迭代法求平方根 .
- 牛顿迭代法快速寻找平方根