牛顿迭代法求平方根

懵懂的女人 提交于 2020-02-07 21:53:47

public static double sqrt(double c) 

{

  if(c<0) return -1; 

double err = 1e-15;

double t = c;

while(Math.abs(t-c/t)>err*t)

  t=(t+c/t)/2.0;

return t

}

原理解释:

先假设t为c的平方根,x1=t,再利用公式x(n)=(x(n-1)+c/x(n-1))/2,然后不断迭代求x(n)的值,直到x(n+1)-x(n)的差值小于err为止。

比如求6的平方根,此时t=c=6,x1=6,运用公式迭代求得x2=3.5,x3=4.35,x4=2.86,...x(n)=2.45

 

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!