Почему умножение ввода на pi в numpy .sin приводит к его разрыву? - PullRequest
3 голосов
/ 19 февраля 2020

Я столкнулся с проблемой, когда при умножении входного значения numpy.sin() на число пи выводится странный график, который никоим образом не приближается к фактическому результату. Если я округлю число пи до 3.14, оно будет работать, но любые десятичные разряды, включая np.pi, включая его, нарушают его. Может кто-нибудь сказать мне, что вызывает это?

Это мой код:

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

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

Этот является выводом графика с использованием np.pi, , это использует 3.14159265, это использует 3.141, это использует 3.14. Как видите, амплитуда также завинчивается и составляет -12 для np.pi, -5 для 3.14159265 и др. c. Что происходит?

1 Ответ

3 голосов
/ 19 февраля 2020

np.sin(x) ожидает, что x будет в радианах, а не в градусах.

2*np.pi*x в радианах - это почти целое число, кратное 360 градусам. Его синус очень близок к 0, и это то, что вы видите на первом графике.

3.14159265, et c. еще больше отличаются от реального Пи, чем np.pi, поэтому вы начинаете видеть большие y. Причина, по которой ваши графики выглядят как синусоидальные волны, заключается в выборке.

...