2016-05-13 61 views
0

我正在尋找僞代碼中的三角函數。 我不擅長數學,所以我無法用維基百科中的公式做很多事情。 主要我在尋找正弦,餘弦,正切和它們的反函數(sin?1,cos?1,tan?1)。 還有其他三角函數。但對我而言,以上是最重要的。僞代碼中的三角函數

如果可能的話,我會很高興,如果在僞代碼只變量,forif,和運營商(+-*/%sqrt())的使用,因爲我沒有一個圖書館具有高等數學功能。

回答

2

三角函數爲Transcendental
在多項式代數的術語中找不到它們的表達式確切的

你可以近似他們雖然。

通常的方法是使用週期性和對稱性以減小的角度α進入和等效角度α ′使得(α)= (α ′),但α ′≪ α。
簡單地說,你可以減少任何角度進入第一象限或類似的角度,這比看起來容易。
一旦你有一個小角度,你可以使用Taylor Series Expansion來計算一個固定誤差幅度的函數。

Here是一個教程頁面。


另一種方法是使用lookup table
當您可以跟蹤所需的過程精度並且速度非常快時,這一點尤其有用。
但是,它需要更多的內存,並可能會產生一個步驟式的功能。 Here介紹頁面。


另一種方法是使用CORDIC Algorithm,這是特別適合於缺乏乘法載體(像一些MIPS和ARM芯片)的硬件。 維基百科:

CORDIC通常比其它方法更快是當一個硬件乘法器不可用(例如,微控制器)[...]

在另一方面,當一個硬件乘法器可用(例如,在DSP微處理器中),查表方法和功率序列通常比CORDIC更快。