求平方根的算法 牛顿迭代法和二分法
生活随笔
收集整理的这篇文章主要介绍了
求平方根的算法 牛顿迭代法和二分法
小编觉得挺不错的,现在分享给大家,帮大家做个参考.
牛顿法:
public double sqr(double n){double x=n,y=0.0;while (Math.abs(x-y)>0.0001){y=x;x=(x+n/x)/2;}return x;}设r是f(x) = 0的根,选取x0作为r初始近似值,过点(x0,f(x0))做曲线y = f(x)的切线L,L的方程为y = f(x0)+f'(x0)(x-x0),求出L与x轴交点的横坐标 x1 = x0-f(x0)/f'(x0),称x1为r的一次近似值。
过点(x1,f(x1))做曲线y = f(x)的切线,并求该切线与x轴交点的横坐标 x2 = x1-f(x1)/f'(x1),称x2为r的二次近似值。重复以上过程,得r的近似值序列,其中x(n+1)=x(n)-f(x(n))/f'(x(n)),称为r的n+1次近似值,上式称为牛顿迭代公式。
二分法:
#define eps 0.00001 float SqrtByDichotomy(float n) {if (n < 0){return -1.0;}else{float low, up, mid, last;low = 0, up = (n>=1?n:1);mid = (low + up) / 2;do {if (mid*mid>n)up = mid;elselow = mid;mid = (up+low)/2;} while (fabsf(mid - last) > eps);return mid;}
转载于:https://www.cnblogs.com/10zhang/p/10557649.html
总结
以上是生活随笔为你收集整理的求平方根的算法 牛顿迭代法和二分法的全部内容,希望文章能够帮你解决所遇到的问题。
- 上一篇: 阿里巴巴开源OpenJDK长期支持版本,
- 下一篇: redis过期机制(官网文档总结)