因此,在高中数学甚至大学里,我们都学会了如何使用三角函数,它们的功能以及解决的问题类型。但是它们始终以黑匣子的形式呈现给我。如果您需要某种东西的正弦或余弦,请按一下计算器上的sin或cos按钮,然后进行设置。没关系
我想知道的是通常如何实现三角函数。
首先,您必须进行某种范围的缩小。触发函数是周期性的,因此您需要将参数减少到标准间隔。对于初学者,您可以将角度减小到0到360度之间。但是,通过使用一些身份,您意识到可以少花钱。如果您为0到45度之间的角度计算正弦和余弦,则可以引导您的方法来计算所有角度的所有触发函数。
减少论点后,大多数芯片都会使用CORDIC算法来计算正弦和余弦。您可能会听到人们说计算机使用泰勒级数。这听起来很合理,但事实并非如此。CORDIC算法更适合高效的 硬件 实现。(例如, 软件 库可能在不支持触发功能的硬件上使用泰勒级数。)可能会有一些额外的处理,使用CORDIC算法可获得相当好的答案,但随后可以做一些其他事情以提高准确性。
上面有一些改进。例如,对于很小的角度theta(以弧度为单位),sin(theta)= theta等于您拥有的所有精度,因此,简单地返回theta比使用其他算法更有效。因此,在实践中有很多特殊情况的逻辑可以挤出所有可能的性能和准确性。市场较小的芯片可能不会花太多精力进行优化。