C ++和MATLAB中的Sin和Cos函数

时间:2018-08-26 22:52:52

标签: c++ matlab double precision

我在C ++中有一个精度问题。我有两个角度,它们的平均值为pi / 2,它们像pi / 2 +-alpha,因此正弦和余弦的绝对值应该相等。当我在MATLAB中找到它们的正弦值时,它们相等,应该相等。试用:sin(1.25911)sin(1.88252),其总和为3.1416。但是,当我在C ++中找到这些值时,答案是:0.951818和0.951806

如何提高这些数字的准确性,使获得的数字相等?我可以选择最多3个十进制数字的精度,但我希望将精度保持为6。

1 个答案:

答案 0 :(得分:1)

3.1416是pi的粗略近似。如果您使用更好的价值,那么您将从sin获得更好的答案。所以,

sin(1.25911)=0.951817787502636
sin(pi-1.25911)=sin(1.88248265358979)=0.951817787502636

请注意,这里我对sin使用了更准确的输入值,它们的平均值比您的示例更接近pi/2