使用牛顿-拉夫森方法的可解释代码

时间:2019-03-27 16:42:59

标签: java newtons-method

我遇到了必须计算给定参数的平方根的Java代码。 但是,经过一番研究,我发现了一个我不知道如何正确实现的代码。

    // read in the command-line argument
    double c = Double.parseDouble(args[0]);
    double epsilon = 1.0e-15;  // relative error tolerance
    double t = c;              // estimate of the square root of c

    // repeatedly apply Newton update step until desired precision is achieved
    while (Math.abs(t - c/t) > epsilon *t) {
        t = (c/t + t) / 2.0;
    }

    // print out the estimate of the square root of c
    System.out.println(t);

我不完全了解的第一件事是为什么它们在第八行被二除。

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

我不明白的第二件事是 while循环的条件,更精确地说:

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

不必只具有:

    while(Math.abs(t - c/t) > epsilon) 

1 个答案:

答案 0 :(得分:0)

$("#checkbox-menu li:has('label'):has(input[value='"+ someID +"'])").remove()

这用于计算两个值t = (c/t + t) / 2.0; c/t的平均值/均值。该值存储在变量t中,用于下一次循环迭代。在t循环内使用System.out.println()调用来检查此行之前的whilet的值以及此行之后的值。