在下面的代码中,随着我的成长," Ns" (例如," Ns = 1000")更多的cossine函数在[-pi,pi]间隔中显得平滑。我的目的是重新缩放k轴,将其除以因子" pi",使得图形在[-1,1]区间中定义。但是,当我这样做时,请说
k2=[]
for i in k:
k2.append(i/pi)
和绘图(k2,en(k2)而不是(k,en(k),绘制的图表假定抛物线形式比正确的cossine形式更多。我将提供任何帮助。
主要代码是:
def en(k):
return -2*cos(k)
k=[]
e=[]
Ns=input('Ns: ')
n=[0]
for i in range(0,Ns/2+1):
if i==0:
continue
else:
n.append(i)
n.append(-i)
if len(n)>Ns:
del n[0]
for i in n:
k.append(2*pi*i/Ns)
k.sort()
plt.plot(k,en(k),'b-')
plt.show()
答案 0 :(得分:0)
我认为你想要的是cos(x*pi)
而不是cos(x/pi)
。这样你就可以获得类似[-1,1] - 周期性的相似形状的函数。所以只需重新定义
def en(k):
return -2*cos(pi*k)
将k
转换为k2
的表达式可以更简单地写为k2 = [i*pi for i in k]
。这被称为“列表理解”,你的代码看起来会更好一些(可能减少到4-5行)。