使用泰勒系列精确发现余弦

时间:2017-04-09 07:19:44

标签: c

我已经创建了一个基于泰勒系列来计算余弦的函数, 只有在与标准库余弦进行比较时才会遇到精度问题。 例如,计算23我的cos给出: -0.53283的 4 标准库给出: -0.53283 3

我一直在网上搜索,并试图自己解决这个问题,但却无法确定问题所在! 当将treashould增加到1.0e-7时,问题就解决了。 但它也适用于1.0e-6(因为它适用于我的朋友)

非常感谢任何见解,谢谢你。

str.matches("\\d+")

1 个答案:

答案 0 :(得分:1)

当您致电printf

时,会进行四舍五入

printf("%f\n", my_cos(23));
printf("%f\n", cos(23));

将打印

-0.532834
-0.532833

似乎“错误”。

但是 如果你增加打印的位数,如

printf("%0.12f\n", my_cos(23));
printf("%0.12f\n", cos(23));

它会打印

-0.532833931872
-0.532833020333

所以你有你想要的精度。只是印刷使它看起来好像出了问题。