java - 复合正弦近似

标签 java loops math

尝试用 Java 编写一个程序,使用以下方程计算 sin (x) 的幂级数近似值:

x - x^3/3! + x^5/5!...x^n/n!

我使用 while 循环来执行此操作,但我似乎无法获得 100% 正确的 sin 近似值。知道我哪里出错了吗?

{
        double x = 0.0, sum = 1.0, y;
        int n = 1, count = 1;

        Scanner kb = new Scanner(System.in);

        System.out.println("Enter positive odd integer");
        n = kb.nextInt();
        System.out.println(n);

        System.out.println("Enter x");
        x = kb.nextDouble();
        y = x;
        System.out.println(x);

        while (true)
        {
            if (n == 1)
                {sum = x;

                }



            count = count + 2;
            sum = x + (x * -(x * x) / (count * (count - 1)));
            x = sum;

            if (count >= n)
                count = count + 2;
                sum = x + (x * -(x * x) / (count * (count - 1)));
                x = sum;
                break;






        }
        System.out.println("sum = " +sum);
        System.out.printf("sin("+y+") = " +Math.sin(y));


}

这当前给我以下输出:

Enter positive odd integer
99
Enter x
0.7
sum = 0.598559827320216
sin(0.7) = 0.644217687237691

最佳答案

你没有正确执行公式 - 我看不到权力在哪里......

我希望你有类似的东西 x = x + (n^-1) * (x^(2*n)/fac( (2*n) ) ); n 步

注意 ^ 运算符不适用于 double ,但这不是复制/粘贴解决方案(从 @paxDiablo( https://stackoverflow.com/users/14860/paxdiablo )可以看出,这只是如何解决您的问题的解决方案。 ..

关于java - 复合正弦近似,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25905063/

相关文章:

python - 你将如何解决 python 中的图论握手问题?

java - 字符错误 "char cannot be converted to string"

Java数表奇怪的错误

javascript - 我需要创建一个无限循环

python - ArcGIS 脚本每次循环都会缓冲所有要素 - 为什么?

php - 在 PHP 中将十六进制转换为 int64

java - 无法使用 @PropertySource 将 .properties 文件注入(inject) Spring MVC 4.3

java - Fragment 和 Android 生命周期

java - 数组上的正则表达式匹配 (Java)

php - & 作为 PHP 中的算术运算符