2012-12-15 117 views
0

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

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

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

回答

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))); 

问题解决了。 :)