2012-12-15 155 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))); 

問題解決了。 :)