计算一系列角度的余弦和正弦

时间:2012-12-15 20:51:55

标签: performance comparison cosine sine

我应该创建一个程序来计算角度序列k *α的余弦和正弦,其中k是一个增长的自然数(即0,1,2,...),α是一个恒定的角度,位于0和π之间。我想尽可能快地完成这个程序。

因此,我想首先计算每个角度的余弦值,然后计算与sqrt(1-cos(k*α)^2)相关的正弦值。问题是正弦的符号,它应该由实线上角度k *α的位置确定。

我想知道如何尽可能快地实现这种动态比较,或者如果最快的方法是直接计算正弦值。

1 个答案:

答案 0 :(得分:0)

过了一段时间,我又想到了这个问题,我找到了一个非常简单的解决方案:

n = floor(k*alpha/pi);

if (n % 2 == 0)

    sin_alpha = +sqrt(1-pow(cos(k*alpha,2)));

else

    sin_alpha = -sqrt(1-pow(cos(k*alpha,2)));

问题解决了。 :)