Python Fourier级数方程的For循环

Python Fourier级数方程的For循环,python,numpy,Python,Numpy,我如何绘制下面的傅里叶级数方程,使用一个可以改变n的for循环,而不是写出cos(x)+cos(2x)+cos(3x),等等 我的脚本如下: import matplotlib.pyplot as plt import numpy as np fig = plt.figure() pi = np.pi x = np.linspace(-pi,pi,100) ao = (1/(2*pi)) y = ao + (1/pi)*(np.cos(x)+np.cos(2*x)+np.cos(3*x) +

我如何绘制下面的傅里叶级数方程,使用一个可以改变n的for循环,而不是写出
cos(x)+cos(2x)+cos(3x)
,等等

我的脚本如下:

import matplotlib.pyplot as plt
import numpy as np

fig = plt.figure()
pi  = np.pi
x = np.linspace(-pi,pi,100)
ao = (1/(2*pi))
y = ao + (1/pi)*(np.cos(x)+np.cos(2*x)+np.cos(3*x) + np.cos(4*x)+np.cos(5*x)+np.cos(6*x) + np.cos(7*x) + np.cos(8*x) + np.cos(9*x)+np.cos(10*x))

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

您可以使用列表:

n = 10
y = ao + (1/pi) * sum([np.cos((i+1)*x) for i in range(n)])
这就是您所需要的:

import matplotlib.pyplot as plt
import numpy as np

fig = plt.figure()
pi  = np.pi
n = 10
x = np.linspace(-pi,pi,100)
y = (1/(2*pi)) + (1/pi)*(sum(np.cos(i * x) for i in xrange(1, n)))

plt.plot(x,y)
plt.show()
基本上,你只是有一个列表理解,它为你求和:

sum(x范围(1,n)中i的np.cos(i*x))