求平方根的算法 牛顿迭代法和二分法
生活随笔
收集整理的這篇文章主要介紹了
求平方根的算法 牛顿迭代法和二分法
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
牛頓法:
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长期支持版本,
- 下一篇: 首发福利!全球第一开源ERP Odoo系