public static double sqrt(double c)
{
if (c < 0) return Double.NaN;
double t = c; // line 1
double err = 1e-15; // line 2
while (Math.abs(t - c/t) > err * t) // line 3
t = (c/t + t) / 2.0; // line 4
return t;
}
Q1:我对第1行和第4行的变量t感到困惑:既然t = c,那么c/t = 1,那么第4行是什么意思?
Q2:第3行,检查的目的是什么?
我搜索了“牛顿法”并得到了几个解释,但我仍然无法理解。我可以在这里要求一个直截了当的解释吗?