欢迎访问 生活随笔!

生活随笔

当前位置: 首页 > 编程资源 > 编程问答 >内容正文

编程问答

求平方根的算法 牛顿迭代法和二分法

发布时间:2025/3/21 编程问答 50 豆豆
生活随笔 收集整理的这篇文章主要介绍了 求平方根的算法 牛顿迭代法和二分法 小编觉得挺不错的,现在分享给大家,帮大家做个参考.

牛顿法:

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

总结

以上是生活随笔为你收集整理的求平方根的算法 牛顿迭代法和二分法的全部内容,希望文章能够帮你解决所遇到的问题。

如果觉得生活随笔网站内容还不错,欢迎将生活随笔推荐给好友。