计算罪没有cmath
Calculate sin without cmath
我被要求使用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 个项,您也会得到准确的结果。 术语越多,越准确。
这是计算机评估三角函数、积分和许多其他复杂公式的一种方式。 我想无论谁问你,都是为了了解计算机处理这些功能的方式。
相关文章:
- 为什么"do while"循环不断退出,即使条件计算结果为 false?
- 递归函数计算序列中的平方和(并输出过程)
- (C++)分析树以计算返回错误值的简单算术表达式
- 我的字符计数代码计算错误.为什么
- 在计算中使用二的幂有多有利可图
- 如何计算文件中的"columns"数?
- 计算排序向量的向量中唯一值的计数
- 如何使用 std::累积在 C++ 中计算总和立方体
- 使用Qt C++计算类似Git的SHA1哈希
- OpenCV C++.快速计算混淆矩阵
- cpp二进制搜索问题,计算给定数组中输入元素的出现次数
- C++如何计算用户输入的数字中的偶数位数
- 如何计算数据类型的范围,例如int
- 类似枚举的计算常量
- 计算每个节点的树高,帮助我解释这个代码解决方案
- 多个If语句与使用逻辑运算符计算条件的单个语句的比较
- cmath抛出错误C2062、C2059、C2143和C2447.cmath包含在矢量文件中
- 计算罪没有cmath
- 没有cmath库的余弦计算
- SQRT() 的 c++ 实际计算复杂度<cmath>