Что значит ошибка "only size-1 arrays can be converted to Python scalars"?
import matplotlib.pyplot as plt \
import numpy as np\
x = np.linspace(0, math.pi, 100)\
n=100\
k0=21
y1 = np.sin(x) # y1 - тоже много точек\
y2 = np.sin(x)+(np.cos(n*x)/n)*((x-((k0+0.5)*math.pi)/n)/(math.fabs((x-((k0+0.5)*math.pi)/n))))\
y3 = 6*x + 10
fig, ax = plt.subplots() # будет 1 график, на нем:\
plt.ylim(0, 2)\
ax.plot(x, y1, color="blue", label="y(x)") # функция y1(x), синий, надпись y(x)\
ax.plot(x, y2, color="red", label="y'(x)") # функция y2(x), красный, надпись y'(x)\
ax.plot(x, y3, color="green", label="y''(x)") # функция y3(x), зеленый, надпись y''(x)\
ax.set_xlabel("x") # подпись у горизонтальной оси х\
ax.set_ylabel("y") # подпись у вертикальной оси y\
ax.legend() # показывать условные обозначения
plt.show()
Не могу разобраться, из-за чего не работает программа.
Ответы (1 шт):
Автор решения: MaxU
→ Ссылка
Модуль math умеет работать только со скалярными значениями, поэтому замените вызов math.fabs() на np.abs(). Да и math.pi лучше заменить на np.pi, тогда вам вообще не нужно будет импортировать модуль math.
