Итак, я хотел бы сначала упомянуть, что я абсолютно новичок практически во всем, что связано с Jupyter Notebook, matplotlib и numpy. Поэтому я, скорее всего, не смогу четко выразить свою проблему. Поэтому я прошу у вас терпения :) (ага, да и мой английский тоже отстой ...)
В любом случае, я пытаюсь создать интерактивный сюжет. Поэтому я хочу отобразить функцию первых n полиномов прямоугольной волны, где значение n можно выбрать с помощью ползунка. Это то, что я получил до сих пор:
import numpy as np
import matplotlib as mpl
import matplotlib.pyplot as plt
%matplotlib inline
plt.rcParams['figure.figsize'] = (11,4)
plt.rcParams['figure.dpi'] = 150
from ipywidgets import interact,interactive, fixed, interact_manual
import ipywidgets as Widgets
def f(n):
plt.plot( np.arange(0,10), 1/pi * sum( 2/(i* pi) * (1- cos(i*pi) ) * sin(i*np.arange(0,10)) for i in range(1,n) ) )
plt.ylim(-2,2)
interact(f, n= 1)
Теперь все работает нормально до строки, где я установил свою функцию, поэтому строка с этим
plt.plot (np.arange. ..)
Это дает мне следующую ошибку:
ValueError: x и y должны иметь одинаковое первое измерение, но иметь формы (10,) и (1,)
Я уже понял, что это связано с использованием оператора sum () и использованием в нем переменной n . Если я не введу n в сумму , то все работает хорошо, и я получаю свой график.
Итак, вопрос в том, что я буду делатьнужно сделать, чтобы моя идея осуществилась.
Спасибо за ваши ответы, я знаю, что мой пост может быть очень раздражающим для некоторых из вас из-за его стиля или чего-то еще, и я прошу прощения за это.