用 Python 计算傅立叶系数?

Compute fourier coefficients with Python?

我正在尝试计算以下傅立叶系数

其中 V_{pot} 是此形式的前一个 def 函数。

我真的不知道我可以使用什么数值方法,但是我从scipy库的辛普森法则开始。

import numpy as np
from scipy.integrate import simps

Nf = 200 
IVp = np.zeros(2*Nf)
snn = np.zeros(NP)
def f(k):
    for i in range(0,NP):
        sn = (i-1)*H
        snn[i] = sn
        return (1/SF) * np.cos(np.pi*k*sn/SF) * Vpot(sn)

 for k in range(0,2*Nf):
      Func = f(k)
      y1 = np.array(Func,dtype=float)
      I = simps(y1,snn)

我有这个错误:

IndexError: tuple index out of range

您的任务可以通过

完成
Nf = 200
s = np.linspace(0, Sf, Nf+1);
V_s = Vpot(s)
I = [ simps(s, np.cos(np.pi*k*s/Sf)*V_s ) / Sf  for k in range(0,2*Nf) ]

但实际上,请研究如何通过 FFT or related methods 执行此操作。