Суммирование функции в Python - PullRequest
0 голосов
/ 30 марта 2020

Я новичок в Python программировании. Исходя из фона MATLAB. Я ищу что-то похожее на функцию symsum из MATLAB в Python.

У меня есть мой массив,

a = np.linspace([0,3.14])

Я хочу сложить

sin(2*i*a) where i ranges from 1 to 20

и затем нанесите результаты между a и y

Я попробовал следующее

y = nsum(lambda i: np.sin(2*i*a), [0,20])

Я застрял в этой точке.

Редактировать. Эквивалент MATLAB будет

a = linspace(0,pi) syms i y=double(symsum(sin(2*i*a),i,0,20)

1 Ответ

0 голосов
/ 30 марта 2020

edit

Похоже, symsum является частью пакета символов (в MATLAB и Octave). sympy - это символический пакет Python. Его интеграция с numpy более слабая.

===

Вот предположение относительно того, что вы пытаетесь сделать:

Диапазон значений a:

In [180]: a = np.linspace(0, np.pi, 100)                                                     

Наружный продукт с (0,1,2,3,4) (использует вещание)

In [181]: x = np.arange(5)[:,None]*a          

Сумма значений sin и график:

In [182]: y = np.sin(2*x).sum(axis=0)                                                        
In [184]: plt.plot(a,y)                                                                      

sum of 5 sins

...