为什么这个泰勒级数不会给出数字> = 1的结果

时间:2019-01-21 13:58:25

标签: java cosine cos taylor-series

我正在构建自己的函数来计算Cosinus作为泰勒级数。 不幸的是,代码不会执行大于1的数字。 我知道这个问题还有很多其他例子,但是对于我自己的java知识,我想知道问题出在哪里。

public class Cosinus {

    public static double cos(double x) {
        double sum = 0.0;

        for (int i = 0; i <= Double.POSITIVE_INFINITY; i++) {
            double summand = (Math.pow(x, 2 * i) / fak(2 * i)) * Math.pow((-1), i);

            if (Math.abs(summand) >= 0.001) {
                sum += summand;
            } else {
                break;
            }
        }

        return sum; 
    }

    private static double fak(int i) {
        int ergebnis = 1;

        for (int count = 1; count <= i; count++) {
            ergebnis = count * ergebnis;
        }

        return ergebnis;
    }

    public static void main(String[] args) {
        System.out.println(cos(10.0));  
    }
}

0 个答案:

没有答案