-3

有人可以解释以下代码吗?变量ort有什么用?

void squart_root(double a)
{
if (a>0.0){
    double root = 1, ort = 0;
    while(ort!=root)
    {
        ort = root;
        root = ((a/root) + root) / 2;
    }
    printf("Root is : %lf",root);
}else if(a==0.00000){
    printf("Root is : %lf",a);
}else{
    printf("Cannot find the square root of a negative number");
    }
}
4

1 回答 1

0

这看起来类似于牛顿计算平方根的方法(源自 Newton-Raphson 的方法)。

您可以在此处阅读有关此内容的更多信息。

看起来像:

  X(n+1) = (A/X(n) + X(n))/2
  It converges when X(n) = X(n+1) (that is in your case) or under some precision.

在每次迭代中,X(n) 应该更接近真正的根。

的目的ort是保持 X(n) 并检查这种收敛。当根收敛时,循环终止。这就是为什么ort在这里。

您可以阅读有关 Newton-Raphsone 方法的信息(只需 google 即可),您将能够推导出这个方程。

于 2013-11-08T03:41:30.763 回答