伪代码中的三角函数

Trigonometric Functions in Pseudo Code

我正在用伪代码搜索三角函数。 我不擅长数学,所以我不能用维基百科中的公式做很多事情。 我主要是在搜索正弦、余弦、正切和它们的反函数(sin⁻¹、cos⁻¹、tan⁻¹)。 还有其他三角函数。但对我来说,以上是最重要的。

如果可能的话,如果伪代码中只有变量forif和运算符(+-*, /, %, sqrt()),因为我没有高等数学函数的库。

三角函数是Transcendental
你找不到精确它们的多项式代数表达式。

不过您可以近似它们。

通常的做法是利用周期性和对称性将一个角α减成等价角α′使得sin(α) = sin(α′) 但 α′ ≪ α.
简单地说,你将任何角度缩小到第一象限或类似的角度,这比看起来容易。
一旦你有一个小角度,你可以使用 Taylor Series Expansion 来计算函数直到一个固定的误差幅度。

Here 是教程页面。


另一种方法是使用 lookup table
当您可以跟踪流程所需的精度并且速度非常快时,这尤其有用。
然而,它需要更多的内存,并且可能会产生阶跃函数。 Here 介绍页。


另一种方法是使用CORDIC Algorithm,这特别适用于缺乏乘法支持的硬件(如某些 MIPS 和 ARM 芯片)。 来自维基百科:

CORDIC is generally faster than other approaches when a hardware multiplier is not available (e.g., a microcontroller) [...]

On the other hand, when a hardware multiplier is available (e.g., in a DSP microprocessor), table-lookup methods and power series are generally faster than CORDIC.