利用牛顿迭代法 求n次方根

牛顿迭代法 这里不多说,直接上代码:

求平方根:

 

public  static double getPingFangRoot(double input){
		if(input==0)
			return 0;
		double x0,x1;
		x0=input;
		x1=(1*x0/2)+(input/(x0*2));//利用迭代法求解
		while(Math.abs(x1-x0)>0.000001){
			x0=x1;
			x1=(1*x0/2)+(input/(x0*2));
		}
		return x1;
	} 


求立方根:

public  static double getCubeRoot(double input){
		if(input==0)
			return 0;
		double x0,x1;
		x0=input;
		x1=(2*x0/3)+(input/(x0*x0*3));//利用迭代法求解
		while(Math.abs(x1-x0)>0.000001){
			x0=x1;
			x1=(2*x0/3)+(input/(x0*x0*3));
		}
		return x1;
	} 


求四次方根:

public  static double getSiciRoot(double input){
		if(input==0)
			return 0;
		double x0,x1;
		x0=input;
		x1=(3*x0/4)+(input/(x0*x0*x0*4));//利用迭代法求解
		while(Math.abs(x1-x0)>0.000001){
			x0=x1;
			x1=(3*x0/4)+(input/(x0*x0*x0*4));
		}
		return x1;
	} 


求五次方根:

public  static double getWuciRoot(double input){
		if(input==0)
			return 0;
		double x0,x1;
		x0=input;
		x1=(4*x0/5)+(input/(x0*x0*x0*x0*5));//利用迭代法求解
		while(Math.abs(x1-x0)>0.000001){
			x0=x1;
			x1=(4*x0/5)+(input/(x0*x0*x0*x0*5));
		}
		return x1;
	} 


求n次方根解法是一样的,从以上可以看出规律,不多说。。。。


版权声明:本文为u011190556原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。