牛顿法求平方根java实现
程序员文章站
2024-02-27 19:52:21
...
牛顿法是一种将非线性方程线性化,用线性方程的解逼近非线性方程的解的求解方法。
选取一个接近零点的x0,计算f(x0)和切线斜率f’(x0),切线方程为y=f(x0)+f’(x0)(x-x0),将切线与x轴交点的横坐标记为x1,x1比x0更接近方程的解,利用x1开始下一轮迭代,可得迭代公式:
具体到求n的平方根,那么f(x)=x^2-n,f’(x)=2x,迭代公式为:
具体代码:
/**
* 牛顿法求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;
}