Function python的sin函数中的Erro

Function python的sin函数中的Erro,function,trigonometry,Function,Trigonometry,我有一个关于使用正弦函数的问题。当我输入数字4,8,等等时,我真的想得到一个非常接近零的数字,但不完全是(例如0.001,0.0003,等等)。然而,当x=4时,我得到了y=1.224,当x=8时,得到了y=-2.449。这应该是错误的。我不明白这里的问题。有人知道这里发生了什么吗 [我的代码和sin图的照片-链接] [代码] 输入数学 将matplotlib.pyplot作为plt导入 将numpy作为np导入 x=[0,1,2,3,4,5,6,7,8] y=[x中i的数学sin(0.25*

我有一个关于使用正弦函数的问题。当我输入数字4,8,等等时,我真的想得到一个非常接近零的数字,但不完全是(例如0.001,0.0003,等等)。然而,当x=4时,我得到了y=1.224,当x=8时,得到了y=-2.449。这应该是错误的。我不明白这里的问题。有人知道这里发生了什么吗

[我的代码和sin图的照片-链接]

[代码]

输入数学 将matplotlib.pyplot作为plt导入 将numpy作为np导入

x=[0,1,2,3,4,5,6,7,8] y=[x中i的数学sin(0.25*math.pi*i)] 打印(y)

平面图(x,y) plt.show()

一切正常

当i为0时,“0.25*math.pi*i”正好为0,当计算正弦时,正好为0.0

当i为4时,计算“0.25*math.pi*i”的结果与pi非常接近,但精度有限。如果你计算正弦,你会得到一个非常非常接近零的数字,但由于精度有限,不完全是零。结果为1.2246467991473532e-16。注意:它是0.000000000000000122467991473532,而不是您在问题中所写的1.224

同样,i等于8时,舍入误差导致-2.4492935982947064e-16。参数不完全是2π,舍入误差导致的值与0.0略有不同。
同样-2.4492935982947064e-16是-0.00000000000000024492935982947064,而不是您在问题中所写的-2.449。

非常有用!非常感谢你!由于它是一个有限精度浮点数,
math.pi
!=π. 要获得更合适的结果,请检查Python或合适的Python库是否提供了
sinpi
函数。有了它,您就可以编写
sinpi(0.25*i)
以获得更高的精度。