我正在寻找一个在x == 0
和x == 90
或x == pi/2
处准确,并且在其他情况下误差不超过5%的正弦近似值。
我没有空间用查找表。
我正在寻找一个在x == 0
和x == 90
或x == pi/2
处准确,并且在其他情况下误差不超过5%的正弦近似值。
我没有空间用查找表。
您似乎能够使用 巴斯卡拉一世的正弦逼近公式:
float x;
float sinx = 4 * x * (180 - x) / (40500 - x * (180 - x));
误差保持在2%以内。
非常快速且可以手动优化。
由于 sin
的导数是 cos
,而 cos
永远不会超过 1,而 5% 等于 1/20,因此具有 20 * pi / 2 = 32
个点的查找表将满足您的要求。您确定不能抽出 32 字节的 RAM 来存储它吗?
if
来决定调用哪一个。 - James使用快速线性拟合找到。
1.00003 x - 0.000312267 x^2 - 0.165537 x^3 - 0.00203937 x^4 + 0.010286 x^5 - 0.000961693 x^6
这个最大误差为3%。
a+x*(b+x*(c+x*(...)))
。 - Kh40tiK