如何获得Bisection Method打印多项式的所有根,最多5个指数

时间:2016-03-17 02:22:15

标签: java

我正在做一个二分法方法,你输入系数达到5的幂,我找到多项式的每个根。我的代码只打印出多项式的第一个根。我如何让它继续寻找其他根源?这是我的代码

public void bisectionMethod(double a, double b) {
        double average;
        double yOfC;
        double [] roots;
        int size = 1;
        while (size <= 5) {
            average = (a + b) / 2;
            yOfC = calculateY(average);
            if (Math.abs(yOfC) < 0.001) {
                System.out.println(average);
                size++;
            } else if (yOfC * calculateY(a) > 0) {
                a = average;
            } else {
                b = average;
            }
        }
    }

这是我的输出

-0.9999990463256836
-0.9999990463256836
-0.9999990463256836
-0.9999990463256836
-0.9999990463256836

1 个答案:

答案 0 :(得分:1)

这更像是一个数学问题,而不是一个编程问题。

在连续函数 f 中给出两点,如果 f,保证在点 a b 之间找到根点(a)* f(b)&lt; 0 (即一个值为正,另一个为负)。但是,这只能保证一个根。

要查找另一个根,如果存在,则必须选择不同的间隔。但是,在计算根之前,您将无法知道此新间隔是否会产生新根。如果对其他寻根算法感兴趣,我建议你阅读它们here