计算罪没有cmath

Calculate sin without cmath

本文关键字:cmath 计算      更新时间:2023-10-16

我被要求使用C++计算sin(x)的值,而无需使用任何数学库。我将如何通过它们输入条目(例如 2 弧度)并将它们返回 2 的 sin 函数的值?

谢谢。

一种选择是使用泰勒级数作为正弦得到近似值:

sin(x) = x - x 3/3! + x 5/5! -

x 7/7! + x 9/9! - ...

如果你评估这个多项式的前五六个项,并且x很小,你可能会得到一个非常好的sin x近似值。您可以通过尝试将其保持在 (-π, +π) 范围内来保持 x 较小。

有更好的方法可用。 一个标准是使用CORDIC,这是一组经过优化以快速和准确的方法。

希望这有帮助!

您可以使用泰勒级数来研究数值近似。 不太具体,您可以阅读广义泰勒/麦克劳林级数

总之:

sin(x) = x − x^3/3! + x^5/5! − x^7/7! + x^9/9!

通常,您可以将其扩展到几个术语,并且它在合理的误差范围内。 误差呈指数下降,因此即使有 4、5 或 6 个项,您也会得到准确的结果。 术语越多,越准确。

这是计算机评估三角函数、积分和许多其他复杂公式的一种方式。 我想无论谁问你,都是为了了解计算机处理这些功能的方式。