尝试用 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/