为什么在 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
。你的图看起来像正弦波的原因是因为采样。
我遇到了一个问题,如果我将 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
。你的图看起来像正弦波的原因是因为采样。