我正在尋找僞代碼中的三角函數。 我不擅長數學,所以我無法用維基百科中的公式做很多事情。 主要我在尋找正弦,餘弦,正切和它們的反函數(sin?1,cos?1,tan?1)。 還有其他三角函數。但對我而言,以上是最重要的。僞代碼中的三角函數
如果可能的話,我會很高興,如果在僞代碼只變量,for
,if
,和運營商(+
,-
,*
,/
,%
,sqrt()
)的使用,因爲我沒有一個圖書館具有高等數學功能。
我正在尋找僞代碼中的三角函數。 我不擅長數學,所以我無法用維基百科中的公式做很多事情。 主要我在尋找正弦,餘弦,正切和它們的反函數(sin?1,cos?1,tan?1)。 還有其他三角函數。但對我而言,以上是最重要的。僞代碼中的三角函數
如果可能的話,我會很高興,如果在僞代碼只變量,for
,if
,和運營商(+
,-
,*
,/
,%
,sqrt()
)的使用,因爲我沒有一個圖書館具有高等數學功能。
三角函數爲Transcendental。
在多項式代數的術語中找不到它們的表達式確切的。
你可以近似他們雖然。
通常的方法是使用週期性和對稱性以減小的角度α進入和等效角度α ′使得罪(α)= 罪(α ′),但α ′≪ α。
簡單地說,你可以減少任何角度進入第一象限或類似的角度,這比看起來容易。
一旦你有一個小角度,你可以使用Taylor Series Expansion來計算一個固定誤差幅度的函數。
Here是一個教程頁面。
另一種方法是使用lookup table。
當您可以跟蹤所需的過程精度並且速度非常快時,這一點尤其有用。
但是,它需要更多的內存,並可能會產生一個步驟式的功能。 Here介紹頁面。
另一種方法是使用CORDIC Algorithm,這是特別適合於缺乏乘法載體(像一些MIPS和ARM芯片)的硬件。 維基百科:
CORDIC通常比其它方法更快是當一個硬件乘法器不可用(例如,微控制器)[...]
在另一方面,當一個硬件乘法器可用(例如,在DSP微處理器中),查表方法和功率序列通常比CORDIC更快。