浮点数开根号 二分法+牛顿法

Posted theodoric008

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了浮点数开根号 二分法+牛顿法相关的知识,希望对你有一定的参考价值。

double sqrt_bin(double n){
    if(n < 1){
        n = 1;
    }
    double left = 0;
    double right = n;
    double mid = n / 2;
    while(abs(mid * mid - n) > 0.000001){
        if(mid*mid < n){
            left = mid;
        }
        else{
            right = mid;
        }
        mid = (left + right) / 2;
    }
    return mid;
}


double sqrt_newton(double n){
    if(n < 1){
        n = 1;
    }
    double x0 = n;
    double x1 = x0;
    while(x1 * x1 - n > 0.0000001){
        x1 = 0.5 * (x0 + n / x0);
        x0 = x1;
    }
    return x0;
}

以上是关于浮点数开根号 二分法+牛顿法的主要内容,如果未能解决你的问题,请参考以下文章

二分和牛顿法实现开根号

二分查找法和牛顿法求根号的实现

牛顿法

c#用牛顿法计算根号下2的值

加速牛顿法求第 n 个根

牛顿法和二分法精度上的区别