Numpyのブロードキャスト機能を利用して次のように計算できます.
python
1import math
2import numpy as np
3from matplotlib import pyplot as plt
4
5
6def i_th_func(i, x):
7 return ((40/np.pi)/(2*i+1))* np.sin((2*i+1)*np.pi*x/4)
8
9def func(x):
10 ret = np.zeros_like(x)
11 for i in range(len(x)):
12 ret += i_th_func(i, x)
13 return ret
14
15N = 100
16x = np.linspace(0, 2 * np.pi, 1000)
17
18plt.figure()
19plt.plot(x, func(x))
20
21plt.show()
また,[ ]
は配列の要素へアクセスするための演算子です.計算の優先順位に関与するのは( )
なので,もう少しPythonの勉強をされることをお勧めします.
下記のような回答は推奨されていません。
このような回答には修正を依頼しましょう。