public class Sqrt
{
public static void main(String[] args)
{
double EPS = 1E-15;
double c = Double.parseDouble(args[0]);
double t = c;
while (Math.abs(t - c/t) > t * EPS)
{ t = (c/t + t)/2.0; }
System.out.println(t);
}
}
以上是我在Java中發現的牛頓拉夫森的一個版本。 我想它可以工作,但我很難把它的實際工作包裹起來。 { t = (c/t + t)/2.0; }
真的讓我困惑。Newton Raphson版本(牛頓法)
我熟悉的x_n+1 = x_n - f(x_n)/ f'(x_n)
但沒有一個在上面的代碼中實現..
你的函數f(x_n)是什麼? –
我認爲這是'(c + t^2)/(2.0 * t)'的重寫,如果有幫助的話 –