牛顿法求平方根java实现

牛顿法是一种将非线性方程线性化,用线性方程的解逼近非线性方程的解的求解方法。

牛顿法求平方根java实现_第1张图片
image.png

选取一个接近零点的x0,计算f(x0)和切线斜率f'(x0),切线方程为y=f(x0)+f'(x0)(x-x0),将切线与x轴交点的横坐标记为x1,x1比x0更接近方程的解,利用x1开始下一轮迭代,可得迭代公式:


image.png

具体到求n的平方根,那么f(x)=x^2-n,f'(x)=2x,迭代公式为:


image.png

具体代码:

/**
     * 牛顿法求n的平方根
     * @param n
     * @return
     */
    public static double getResult(int n){
        double result=1.0;
        double temp=result-(result*result-n)/(2*result);

        while(Math.abs(result-temp)>0.0000001){
            result=temp;
            temp=result-(result*result-n)/(2*result);
        }
        return result;
    }

你可能感兴趣的:(牛顿法求平方根java实现)