为什么在 numpy.sin 中将输入乘以 pi 会导致它中断?

Why does multiplying input by pi in numpy.sin cause it to break?

我遇到了一个问题,如果我将 numpy.sin() 的输入乘以 pi,它会输出一个奇怪的图形,它与实际结果完全不相符。如果我将 pi 舍入到 3.14 它可以工作,但任何小数位到 np.pi 都会破坏它。谁能告诉我这是什么原因造成的?

这是我的代码:

lim = 4096
x = np.arange(0,lim)
y = np.sin(2*np.pi*x) 

plt.plot(x,y)
plt.show()

This is the output of the plot using np.pi, this is using 3.14159265, this is using 3.141, this 正在使用 3.14。如您所见,幅度也很奇怪,np.pi 的数量级为 -12,3.14159265 的数量级为 -5,等等。这是怎么回事?

np.sin(x) 期望 x 以弧度为单位,而不是度数。

2*np.pi*x 以弧度表示几乎是 360 度的整数倍。它的正弦非常接近于 0,这就是您在第一个图中看到的。

3.14159265 等与真正的 Pi 比 np.pi 更不同,这就是为什么您开始看到更大的 y。你的图看起来像正弦波的原因是因为采样。