计算器遵循什么样的算法来找到正弦值?

时间:2014-01-04 18:14:04

标签: algorithm math calculator graph-algorithm sine

如果有人给我一个38度的说法角度,我怎样才能找到正弦函数的值而不用实际制作38度的直角三角形并测量边?我知道我可以使用一些三角函数来接近这些值,但这很费力。

我确信计算器和计算机中使用的算法不会这样做。就像我需要找到pi一样,我将使用这样的算法:

A very efficient algorithm used to compute the value of pi

而不是获得指南针和标尺以及绘制圆圈。

但是,我找不到任何正弦函数的算法。

有人可以帮帮我吗?

3 个答案:

答案 0 :(得分:5)

最常见的算法之一是将泰勒级数的前几个项用于正弦。

sin x = x - x3/3! + x5/5! - x7/7! + ...,

您使用的术语越多,您获得的逼近度越高。 X在这里是弧度,但你可以很容易地从度数得到弧度。然后,如您所见,只有基本操作:+, - ,*,/可用于计算正弦。

在具有浮点协处理器芯片的机器中使用CORDIC算法(带有一些其他模块),因为它也可以用硬件实现。

答案 1 :(得分:2)

改善约翰的回答:

从0到pi / 2的不同弧度为x创建一个sin(x)表。

您可以使用如下插值:sin(x + dx)= sin(x)+ dx * cos(x)

cos(x)= sin(pi / 2-x)。

同样,cos(x + dx)= cos(x) - dx * sin(x)。

答案 2 :(得分:1)

我不知道任何计算器实际使用了什么,但是如果你需要线性(或更高阶)插值的查找表应该足够简单和准确3个精度位置,或更多更密集的表。您只需要一个四分之一周期的表,并可以使用它进行所有正弦和余弦计算以及适当的变换。如果你有足够的力量和精确度,你可以尝试迭代泰勒系列或其他东西,但是舍入错误会累积在你身上。