Java Math 类已经提供开方的方法Math.sqrt(123),但是也可以自己去实现开方的,下方给出了推导过程和java代码
牛顿迭代公式
根据公式 令f(x) = x^2 - M (M 为需要开方的 数)则有如下结果
f'(x) = 2x
Xn+1 = Xn - (X^2 - M ) / (2X)
当x^2 - M 越接近于0 则 X即为M 的算术平方跟
public static void main(String[] args) { double M = 123.0; // 被开方数 double x = M / 2; double accuracy = 0.0001; // 精度 while( Math.abs(x * x - M) > accuracy ){ x = x - (x * x - M) / (2*x); } System.out.println(x); System.out.println(Math.sqrt(123)); }
根据此方法可以实现开N次方,和其它复杂的数学运算,比如求解一元N次方程(需要一定的数学基础)
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)